def start_fixture(self): """Set up config.""" self.conf = None # Determine the database connection. db_url = None for engine in ENGINES: try: db_url = os.environ['AODH_TEST_%s_URL' % engine] except KeyError: pass if db_url is None: raise case.SkipTest('No database connection configured') service.prepare_service([]) conf = fixture_config.Config().conf self.conf = conf opts.set_defaults(self.conf) conf.set_override('policy_file', os.path.abspath('etc/aodh/policy.json'), group='oslo_policy') database_name = '%s-%s' % (db_url, str(uuid.uuid4())) conf.set_override('alarm_connection', database_name, group='database') conf.set_override('pecan_debug', True, group='api')
def expirer(): service.prepare_service() if cfg.CONF.database.alarm_history_time_to_live > 0: LOG.debug("Clearing expired alarm history data") storage_conn = storage.get_connection_from_config(cfg.CONF, 'alarm') storage_conn.clear_expired_alarm_history_data( cfg.CONF.database.alarm_history_time_to_live) else: LOG.info(_LI("Nothing to clean, database alarm history time to live " "is disabled"))
def setUp(self): super(TestAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('workers', 1, 'evaluator') self.setup_messaging(self.CONF) self.threshold_eval = mock.MagicMock() self._fake_conn = mock.Mock() self._fake_conn.get_alarms.return_value = [] self._fake_pc = mock.Mock() self._fake_em = extension.ExtensionManager.make_test_instance([ extension.Extension('gnocchi_aggregation_by_metrics_threshold', None, None, self.threshold_eval), ]) self.useFixture( fixtures.MockPatch('stevedore.extension.ExtensionManager', return_value=self._fake_em)) self.useFixture( fixtures.MockPatch('aodh.coordination.PartitionCoordinator', return_value=self._fake_pc)) self.useFixture( fixtures.MockPatch('aodh.storage.get_connection_from_config', return_value=self._fake_conn))
def setUp(self): super(TestAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.threshold_eval = mock.Mock() self.evaluators = extension.ExtensionManager.make_test_instance( [ extension.Extension( 'threshold', None, None, self.threshold_eval), ] ) self.storage_conn = mock.MagicMock() self.svc = evaluator.AlarmEvaluationService(self.CONF) self.svc.tg = mock.Mock() self.svc.partition_coordinator = mock.MagicMock() p_coord = self.svc.partition_coordinator p_coord.extract_my_subset.side_effect = lambda _, x: x self.svc.evaluators = self.evaluators self.svc.supported_evaluators = ['threshold']
def setUp(self): super(TestBase, self).setUp() engine = urlparse.urlparse(self.db_url).scheme # NOTE(Alexei_987) Shortcut to skip expensive db setUp test_method = self._get_test_method() if (hasattr(test_method, '_run_with') and engine not in test_method._run_with): raise testcase.TestSkipped( 'Test is not applicable for %s' % engine) conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('connection', self.db_url, group="database") try: self.db_manager = self._get_driver_manager(engine)(self.CONF) except ValueError as exc: self.skipTest("missing driver manager: %s" % exc) self.useFixture(self.db_manager) self.CONF.set_override('connection', self.db_manager.url, group="database") self.alarm_conn = storage.get_connection_from_config(self.CONF) self.alarm_conn.upgrade() self.useFixture(mockpatch.Patch( 'aodh.storage.get_connection_from_config', side_effect=self._get_connection))
def setUp(self): super(TestBase, self).setUp() db_url = os.environ.get('AODH_TEST_STORAGE_URL', 'sqlite://').replace("mysql://", "mysql+pymysql://") engine = urlparse.urlparse(db_url).scheme # In case some drivers have additional specification, for example: # PyMySQL will have scheme mysql+pymysql. self.engine = engine.split('+')[0] conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('connection', db_url, group="database") manager = self.DRIVER_MANAGERS.get(self.engine) if not manager: self.skipTest("missing driver manager: %s" % self.engine) self.db_manager = manager(self.CONF) self.useFixture(self.db_manager) self.CONF.set_override('connection', self.db_manager.url, group="database") self.alarm_conn = storage.get_connection_from_config(self.CONF) self.alarm_conn.upgrade() self.useFixture( fixtures.MockPatch('aodh.storage.get_connection_from_config', side_effect=self._get_connection))
def setUp(self): super(TestAlarmEvaluationService, self).setUp() conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.threshold_eval = mock.Mock() self.evaluators = extension.ExtensionManager.make_test_instance( [ extension.Extension( 'threshold', None, None, self.threshold_eval), ] ) self.storage_conn = mock.MagicMock() self.svc = evaluator.AlarmEvaluationService(self.CONF) self.svc.tg = mock.Mock() self.svc.partition_coordinator = mock.MagicMock() p_coord = self.svc.partition_coordinator p_coord.extract_my_subset.side_effect = lambda _, x: x self.svc.evaluators = self.evaluators self.svc.supported_evaluators = ['threshold']
def setUp(self): super(TestBase, self).setUp() engine = urlparse.urlparse(self.db_url).scheme # NOTE(Alexei_987) Shortcut to skip expensive db setUp test_method = self._get_test_method() if (hasattr(test_method, '_run_with') and engine not in test_method._run_with): raise testcase.TestSkipped('Test is not applicable for %s' % engine) conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('connection', self.db_url, group="database") try: self.db_manager = self._get_driver_manager(engine)(self.CONF) except ValueError as exc: self.skipTest("missing driver manager: %s" % exc) self.useFixture(self.db_manager) self.CONF.set_override('connection', self.db_manager.url, group="database") self.alarm_conn = storage.get_connection_from_config(self.CONF) self.alarm_conn.upgrade() self.useFixture( mockpatch.Patch('aodh.storage.get_connection_from_config', side_effect=self._get_connection))
def setUp(self): super(TestBase, self).setUp() db_url = os.environ.get("AODH_TEST_STORAGE_URL", "sqlite://").replace("mysql://", "mysql+pymysql://") engine = urlparse.urlparse(db_url).scheme # In case some drivers have additional specification, for example: # PyMySQL will have scheme mysql+pymysql. self.engine = engine.split("+")[0] conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override("connection", db_url, group="database", enforce_type=True) manager = self.DRIVER_MANAGERS.get(self.engine) if not manager: self.skipTest("missing driver manager: %s" % self.engine) self.db_manager = manager(self.CONF) self.useFixture(self.db_manager) self.CONF.set_override("connection", self.db_manager.url, group="database", enforce_type=True) self.alarm_conn = storage.get_connection_from_config(self.CONF) self.alarm_conn.upgrade() self.useFixture(mockpatch.Patch("aodh.storage.get_connection_from_config", side_effect=self._get_connection))
def setUp(self): super(FunctionalTest, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.CONF.set_override('auth_mode', None, group='api') self.app = webtest.TestApp(app.load_app(self.CONF))
def setUp(self): super(TestAlarmNotifier, self).setUp() conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.service = notifier.AlarmNotifierService(self.CONF) self.useFixture( mockpatch.Patch('oslo_context.context.generate_request_id', self._fake_generate_request_id))
def start_fixture(self): """Set up config.""" self.conf = None self.conn = None # Determine the database connection. db_url = os.environ.get( 'AODH_TEST_STORAGE_URL', os.environ.get("OVERTEST_URL", 'sqlite://').replace("mysql://", "mysql+pymysql://")) if not db_url: raise case.SkipTest('No database connection configured') conf = service.prepare_service([], config_files=[]) # NOTE(jd): prepare_service() is called twice: first by load_app() for # Pecan, then Pecan calls pastedeploy, which starts the app, which has # no way to pass the conf object so that Paste apps calls again # prepare_service. In real life, that's not a problem, but here we want # to be sure that the second time the same conf object is returned # since we tweaked it. To that, once we called prepare_service() we # mock it so it returns the same conf object. self.prepare_service = service.prepare_service service.prepare_service = mock.Mock() service.prepare_service.return_value = conf conf = fixture_config.Config(conf).conf self.conf = conf opts.set_defaults(self.conf) conf.set_override('policy_file', os.path.abspath('aodh/tests/open-policy.json'), group='oslo_policy', enforce_type=True) conf.set_override( 'paste_config', os.path.abspath('aodh/tests/functional/gabbi/gabbi_paste.ini'), group='api', ) conf.set_override('pecan_debug', True, group='api', enforce_type=True) parsed_url = list(urlparse.urlparse(db_url)) parsed_url[2] += '-%s' % str(uuid.uuid4()).replace('-', '') db_url = urlparse.urlunparse(parsed_url) conf.set_override('connection', db_url, group='database', enforce_type=True) if (parsed_url[0].startswith("mysql") or parsed_url[0].startswith("postgresql")): sqlalchemy_utils.create_database(conf.database.connection) self.conn = storage.get_connection_from_config(self.conf) self.conn.upgrade()
def conversion(): confirm = moves.input("This tool is used for converting the combination " "alarms to composite alarms, please type 'yes' to " "confirm: ") if confirm != 'yes': print("Alarm conversion aborted!") return args = get_parser().parse_args() conf = service.prepare_service() conn = storage.get_connection_from_config(conf) combination_alarms = list(conn.get_alarms(alarm_type='combination', alarm_id=args.alarm_id or None)) count = 0 for alarm in combination_alarms: new_name = 'From-combination: %s' % alarm.alarm_id n_alarm = list(conn.get_alarms(name=new_name, alarm_type='composite')) if n_alarm: LOG.warning(_LW('Alarm %(alarm)s has been already converted as ' 'composite alarm: %(n_alarm_id)s, skipped.'), {'alarm': alarm.alarm_id, 'n_alarm_id': n_alarm[0].alarm_id}) continue try: composite_rule = _generate_composite_rule(conn, alarm) except DependentAlarmNotFound as e: LOG.warning(_LW('The dependent alarm %(dep_alarm)s of alarm %' '(com_alarm)s not found, skipped.'), {'com_alarm': e.com_alarm_id, 'dep_alarm': e.dependent_alarm_id}) continue except UnsupportedSubAlarmType as e: LOG.warning(_LW('Alarm conversion from combination to composite ' 'only support combination alarms depending ' 'threshold alarms, the type of alarm %(alarm)s ' 'is: %(type)s, skipped.'), {'alarm': e.sub_alarm_id, 'type': e.sub_alarm_type}) continue new_alarm = models.Alarm(**alarm.as_dict()) new_alarm.alarm_id = str(uuid.uuid4()) new_alarm.name = new_name new_alarm.type = 'composite' new_alarm.description = ('composite alarm converted from combination ' 'alarm: %s' % alarm.alarm_id) new_alarm.rule = composite_rule new_alarm.timestamp = datetime.datetime.now() conn.create_alarm(new_alarm) LOG.info(_LI('End Converting combination alarm %(s_alarm)s to ' 'composite alarm %(d_alarm)s'), {'s_alarm': alarm.alarm_id, 'd_alarm': new_alarm.alarm_id}) count += 1 if args.delete_combination_alarm: for alarm in combination_alarms: LOG.info(_LI('Deleting the combination alarm %s...'), alarm.alarm_id) conn.delete_alarm(alarm.alarm_id) LOG.info(_LI('%s combination alarms have been converted to composite ' 'alarms.'), count)
def start_fixture(self): """Set up config.""" self.conf = None self.conn = None # Determine the database connection. db_url = os.environ.get( 'AODH_TEST_STORAGE_URL', "").replace( "mysql://", "mysql+pymysql://") if not db_url: self.fail('No database connection configured') conf = service.prepare_service([], config_files=[]) # NOTE(jd): prepare_service() is called twice: first by load_app() for # Pecan, then Pecan calls pastedeploy, which starts the app, which has # no way to pass the conf object so that Paste apps calls again # prepare_service. In real life, that's not a problem, but here we want # to be sure that the second time the same conf object is returned # since we tweaked it. To that, once we called prepare_service() we # mock it so it returns the same conf object. self.prepare_service = service.prepare_service service.prepare_service = mock.Mock() service.prepare_service.return_value = conf conf = fixture_config.Config(conf).conf self.conf = conf opts.set_defaults(self.conf) conf.set_override('policy_file', os.path.abspath( 'aodh/tests/open-policy.json'), group='oslo_policy', enforce_type=True) conf.set_override( 'paste_config', os.path.abspath('aodh/tests/functional/gabbi/gabbi_paste.ini'), group='api', ) conf.set_override('pecan_debug', True, group='api', enforce_type=True) parsed_url = urlparse.urlparse(db_url) if parsed_url.scheme != 'sqlite': parsed_url = list(parsed_url) parsed_url[2] += '-%s' % str(uuid.uuid4()).replace('-', '') db_url = urlparse.urlunparse(parsed_url) conf.set_override('connection', db_url, group='database', enforce_type=True) if (parsed_url[0].startswith("mysql") or parsed_url[0].startswith("postgresql")): sqlalchemy_utils.create_database(conf.database.connection) self.conn = storage.get_connection_from_config(self.conf) self.conn.upgrade()
def setUp(self): super(TestAlarmNotifier, self).setUp() conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.service = notifier.AlarmNotifierService(self.CONF) self.useFixture(mockpatch.Patch( 'oslo_context.context.generate_request_id', self._fake_generate_request_id))
def start_fixture(self): """Set up config.""" global LOAD_APP_KWARGS self.conf = None self.conn = None # Determine the database connection. db_url = os.environ.get('AODH_TEST_STORAGE_URL', "").replace("mysql://", "mysql+pymysql://") if not db_url: self.fail('No database connection configured') conf = service.prepare_service([], config_files=[]) # NOTE(jd): prepare_service() is called twice: first by load_app() for # Pecan, then Pecan calls pastedeploy, which starts the app, which has # no way to pass the conf object so that Paste apps calls again # prepare_service. In real life, that's not a problem, but here we want # to be sure that the second time the same conf object is returned # since we tweaked it. To that, once we called prepare_service() we # mock it so it returns the same conf object. self.prepare_service = service.prepare_service service.prepare_service = mock.Mock() service.prepare_service.return_value = conf conf = fixture_config.Config(conf).conf self.conf = conf opts.set_defaults(self.conf) conf.set_override('policy_file', os.path.abspath('aodh/tests/open-policy.json'), group='oslo_policy', enforce_type=True) conf.set_override('auth_mode', None, group='api') parsed_url = urlparse.urlparse(db_url) if parsed_url.scheme != 'sqlite': parsed_url = list(parsed_url) parsed_url[2] += '-%s' % uuidutils.generate_uuid(dashed=False) db_url = urlparse.urlunparse(parsed_url) conf.set_override('connection', db_url, group='database', enforce_type=True) if (parsed_url[0].startswith("mysql") or parsed_url[0].startswith("postgresql")): sqlalchemy_utils.create_database(conf.database.connection) self.conn = storage.get_connection_from_config(self.conf) self.conn.upgrade() LOAD_APP_KWARGS = { 'conf': conf, }
def setUp(self): super(TestEventAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.service = event.EventAlarmEvaluationService(self.CONF) self._msg_notifier = oslo_messaging.Notifier( self.transport, topics=['alarm.all'], driver='messaging', publisher_id='test-publisher')
def setUp(self): super(TestEventAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.storage_conn = mock.MagicMock() self.setup_messaging(self.CONF) with mock.patch('aodh.storage.get_connection_from_config', return_value=self.storage_conn): self.service = event.EventAlarmEvaluationService(self.CONF)
def setUp(self): super(FunctionalTest, self).setUp() conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.CONF.set_override("policy_file", self.path_get('etc/aodh/policy.json'), group='oslo_policy') self.app = self._make_app()
def setUp(self): super(TestAlarmNotifier, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.zaqar = FakeZaqarClient(self) self.useFixture(mockpatch.Patch( 'aodh.notifier.zaqar.ZaqarAlarmNotifier.get_zaqar_client', return_value=self.zaqar)) self.service = notifier.AlarmNotifierService(self.CONF)
def setUp(self): super(FunctionalTest, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.CONF.set_override('policy_file', os.path.abspath('etc/aodh/policy.json'), group='oslo_policy', enforce_type=True) self.app = self._make_app()
def setUp(self): super(FunctionalTest, self).setUp() conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.CONF.set_override("auth_version", "v2.0", 'keystone_authtoken') self.CONF.set_override("policy_file", self.path_get('etc/aodh/policy.json'), group='oslo_policy') self.app = self._make_app()
def expirer(): conf = service.prepare_service() if conf.database.alarm_history_time_to_live > 0: LOG.debug("Clearing expired alarm history data") storage_conn = storage.get_connection_from_config(conf) storage_conn.clear_expired_alarm_history_data( conf.database.alarm_history_time_to_live) else: LOG.info("Nothing to clean, database alarm history time to live " "is disabled")
def setUp(self): super(TestKeystoneClient, self).setUp() self.config = fixture_config.Config( service.prepare_service(argv=[], config_files=[])) self.config.setUp() self.config.register_opts([ cfg.StrOpt('user_domain_id', default=""), cfg.StrOpt('user_domain_name', default=""), cfg.StrOpt('username', default="username"), cfg.StrOpt('password', default="password"), cfg.StrOpt('auth_url', default="testdomain") ], "service_credentials")
def setUp(self): super(TestAlarmNotifier, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.zaqar = FakeZaqarClient(self) self.useFixture(mockpatch.Patch( 'aodh.notifier.zaqar.ZaqarAlarmNotifier.get_zaqar_client', return_value=self.zaqar)) self.service = notifier.AlarmNotifierService(self.CONF) self.useFixture(mockpatch.Patch( 'oslo_context.context.generate_request_id', self._fake_generate_request_id))
def setUp(self): super(TestEvaluatorBase, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.conf = self.useFixture(fixture.Config(conf)).conf self.evaluator = self.EVALUATOR(self.conf) self.notifier = mock.MagicMock() self.evaluator.notifier = self.notifier self.storage_conn = mock.MagicMock() self.evaluator.storage_conn = self.storage_conn self.evaluator._ks_client = mock.Mock(user_id='fake_user_id', project_id='fake_project_id', auth_token='fake_token') self.prepare_alarms()
def start_fixture(self): """Set up config.""" self.conf = None # Determine the database connection. db_url = os.environ.get( 'AODH_TEST_STORAGE_URL', os.environ.get( "OVERTEST_URL", 'sqlite://').replace( "mysql://", "mysql+pymysql://")) if not db_url: raise case.SkipTest('No database connection configured') engine = urlparse.urlparse(db_url).scheme if engine not in ENGINES: raise case.SkipTest('Database engine not supported') conf = service.prepare_service([], config_files=[]) # NOTE(jd): prepare_service() is called twice: first by load_app() for # Pecan, then Pecan calls pastedeploy, which starts the app, which has # no way to pass the conf object so that Paste apps calls again # prepare_service. In real life, that's not a problem, but here we want # to be sure that the second time the same conf object is returned # since we tweaked it. To that, once we called prepare_service() we # mock it so it returns the same conf object. self.prepare_service = service.prepare_service service.prepare_service = mock.Mock() service.prepare_service.return_value = conf conf = fixture_config.Config(conf).conf self.conf = conf opts.set_defaults(self.conf) conf.set_override('policy_file', os.path.abspath( 'aodh/tests/open-policy.json'), group='oslo_policy', enforce_type=True) conf.set_override( 'paste_config', os.path.abspath('aodh/tests/functional/gabbi/gabbi_paste.ini'), group='api', ) database_name = '%s-%s' % (db_url, str(uuid.uuid4())) conf.set_override('connection', database_name, group='database', enforce_type=True) conf.set_override('pecan_debug', True, group='api', enforce_type=True)
def setUp(self): super(TestAlarmNotifier, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self._msg_notifier = oslo_messaging.Notifier( self.transport, topics=['alarming'], driver='messaging', publisher_id='testpublisher') self.zaqar = FakeZaqarClient(self) self.useFixture(fixtures.MockPatch( 'aodh.notifier.zaqar.ZaqarAlarmNotifier.get_zaqar_client', return_value=self.zaqar)) self.service = notifier.AlarmNotifierService(0, self.CONF) self.addCleanup(self.service.terminate)
def setUp(self): super(TestAlarmNotifier, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self._msg_notifier = oslo_messaging.Notifier( self.transport, topics=["alarming"], driver="messaging", publisher_id="testpublisher" ) self.zaqar = FakeZaqarClient(self) self.useFixture( mockpatch.Patch("aodh.notifier.zaqar.ZaqarAlarmNotifier.get_zaqar_client", return_value=self.zaqar) ) self.service = notifier.AlarmNotifierService(0, self.CONF) self.addCleanup(self.service.terminate)
def setUp(self): super(TestAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('workers', 1, 'evaluator') self.setup_messaging(self.CONF) self.threshold_eval = mock.MagicMock() self.evaluators = extension.ExtensionManager.make_test_instance([ extension.Extension('threshold', None, None, self.threshold_eval), ]) self.svc = evaluator.AlarmEvaluationService(self.CONF) self.svc.tg = mock.Mock()
def setUp(self): sql_conf = service.prepare_service(argv=[], config_files=[]) self.sql_conf = self.useFixture(fixture_config.Config(sql_conf)).conf # using sqlite to represent the type of SQL dbs self.sql_conf.set_override('connection', "sqlite://", group="database", enforce_type=True) self.sql_namager = tests_db.SQLiteManager(self.sql_conf) self.useFixture(self.sql_namager) self.sql_conf.set_override('connection', self.sql_namager.url, group="database", enforce_type=True) self.sql_alarm_conn = storage.get_connection_from_config(self.sql_conf) self.sql_alarm_conn.upgrade() super(TestDataMigration, self).setUp() self.add_some_alarms() self._add_some_alarm_changes()
def setUp(self): super(TestEvaluatorBase, self).setUp() conf = service.prepare_service([]) self.conf = self.useFixture(fixture.Config(conf)).conf self.api_client = mock.Mock() self.useFixture(mockpatch.Patch('ceilometerclient.client.get_client', return_value=self.api_client)) self.notifier = mock.MagicMock() self.evaluator = self.EVALUATOR(self.conf, self.notifier) self.storage_conn = mock.MagicMock() self.evaluator.storage_conn = self.storage_conn self.evaluator._ks_client = mock.Mock(user_id='fake_user_id', project_id='fake_project_id', auth_token='fake_token') self.prepare_alarms()
def setUp(self): super(TestEvaluatorBase, self).setUp() conf = service.prepare_service([]) self.conf = self.useFixture(fixture.Config(conf)).conf self.api_client = mock.Mock() self.useFixture( mockpatch.Patch('ceilometerclient.client.get_client', return_value=self.api_client)) self.notifier = mock.MagicMock() self.evaluator = self.EVALUATOR(self.conf, self.notifier) self.storage_conn = mock.MagicMock() self.evaluator.storage_conn = self.storage_conn self.evaluator._ks_client = mock.Mock(user_id='fake_user_id', project_id='fake_project_id', auth_token='fake_token') self.prepare_alarms()
def setUp(self): super(TestAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override("workers", 1, "evaluator") self.setup_messaging(self.CONF) self.threshold_eval = mock.MagicMock() self._fake_conn = mock.Mock() self._fake_pc = mock.Mock() self._fake_em = extension.ExtensionManager.make_test_instance( [extension.Extension("threshold", None, None, self.threshold_eval)] ) self.useFixture(mockpatch.Patch("stevedore.extension.ExtensionManager", return_value=self._fake_em)) self.useFixture(mockpatch.Patch("aodh.coordination.PartitionCoordinator", return_value=self._fake_pc)) self.useFixture(mockpatch.Patch("aodh.storage.get_connection_from_config", return_value=self._fake_conn))
def setUp(self): super(TestBase, self).setUp() db_url = os.environ.get( 'AODH_TEST_STORAGE_URL', os.environ.get("OVERTEST_URL", 'sqlite://').replace("mysql://", "mysql+pymysql://")) engine = urlparse.urlparse(db_url).scheme # In case some drivers have additional specification, for example: # PyMySQL will have scheme mysql+pymysql. engine = engine.split('+')[0] # NOTE(Alexei_987) Shortcut to skip expensive db setUp test_method = self._get_test_method() if (hasattr(test_method, '_run_with') and engine not in test_method._run_with): raise testcase.TestSkipped('Test is not applicable for %s' % engine) conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('connection', db_url, group="database", enforce_type=True) manager = self.DRIVER_MANAGERS.get(engine) if not manager: self.skipTest("missing driver manager: %s" % engine) self.db_manager = manager(self.CONF) self.useFixture(self.db_manager) self.CONF.set_override('connection', self.db_manager.url, group="database", enforce_type=True) self.alarm_conn = storage.get_connection_from_config(self.CONF) self.alarm_conn.upgrade() self.useFixture( mockpatch.Patch('aodh.storage.get_connection_from_config', side_effect=self._get_connection))
def setUp(self): super(TestRPCAlarmNotifier, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF) self.notifier_server = FakeNotifier(self.CONF, self.transport) self.notifier = rpc.RPCAlarmNotifier(self.CONF) self.alarms = [ alarms.Alarm(None, info={ 'name': 'instance_running_hot', 'meter_name': 'cpu_util', 'comparison_operator': 'gt', 'threshold': 80.0, 'evaluation_periods': 5, 'statistic': 'avg', 'state': 'ok', 'ok_actions': ['http://host:8080/path'], 'user_id': 'foobar', 'project_id': 'snafu', 'period': 60, 'alarm_id': str(uuid.uuid4()), 'severity': 'critical', 'matching_metadata':{'resource_id': 'my_instance'} }), alarms.Alarm(None, info={ 'name': 'group_running_idle', 'meter_name': 'cpu_util', 'comparison_operator': 'le', 'threshold': 10.0, 'statistic': 'max', 'evaluation_periods': 4, 'state': 'insufficient data', 'insufficient_data_actions': ['http://other_host/path'], 'user_id': 'foobar', 'project_id': 'snafu', 'period': 300, 'alarm_id': str(uuid.uuid4()), 'severity': 'critical', 'matching_metadata':{'metadata.user_metadata.AS': 'my_group'} }), ]
def setUp(self): super(TestBase, self).setUp() db_url = os.environ.get( 'AODH_TEST_STORAGE_URL', os.environ.get( "OVERTEST_URL", 'sqlite://').replace( "mysql://", "mysql+pymysql://")) engine = urlparse.urlparse(db_url).scheme # In case some drivers have additional specification, for example: # PyMySQL will have scheme mysql+pymysql. engine = engine.split('+')[0] # NOTE(Alexei_987) Shortcut to skip expensive db setUp test_method = self._get_test_method() if (hasattr(test_method, '_run_with') and engine not in test_method._run_with): raise testcase.TestSkipped( 'Test is not applicable for %s' % engine) conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override('connection', db_url, group="database", enforce_type=True) manager = self.DRIVER_MANAGERS.get(engine) if not manager: self.skipTest("missing driver manager: %s" % engine) self.db_manager = manager(self.CONF) self.useFixture(self.db_manager) self.CONF.set_override('connection', self.db_manager.url, group="database", enforce_type=True) self.alarm_conn = storage.get_connection_from_config(self.CONF) self.alarm_conn.upgrade() self.useFixture(mockpatch.Patch( 'aodh.storage.get_connection_from_config', side_effect=self._get_connection))
def start_fixture(self): """Set up config.""" self.conf = None # Determine the database connection. db_url = None for engine in ENGINES: try: db_url = os.environ['AODH_TEST_%s_URL' % engine] except KeyError: pass if db_url is None: raise case.SkipTest('No database connection configured') conf = service.prepare_service([]) # NOTE(jd): prepare_service() is called twice: first by load_app() for # Pecan, then Pecan calls pastedeploy, which starts the app, which has # no way to pass the conf object so that Paste apps calls again # prepare_service. In real life, that's not a problem, but here we want # to be sure that the second time the same conf object is returned # since we tweaked it. To that, once we called prepare_service() we # mock it so it returns the same conf object. self.prepare_service = service.prepare_service service.prepare_service = mock.Mock() service.prepare_service.return_value = conf conf = fixture_config.Config(conf).conf self.conf = conf opts.set_defaults(self.conf) conf.set_override('policy_file', os.path.abspath('etc/aodh/policy.json'), group='oslo_policy') database_name = '%s-%s' % (db_url, str(uuid.uuid4())) conf.set_override('connection', database_name, group='database') conf.set_override('pecan_debug', True, group='api')
def expirer(): conf = service.prepare_service() if conf.database.alarm_history_time_to_live > 0: LOG.debug("Clearing expired alarm history data") conn = storage.get_connection_from_config(conf) max_count = conf.database.alarm_histories_delete_batch_size try: if max_count > 0: conn.clear_expired_alarm_history_data( conf.database.alarm_history_time_to_live, max_count) else: deleted = max_count = 100 while deleted and deleted > 0: deleted = conn.clear_expired_alarm_history_data( conf.database.alarm_history_time_to_live, max_count) except TypeError: LOG.warning("Storage driver does not support " "'alarm_histories_delete_batch_size' config option.") else: LOG.info("Nothing to clean, database alarm history time to live " "is disabled")
def setUp(self): super(TestApp, self).setUp() conf = service.prepare_service([]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf
def setUp(self): super(TestApp, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf
def setUp(self): super(TestPartitioning, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.shared_storage = {}
def evaluator(): conf = service.prepare_service() os_service.launch(conf, evaluator_svc.AlarmEvaluationService(conf), workers=conf.evaluator.workers).wait()
def dbsync(): conf = service.prepare_service() storage.get_connection_from_config(conf).upgrade()
def setUp(self): super(TestAlarmNotifierService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.setup_messaging(self.CONF)
def setUp(self): super(TestEventAlarmEvaluationService, self).setUp() conf = service.prepare_service(argv=[], config_files=[]) self.CONF = self.useFixture(fixture_config.Config(conf)).conf self.CONF.set_override("batch_size", 2, 'listener') self.setup_messaging(self.CONF)
def listener(): conf = service.prepare_service() os_service.launch(conf, event_svc.EventAlarmEvaluationService(conf), workers=conf.listener.workers).wait()
def main(): conf = service.prepare_service() app.build_server(conf)
def evaluator(): conf = service.prepare_service() os_service.launch(conf, evaluator_svc.AlarmEvaluationService(conf)).wait()
def _app(): conf = service.prepare_service() return setup_app(conf=conf)
def notifier(): conf = service.prepare_service() os_service.launch(conf, notifier_svc.AlarmNotifierService(conf), workers=conf.notifier.workers).wait()