From 87087a17296a1297dfb20e2f092d79c166855439 Mon Sep 17 00:00:00 2001 From: Juha Kosonen Date: Thu, 15 Aug 2019 16:15:21 +0300 Subject: Fix rally task file manipulation Remove empty workload entries when applying blacklist in RallyJobs. Rally considers task file as invalid if it contains entries whose workload list empty. Change-Id: I34867c0aeea9c5ecf1294959d680e6de535be9cd Signed-off-by: Juha Kosonen --- functest/opnfv_tests/openstack/rally/rally.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py index 7438d7155..22b508afa 100644 --- a/functest/opnfv_tests/openstack/rally/rally.py +++ b/functest/opnfv_tests/openstack/rally/rally.py @@ -769,26 +769,26 @@ class RallyJobs(RallyBase): cases.pop(name) else: # workloads in subtasks - for sind, subtask in enumerate(cases.get('subtasks', [])): - idx = [] - for wind, workload in enumerate(subtask.get('workloads', [])): + for sind, subtask in reversed(list( + enumerate(cases.get('subtasks', [])))): + for wind, workload in reversed(list( + enumerate(subtask.get('workloads', [])))): scenario = workload.get('scenario', {}) for name in scenario.keys(): if self.in_iterable_re(name, black_tests): - idx.append(wind) + cases['subtasks'][sind]['workloads'].pop(wind) break - for wind in reversed(idx): - cases['subtasks'][sind]['workloads'].pop(wind) + if 'workloads' in cases['subtasks'][sind]: + if not cases['subtasks'][sind]['workloads']: + cases['subtasks'].pop(sind) # scenarios in subtasks - idx = [] - for sind, subtask in enumerate(cases.get('subtasks', [])): + for sind, subtask in reversed(list( + enumerate(cases.get('subtasks', [])))): scenario = subtask.get('scenario', {}) for name in scenario.keys(): if self.in_iterable_re(name, black_tests): - idx.append(sind) + cases['subtasks'].pop(sind) break - for sind in reversed(idx): - cases['subtasks'].pop(sind) with open(result_file_name, 'w') as fname: template.dump(cases, fname) -- cgit 1.2.3-korg