summaryrefslogtreecommitdiffstats
path: root/tests/functest/odl-sfc/utils.py
diff options
context:
space:
mode:
authorGeorge Paraskevopoulos <geopar@intracom-telecom.com>2016-11-24 10:36:24 +0200
committerGeorge Paraskevopoulos <geopar@intracom-telecom.com>2016-12-01 18:05:03 +0200
commit49b7afaefc926cd90243deb8d5b958fb377018d6 (patch)
tree7dd63508f30885cb6b3926faaf597159cff1b72f /tests/functest/odl-sfc/utils.py
parent34ac334f68ad52feb34b5503a16d4f1eccffdc14 (diff)
Refactor capture_time_log
Make the logic simpler and generalize timing capabilities with a decorator. Also fetch functionality from this functest commit. https://gerrit.opnfv.org/gerrit/#/c/24559/ Change-Id: I0c6392f384021b8f8a3ce3f740c2e5f980e0078c Signed-off-by: George Paraskevopoulos <geopar@intracom-telecom.com>
Diffstat (limited to 'tests/functest/odl-sfc/utils.py')
-rw-r--r--tests/functest/odl-sfc/utils.py59
1 files changed, 26 insertions, 33 deletions
diff --git a/tests/functest/odl-sfc/utils.py b/tests/functest/odl-sfc/utils.py
index f24f76c4..f0b81760 100644
--- a/tests/functest/odl-sfc/utils.py
+++ b/tests/functest/odl-sfc/utils.py
@@ -7,7 +7,7 @@ import functest.utils.openstack_utils as os_utils
import re
import json
import SSHUtils as ssh_utils
-import ovs_utils
+import functools
logger = ft_logger.Logger("sfc_test_utils").getLogger()
@@ -306,11 +306,7 @@ def is_http_blocked(srv_prv_ip, client_ip):
return True
-def capture_err_logs(controller_clients, compute_clients, error):
- ovs_logger = ovs_utils.OVSLogger(
- os.path.join(os.getcwd(), 'ovs-logs'),
- FUNCTEST_RESULTS_DIR)
-
+def capture_err_logs(ovs_logger, controller_clients, compute_clients, error):
timestamp = time.strftime("%Y%m%d-%H%M%S")
ovs_logger.dump_ovs_logs(controller_clients,
compute_clients,
@@ -346,38 +342,35 @@ def check_ssh(ips, retries=100):
return False
-def capture_time_log(compute_clients, timeout=200):
- """Measure the time it takes to update the classification rules"""
- ovs_logger = ovs_utils.OVSLogger(
- os.path.join(os.getcwd(), 'ovs-logs'),
- "test")
- i = 0
- first_RSP = ""
- start_time = time.time()
- while True:
+# Measure the time it takes to update the classification rules
+def timethis(func):
+ @functools.wraps(func)
+ def timed(*args, **kwargs):
+ ts = time.time()
+ result = func(*args, **kwargs)
+ te = time.time()
+ elapsed = '{0}'.format(te - ts)
+ logger.info('{f}(*{a}, **{kw}) took: {t} sec'.format(
+ f=func.__name__, a=args, kw=kwargs, t=elapsed))
+ return result
+ return timed
+
+
+@timethis
+def capture_time_log(ovs_logger, compute_clients, timeout=200):
+ rsps = ovs_logger.ofctl_time_counter(compute_clients[0])
+ first_RSP = rsps[0] if len(rsps) > 0 else ''
+ while not ((len(rsps) > 1) and
+ (first_RSP != rsps[0]) and
+ (rsps[0] == rsps[1])):
rsps = ovs_logger.ofctl_time_counter(compute_clients[0])
- if not i:
- if len(rsps) > 0:
- first_RSP = rsps[0]
- i = i + 1
- else:
- first_RSP = 0
- i = i + 1
- if (len(rsps) > 1):
- if(first_RSP != rsps[0]):
- if (rsps[0] == rsps[1]):
- stop_time = time.time()
- logger.info("classification rules updated")
- difference = stop_time - start_time
- logger.info("It took %s seconds" % difference)
- break
timeout -= 1
- if not timeout:
+ if timeout == 0:
logger.error(
"Timeout but classification rules are not updated")
- break
+ return
time.sleep(1)
- return
+ logger.info("classification rules updated")
def get_compute_nodes(nova_client, required_node_number=2):