Code Review
/
csit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
HC Test: support testing using ipv6 management interface and https
[csit.git]
/
resources
/
libraries
/
python
/
HTTPRequest.py
diff --git
a/resources/libraries/python/HTTPRequest.py
b/resources/libraries/python/HTTPRequest.py
index
adf3d16
..
5f87484
100644
(file)
--- 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.
"""
requests.request.
"""
+from ipaddress import IPv6Address, AddressValueError
from enum import IntEnum, unique
from robot.api.deco import keyword
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 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
from requests.auth import HTTPBasicAuth
@@
-75,6
+78,9
@@
class HTTPRequestError(Exception):
logger.error(self._msg)
logger.debug(self._details)
logger.error(self._msg)
logger.debug(self._details)
+ # suppress warnings about disabled SSL verification
+ disable_warnings(InsecureRequestWarning)
+
def __repr__(self):
return repr(self._msg)
def __repr__(self):
return repr(self._msg)
@@
-115,8
+121,16
@@
class HTTPRequest(object):
:return: Full url.
:rtype: str
"""
: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):
@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'])
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))
logger.debug("Status code: {0}".format(rsp.status_code))
logger.debug("Response: {0}".format(rsp.content))