def test_find_unit_none(self): status = { "Services": {"mongodb": {"Units": {"mongodb/1": "foo"}}} } unit = find_unit("mongodb/1", status) self.assertIsNone(unit, None) unit = find_unit("Foo", status) self.assertIsNone(unit, None)
def test_find_unit_juju2(self): status = make_fake_status_juju_2() unit = find_unit('mysql', status) self.assertEqual(unit, 'mysql/0') unit = find_unit('wiki/0', status) self.assertEqual(unit, 'wiki/0') unit = find_unit('foo', status) self.assertIsNone(unit)
def test_find_unit_complex(self): status = make_fake_status() unit = find_unit('plugin', status) self.assertEqual(unit, 'plugin/6') unit = find_unit('plugin/0', status) self.assertEqual(unit, 'plugin/6') unit = find_unit('plugin/1', status) self.assertEqual(unit, 'plugin/7') unit = find_unit('hive', status) self.assertEqual(unit, 'hive/0') unit = find_unit('fake', status) self.assertIs(unit, None)
def test_find_unit(self): status = { "Services": {"mongodb": {"Units": {"mongodb/0": "foo"}}} } unit = find_unit("mongodb", status) self.assertEqual(unit, "mongodb/0") status = { "Services": {"mongodb": {"Units": { "mongodb/1": "foo", "mongodb/0": "foo"}}} } unit = find_unit("mongodb", status) self.assertEqual(unit, "mongodb/0")
def run_benchmarks(self, test_plan, env): actions_client = get_versioned_juju_api().facades.Actions(env) env_status = env.status() benchmarks = [] for benchmark_plan in test_plan.benchmarks: logging.info('Running benchmark {} on {} with params: {}'.format( benchmark_plan.action, benchmark_plan.unit, benchmark_plan.params)) real_unit = find_unit(benchmark_plan.unit, env_status) if not real_unit: logging.error("unit not found: {}".format(benchmark_plan.unit)) continue try: result = run_action(actions_client, real_unit, benchmark_plan.action, action_param=benchmark_plan.params, timeout=3600) except Exception as e: logging.error('Action run failed: {}'.format(str(e))) continue composite = result.get('meta', {}).get('composite') if not composite: logging.error('Skipping benchmark missing composite key: ' '{}'.format(benchmark_plan.action)) continue composite.update({ 'name': benchmark_plan.action, 'test_id': self.test_id, 'provider': env.provider_name, }) benchmarks.append(model.Benchmark.from_action(composite)) logging.info('Benchmark completed.') return benchmarks
def run_benchmarks(self, test_plan, env): actions_client = get_versioned_juju_api().facades.Actions(env) env_status = env.status() benchmarks = [] for benchmark_plan in test_plan.benchmarks: logging.info('Running benchmark {} on {} with params: {}'.format( benchmark_plan.action, benchmark_plan.unit, benchmark_plan.params)) real_unit = find_unit(benchmark_plan.unit, env_status) if not real_unit: logging.error("unit not found: {}".format(benchmark_plan.unit)) continue try: result = run_action( actions_client, real_unit, benchmark_plan.action, action_param=benchmark_plan.params, timeout=3600) except Exception as e: logging.error('Action run failed: {}'.format(str(e))) continue composite = result.get('meta', {}).get('composite') if not composite: logging.error('Skipping benchmark missing composite key: ' '{}'.format(benchmark_plan.action)) continue composite.update({ 'name': benchmark_plan.action, 'test_id': self.test_id, 'provider': env.provider_name, }) benchmarks.append(model.Benchmark.from_action(composite)) logging.info('Benchmark completed.') return benchmarks
def test_find_unit_none(self): unit = find_unit("plugin/10", make_fake_status()) self.assertIsNone(unit, None) unit = find_unit("Foo", make_fake_status()) self.assertIsNone(unit, None)
def test_find_unit(self): unit = find_unit("plugin", make_fake_status()) self.assertEqual(unit, "plugin/6")