CSIT-577 HC Test: Scripts for test jobs using ODL client
[csit.git] / resources / libraries / python / HTTPRequest.py
index adf3d16..869078b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2017 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -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
@@ -115,6 +116,14 @@ class HTTPRequest(object):
         :return: Full url.
         :rtype: str
         """
+
+        try:
+            IPv6Address(unicode(ip_addr))
+            # IPv6 address must be in brackets
+            ip_addr = "[{0}]".format(ip_addr)
+        except (AttributeError, AddressValueError):
+            pass
+
         return "http://{ip}:{port}{path}".format(ip=ip_addr, port=port,
                                                  path=path)
 
@@ -170,9 +179,12 @@ class HTTPRequest(object):
         """
         timeout = kwargs["timeout"]
 
-        if BuiltIn().get_variable_value("${use_odl_client}"):
-            # TODO: node["honeycomb"]["odl_port"]
+        use_odl = BuiltIn().get_variable_value("${use_odl_client}")
+
+        if use_odl:
             port = 8181
+            # Using default ODL Restconf port
+            # TODO: add node["honeycomb"]["odl_port"] to topology, use it here
             odl_url_part = "/network-topology:network-topology/topology/" \
                            "topology-netconf/node/vpp/yang-ext:mount"
         else:
@@ -190,7 +202,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))
@@ -219,7 +231,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Get")
-    def get(node, path, headers=None, timeout=10, enable_logging=True):
+    def get(node, path, headers=None, timeout=15, enable_logging=True):
         """Sends a GET request and returns the response and status code.
 
         :param node: Honeycomb node.
@@ -245,7 +257,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Put")
-    def put(node, path, headers=None, payload=None, json=None, timeout=10):
+    def put(node, path, headers=None, payload=None, json=None, timeout=15):
         """Sends a PUT request and returns the response and status code.
 
         :param node: Honeycomb node.
@@ -271,7 +283,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Post")
-    def post(node, path, headers=None, payload=None, json=None, timeout=10,
+    def post(node, path, headers=None, payload=None, json=None, timeout=15,
              enable_logging=True):
         """Sends a POST request and returns the response and status code.
 
@@ -303,7 +315,7 @@ class HTTPRequest(object):
 
     @staticmethod
     @keyword(name="HTTP Delete")
-    def delete(node, path, timeout=10):
+    def delete(node, path, timeout=15):
         """Sends a DELETE request and returns the response and status code.
 
         :param node: Honeycomb node.