From: Christos Sfakianakis <csfakian(a)redhat.com>
Add error handling in BaseEnrtRecipe to make sure hosts are
deconfigured (e.g offloads back to all-'on', iptable rules
reverted) in case of errors during perf tests (e.g iperf3:
unrecognized option '--sctp').
Signed-off-by: Christos Sfakianakis <csfakian(a)redhat.com>
---
lnst/Recipes/ENRT/BaseEnrtRecipe.py | 34 +++++++++++++++--------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/lnst/Recipes/ENRT/BaseEnrtRecipe.py b/lnst/Recipes/ENRT/BaseEnrtRecipe.py
index d97902a..43cfaa5 100644
--- a/lnst/Recipes/ENRT/BaseEnrtRecipe.py
+++ b/lnst/Recipes/ENRT/BaseEnrtRecipe.py
@@ -96,22 +96,24 @@ class BaseEnrtRecipe(PingTestAndEvaluate, PerfRecipe):
def test(self):
main_config = self.test_wide_configuration()
- for sub_config in self.generate_sub_configurations(main_config):
- self.apply_sub_configuration(main_config, sub_config)
-
- for ping_config in self.generate_ping_configurations(main_config,
- sub_config):
- result = self.ping_test(ping_config)
- self.ping_evaluate_and_report(ping_config, result)
-
- for perf_config in self.generate_perf_configurations(main_config,
- sub_config):
- result = self.perf_test(perf_config)
- self.perf_report_and_evaluate(result)
-
- self.remove_sub_configuration(main_config, sub_config)
-
- self.test_wide_deconfiguration(main_config)
+ try:
+ for sub_config in self.generate_sub_configurations(main_config):
+ self.apply_sub_configuration(main_config, sub_config)
+
+ for ping_config in self.generate_ping_configurations(main_config,
+ sub_config):
+ result = self.ping_test(ping_config)
+ self.ping_evaluate_and_report(ping_config, result)
+
+ try:
+ for perf_config in self.generate_perf_configurations(main_config,
+ sub_config):
+ result = self.perf_test(perf_config)
+ self.perf_report_and_evaluate(result)
+ finally:
+ self.remove_sub_configuration(main_config, sub_config)
+ finally:
+ self.test_wide_deconfiguration(main_config)
def test_wide_configuration(self):
raise NotImplementedError("Method must be defined by a child class.")
--
2.17.1