aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/HTTPRequest.py
diff options
context:
space:
mode:
authorselias <samelias@cisco.com>2017-03-14 12:00:01 +0100
committerTibor Frank <tifrank@cisco.com>2017-03-30 09:48:34 +0000
commitbd680a762d945b7970f7e62b7ee47776f0301f8c (patch)
treeba94d97f67c1075fa5968617633a1afb39a7cac3 /resources/libraries/python/HTTPRequest.py
parentd30aa3a0c0e64682266b0fbf5c8506952e39e414 (diff)
HC Test: support testing using ipv6 management interface and https
Change-Id: Ia38388a87171ad3bec7307f9ca74eaa99adc2624 Signed-off-by: selias <samelias@cisco.com>
Diffstat (limited to 'resources/libraries/python/HTTPRequest.py')
-rw-r--r--resources/libraries/python/HTTPRequest.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/resources/libraries/python/HTTPRequest.py b/resources/libraries/python/HTTPRequest.py
index adf3d168eb..5f87484fa2 100644
--- a/resources/libraries/python/HTTPRequest.py
+++ b/resources/libraries/python/HTTPRequest.py
@@ -18,6 +18,7 @@ The HTTP requests are implemented in the class HTTPRequest which uses
requests.request.
"""
+from ipaddress import IPv6Address, AddressValueError
from enum import IntEnum, unique
from robot.api.deco import keyword
@@ -26,6 +27,8 @@ from robot.libraries.BuiltIn import BuiltIn
from requests import request, RequestException, Timeout, TooManyRedirects, \
HTTPError, ConnectionError
+from requests.packages.urllib3 import disable_warnings
+from requests.packages.urllib3.exceptions import InsecureRequestWarning
from requests.auth import HTTPBasicAuth
@@ -75,6 +78,9 @@ class HTTPRequestError(Exception):
logger.error(self._msg)
logger.debug(self._details)
+ # suppress warnings about disabled SSL verification
+ disable_warnings(InsecureRequestWarning)
+
def __repr__(self):
return repr(self._msg)
@@ -115,8 +121,16 @@ class HTTPRequest(object):
:return: Full url.
:rtype: str
"""
- return "http://{ip}:{port}{path}".format(ip=ip_addr, port=port,
- path=path)
+
+ try:
+ IPv6Address(unicode(ip_addr))
+ # IPv6 address must be in brackets
+ ip_addr = "[{0}]".format(ip_addr)
+ except (AttributeError, AddressValueError):
+ pass
+
+ return "https://{ip}:{port}{path}".format(ip=ip_addr, port=port,
+ path=path)
@staticmethod
def _http_request(method, node, path, enable_logging=True, **kwargs):
@@ -190,7 +204,7 @@ class HTTPRequest(object):
try:
auth = HTTPBasicAuth(node['honeycomb']['user'],
node['honeycomb']['passwd'])
- rsp = request(method, url, auth=auth, **kwargs)
+ rsp = request(method, url, auth=auth, verify=False, **kwargs)
logger.debug("Status code: {0}".format(rsp.status_code))
logger.debug("Response: {0}".format(rsp.content))