Fix connection error due to invalid lib version usage. 61/43461/1
authorBenoit HERARD <benoit.herard@orange.com>
Thu, 28 Sep 2017 11:31:29 +0000 (13:31 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Thu, 28 Sep 2017 13:19:18 +0000 (15:19 +0200)
Connection timeouts on "requests" objects was developped with
requests 2.18 but target runtime is 2.12.
Advanced timeout management of 2.18 is not available in 2.12.

Change-Id: Ie6d81b91d4bcc0d73cffd007d9e46cdb19e47597
Signed-off-by: Benoit HERARD <benoit.herard@orange.com>
(cherry picked from commit 86d5c31424187329f69a7e0efaa9dbe0dac98e56)

functest/energy/energy.py
functest/tests/unit/energy/test_functest_energy.py

index 2aabc06..119942b 100644 (file)
@@ -16,7 +16,6 @@ import urllib
 
 from functools import wraps
 import requests
-import urllib3
 
 from functest.utils.constants import CONST
 import functest.utils.functest_utils as ft_utils
@@ -27,6 +26,9 @@ def finish_session(current_scenario):
     if current_scenario is None:
         EnergyRecorder.stop()
     else:
+        EnergyRecorder.logger.debug("Restoring previous scenario (%s/%s)",
+                                    current_scenario["scenario"],
+                                    current_scenario["step"])
         EnergyRecorder.submit_scenario(
             current_scenario["scenario"],
             current_scenario["step"]
@@ -78,7 +80,7 @@ class EnergyRecorder(object):
     INITIAL_STEP = "running"
 
     # Default connection timeout
-    CONNECTION_TIMEOUT = urllib3.Timeout(connect=1, read=3)
+    CONNECTION_TIMEOUT = 4
 
     @staticmethod
     def load_config():
@@ -102,8 +104,6 @@ class EnergyRecorder(object):
 
             uri_comp = "/recorders/environment/"
             uri_comp += urllib.quote_plus(environment)
-            EnergyRecorder.logger.debug(
-                "API recorder at: " + energy_recorder_uri + uri_comp)
 
             # Creds
             creds_usr = ft_utils.get_functest_config(
@@ -124,6 +124,9 @@ class EnergyRecorder(object):
                                     },
                                     timeout=EnergyRecorder.CONNECTION_TIMEOUT)
                 api_available = json.loads(resp.text)["status"] == "OK"
+                EnergyRecorder.logger.info(
+                    "API recorder available at : %s",
+                    energy_recorder_uri + uri_comp)
             except Exception as exc:  # pylint: disable=broad-except
                 EnergyRecorder.logger.info(
                     "Energy recorder API is not available, cause=%s",
@@ -151,7 +154,8 @@ class EnergyRecorder(object):
             return_status = True
             # Ensure that connectyvity settings are loaded
             if EnergyRecorder.load_config():
-                EnergyRecorder.logger.debug("Submitting scenario")
+                EnergyRecorder.logger.debug("Submitting scenario (%s/%s)",
+                                            scenario, step)
 
                 # Create API payload
                 payload = {
index 738bd3e..9911080 100644 (file)
@@ -249,7 +249,7 @@ class EnergyRecorderTest(unittest.TestCase):
         calls = [mock.call.start(self.case_name),
                  mock.call.submit_scenario(PREVIOUS_SCENARIO,
                                            PREVIOUS_STEP)]
-        recorder_mock.assert_has_calls(calls)
+        recorder_mock.assert_has_calls(calls, True)
 
     def test_decorator_preserve_return(self):
         """Test that decorator preserve method returned value."""