aboutsummaryrefslogtreecommitdiffstats
path: root/sfc/lib/utils.py
diff options
context:
space:
mode:
authorManuel Buil <mbuil@suse.com>2017-03-14 11:13:22 +0000
committerManuel Buil <mbuil@suse.com>2017-03-14 13:47:06 +0000
commit4b082d08b46941da06630926a117054881a8aa1b (patch)
treec7efd17fe084f95d0c0efa854ac6015e60ca2ddc /sfc/lib/utils.py
parentce203678d1a604996c312d44c8a236961efd3507 (diff)
Bug fix: classif. check not working for one chain
In the test case with only one chain the wait_classification function was not working Change-Id: I4cff1e61130b6fc68d736108a0da048909dad750 Signed-off-by: Manuel Buil <mbuil@suse.com>
Diffstat (limited to 'sfc/lib/utils.py')
-rw-r--r--sfc/lib/utils.py35
1 files changed, 24 insertions, 11 deletions
diff --git a/sfc/lib/utils.py b/sfc/lib/utils.py
index 2b8bdc13..4b5e91f5 100644
--- a/sfc/lib/utils.py
+++ b/sfc/lib/utils.py
@@ -360,7 +360,8 @@ def ofctl_time_counter(ovs_logger, ssh_conn, max_duration=None):
@ft_utils.timethis
-def wait_for_classification_rules(ovs_logger, compute_clients, timeout=200):
+def wait_for_classification_rules(ovs_logger, compute_clients,
+ num_chains, timeout=200):
# 10 sec. is the threshold to consider a flow from an old deployment
for compute_client in compute_clients:
max_duration = 10
@@ -369,16 +370,28 @@ def wait_for_classification_rules(ovs_logger, compute_clients, timeout=200):
# ODL may take quite some time to implement the new flow
# and an old flow may be there
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 = ofctl_time_counter(ovs_logger, compute_client)
- timeout -= 1
- if timeout == 0:
- logger.error(
- "Timeout but classification rules are not updated")
- return
- time.sleep(1)
+ logger.info("This is the first_RSP: %s" % first_RSP)
+ if num_chains == 1:
+ while not ((len(rsps) == 1) and (first_RSP != rsps[0])):
+ rsps = ofctl_time_counter(ovs_logger, compute_client)
+ logger.info("These are the rsps: %s" % rsps)
+ timeout -= 1
+ if timeout == 0:
+ logger.error(
+ "Timeout but classification rules are not updated")
+ return
+ time.sleep(1)
+ elif num_chains == 2:
+ while not ((len(rsps) > 1) and (first_RSP != rsps[0]) and
+ (rsps[0] == rsps[1])):
+ rsps = ofctl_time_counter(ovs_logger, compute_client)
+ logger.info("This is the rsps: %s" % rsps)
+ timeout -= 1
+ if timeout == 0:
+ logger.error(
+ "Timeout but classification rules are not updated")
+ return
+ time.sleep(1)
logger.info("classification rules updated")