def test_define_parameters(): dir_path = os.path.dirname(os.path.realpath(__file__)) file_path = os.path.join(dir_path, "../../test_data/test.yaml") result = parse_config_file(file_path) actual = define_parameters(result['parameters']) # assert result is None assert isinstance(actual, dict) assert actual['iteration'] == range(1, 5) assert actual['duration'] == [10] assert actual['workloads'] == ['write']
def run(self): logger.debug('Parse and convert configs for G5K provisioner') self.configs = parse_config_file(self.args.config_file_path) # Add the number of Antidote DC as a parameter self.configs['parameters']['n_dc'] = len( self.configs['exp_env']['clusters']) logger.debug('Normalize the parameter space') self.normalized_parameters = define_parameters( self.configs['parameters']) logger.debug('Normalize the given configs') kube_master_site = self.create_configs() logger.info('''Your largest topology: Antidote DCs: %s n_antidotedb_per_DC: %s ''' % (len(self.configs['exp_env']['clusters']), max(self.normalized_parameters['n_nodes_per_dc']))) sweeper = create_combs_queue( result_dir=self.configs['exp_env']['results_dir'], parameters=self.configs['parameters'], ) kube_namespace = 'elmerfs-exp' oar_job_ids = None while len(sweeper.get_remaining()) > 0: if oar_job_ids is None: oar_job_ids, kube_master = self.setup_env( kube_master_site, kube_namespace) comb = sweeper.get_next() sweeper = self.run_workflow( kube_master=kube_master, kube_namespace=kube_namespace, comb=comb, sweeper=sweeper, ) if not is_job_alive(oar_job_ids): oardel(oar_job_ids) oar_job_ids = None logger.info('Finish the experiment!!!')
def run(self): logger.debug('Parse and convert configs for OVH provisioner') self.configs = parse_config_file(self.args.config_file_path) # Add the number of Antidote DC as a parameter self.configs['parameters']['n_dc'] = len( self.configs['exp_env']['clusters']) logger.debug('Normalize the parameter space') self.normalized_parameters = define_parameters( self.configs['parameters']) logger.debug('Normalize the given configs') kube_master_site = self.create_configs() logger.info('''Your largest topology: Antidote DCs: %s n_antidotedb_per_DC: %s n_fmke_client_per_DC: %s ''' % (len(self.configs['exp_env']['clusters']), max(self.normalized_parameters['n_nodes_per_dc']), max(self.normalized_parameters['n_fmke_client_per_dc']))) logger.info('Creating the combination list') sweeper = create_paramsweeper( result_dir=self.configs['exp_env']['results_dir'], parameters=self.normalized_parameters) kube_namespace = 'fmke-exp' node_ids_file = None while len(sweeper.get_remaining()) > 0: if node_ids_file is None: kube_master, node_ids_file = self.setup_env( kube_master_site, kube_namespace) comb = sweeper.get_next() sweeper = self.run_exp_workflow(kube_namespace=kube_namespace, kube_master=kube_master, comb=comb, sweeper=sweeper) # if not is_nodes_alive(node_ids_file): # node_ids_file = None logger.info('Finish the experiment!!!')
def test_define_parameters_wrong_input(parameters): with pytest.raises(TypeError) as exc_info: define_parameters(parameters) assert 'Parameters has to be a dictionary.' in str(exc_info)