From ec23dc1a684c6a97d543336e739d5376751890b8 Mon Sep 17 00:00:00 2001 From: Yaroslav Brustinov Date: Sun, 17 Apr 2016 02:46:34 +0300 Subject: regression: load clean config several attempts, use custom number of cores at stateless. --- scripts/automation/regression/CPlatform.py | 23 ++++++++++++++-------- .../regression/setups/trex04/config.yaml | 2 +- .../regression/setups/trex08/config.yaml | 2 +- .../regression/setups/trex17/config.yaml | 2 +- scripts/automation/regression/trex_unit_test.py | 5 ++++- 5 files changed, 22 insertions(+), 12 deletions(-) (limited to 'scripts/automation') diff --git a/scripts/automation/regression/CPlatform.py b/scripts/automation/regression/CPlatform.py index 381b4790..314aae63 100755 --- a/scripts/automation/regression/CPlatform.py +++ b/scripts/automation/regression/CPlatform.py @@ -63,13 +63,17 @@ class CPlatform(object): def load_clean_config (self, config_filename = "clean_config.cfg", cfg_drive = "bootflash"): - self.clear_nat_translations() - - cache = CCommandCache() - cache.add('EXEC', "configure replace {drive}:{file} force".format(drive = cfg_drive, file = config_filename)) - res = self.cmd_link.run_single_command(cache) - if 'Rollback Done' not in res: - raise UserWarning('Could not load clean config, please verify file exists. Response:\n%s' % res) + for i in range(5): + self.clear_nat_translations() + cache = CCommandCache() + cache.add('EXEC', "configure replace {drive}:{file} force".format(drive = cfg_drive, file = config_filename)) + res = self.cmd_link.run_single_command(cache) + if 'Rollback Done' not in res: + print('Failed to load clean config, trying again') + if i < 4: + continue + raise Exception('Could not load clean config, response: %s' % res) + return def config_pbr (self, mode = 'config'): idx = 1 @@ -592,10 +596,13 @@ class CPlatform(object): for dual_if in self.if_mngr.get_dual_if_list(is_duplicated = False): pre_commit_cache.add('IF', "no ip nat inside", dual_if.client_if.get_name()) pre_commit_cache.add('IF', "no ip nat outside", dual_if.server_if.get_name()) + self.cmd_link.run_single_command(pre_commit_cache) + time.sleep(0.5) + pre_commit_cache = CCommandCache() # clear the translation pre_commit_cache.add('EXEC', 'clear ip nat translation *') self.cmd_link.run_single_command(pre_commit_cache) - time.sleep(1) + time.sleep(0.5) def clear_cft_counters (self): """ clear_cft_counters(self) -> None diff --git a/scripts/automation/regression/setups/trex04/config.yaml b/scripts/automation/regression/setups/trex04/config.yaml index f9cc21df..5fd20667 100644 --- a/scripts/automation/regression/setups/trex04/config.yaml +++ b/scripts/automation/regression/setups/trex04/config.yaml @@ -35,5 +35,5 @@ trex: hostname : csi-trex-04 - cores : 2 + cores : 1 modes : [loopback, virt_nics, VM] diff --git a/scripts/automation/regression/setups/trex08/config.yaml b/scripts/automation/regression/setups/trex08/config.yaml index fd3a6a78..a7b02e57 100644 --- a/scripts/automation/regression/setups/trex08/config.yaml +++ b/scripts/automation/regression/setups/trex08/config.yaml @@ -35,6 +35,6 @@ trex: hostname : csi-trex-08 - cores : 2 + cores : 7 modes : ['loopback'] diff --git a/scripts/automation/regression/setups/trex17/config.yaml b/scripts/automation/regression/setups/trex17/config.yaml index cf490b85..f67c99d8 100644 --- a/scripts/automation/regression/setups/trex17/config.yaml +++ b/scripts/automation/regression/setups/trex17/config.yaml @@ -35,5 +35,5 @@ trex: hostname : csi-trex-17 - cores : 2 + cores : 1 modes : [loopback, virt_nics, VM] diff --git a/scripts/automation/regression/trex_unit_test.py b/scripts/automation/regression/trex_unit_test.py index 2be3c051..5d29ff31 100755 --- a/scripts/automation/regression/trex_unit_test.py +++ b/scripts/automation/regression/trex_unit_test.py @@ -218,7 +218,10 @@ class CTRexTestConfiguringPlugin(Plugin): CTRexScenario.trex = CTRexClient(trex_host = self.configuration.trex['trex_name'], verbose = self.verbose_mode) elif self.stateless: if not self.no_ssh: - trex_remote_command(self.configuration.trex, './t-rex-64 -i', background = True) + cores = self.configuration.trex.get('trex_cores', 1) + if 'virt_nics' in self.modes and cores > 1: + raise Exception('Number of cores should be 1 with virtual NICs') + trex_remote_command(self.configuration.trex, './t-rex-64 -i -c %s' % cores, background = True) CTRexScenario.stl_trex = STLClient(username = 'TRexRegression', server = self.configuration.trex['trex_name'], verbose_level = self.verbose_mode) -- cgit 1.2.3-korg