diff options
Diffstat (limited to 'nfvbench/traffic_server.py')
-rw-r--r-- | nfvbench/traffic_server.py | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/nfvbench/traffic_server.py b/nfvbench/traffic_server.py index df0a3be..d46a27d 100644 --- a/nfvbench/traffic_server.py +++ b/nfvbench/traffic_server.py @@ -57,9 +57,27 @@ class TRexTrafficServer(TrafficServer): cwd=self.trex_dir) LOG.info('TRex server is running...') + def __load_config(self, filename): + result = {} + if os.path.exists(filename): + with open(filename, 'r') as stream: + try: + result = yaml.load(stream) + except yaml.YAMLError as exc: + print exc + return result + def __save_config(self, generator_config, filename): - ifs = ",".join([repr(pci) for pci in generator_config.pcis]) + result = self.__prepare_config(generator_config) + yaml.safe_load(result) + if os.path.exists(filename): + os.remove(filename) + with open(filename, 'w') as f: + f.write(result) + return filename + def __prepare_config(self, generator_config): + ifs = ",".join([repr(pci) for pci in generator_config.pcis]) result = """# Config generated by NFVbench - port_limit : 2 version : 2 @@ -96,11 +114,13 @@ class TRexTrafficServer(TrafficServer): else: LOG.info("Generator profile 'platform' sub-properties are set but not filled in \ config file. TRex will use default values.") + return result - yaml.safe_load(result) - if os.path.exists(filename): - os.remove(filename) - with open(filename, 'w') as f: - f.write(result) - - return filename + def check_config_updated(self, generator_config): + existing_config = self.__load_config(filename='/etc/trex_cfg.yaml') + new_config = yaml.safe_load(self.__prepare_config(generator_config)) + LOG.debug("Existing config: %s", existing_config) + LOG.debug("New config: %s", new_config) + if existing_config == new_config: + return False + return True |