def test_retries(self): # stevedore gives warning log instead of any exception with mock.patch.object(storage, 'get_connection', side_effect=Exception) as retries: try: self.CONF.set_override("retry_interval", 1, group="database") self.CONF.set_override("max_retries", 3, group="database") storage.get_connection_from_config(self.CONF) except Exception: self.assertEqual(3, retries.call_count) else: self.fail()
def test_retries(self): with mock.patch.object(retrying.Retrying, 'should_reject') as retry_reject: try: self.CONF.set_override("connection", "no-such-engine://", group="database") self.CONF.set_override("retry_interval", 0.00001, group="database") storage.get_connection_from_config(self.CONF) except RuntimeError as err: self.assertIn('no-such-engine', six.text_type(err)) self.assertEqual(10, retry_reject.call_count)
def test_two_urls(self): self.CONF.set_override("connection", "log://", group="database") self.CONF.set_override("event_connection", "sqlite://", group="database") conn = storage.get_connection_from_config(self.CONF) self.assertIsInstance(conn, impl_log.Connection)
def expirer(): conf = service.prepare_service() if conf.database.event_time_to_live > 0: LOG.debug("Clearing expired event data") conn = storage.get_connection_from_config(conf) conn.clear_expired_data(conf.database.event_time_to_live) else: LOG.info("Nothing to clean, database event time to live " "is disabled")
def __init__(self, conf): debtcollector.deprecate( "Panko dispatcher is deprecated." "Use publisher to push data instead", version="3.0", removal_version="4.0") # NOTE(jd) The `conf' arg is the Ceilometer conf, but we don't really # need it here. conf = service.prepare_service([], share=True) self.conn = storage.get_connection_from_config(conf)
def start_fixture(self): """Set up config.""" global LOAD_APP_KWARGS self.conf = None # Determine the database connection. db_url = os.environ.get('PIFPAF_URL', "sqlite://").replace( "mysql://", "mysql+pymysql://") if not db_url: raise case.SkipTest('No database connection configured') conf = self.conf = service.prepare_service([], []) opts.set_defaults(self.conf) content = ('{"default": ""}') if six.PY3: content = content.encode('utf-8') self.tempfile = fileutils.write_to_tempfile(content=content, prefix='policy', suffix='.json') conf.set_override("policy_file", self.tempfile, group='oslo_policy') conf.set_override( 'api_paste_config', os.path.abspath( 'panko/tests/functional/gabbi/gabbi_paste.ini') ) 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') conf.set_override('event_connection', '', group='database') 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 start_fixture(self): """Set up config.""" global LOAD_APP_KWARGS self.conf = None # Determine the database connection. db_url = os.environ.get('PIFPAF_URL', "sqlite://").replace( "mysql://", "mysql+pymysql://") if not db_url: raise case.SkipTest('No database connection configured') conf = self.conf = service.prepare_service([], []) opts.set_defaults(self.conf) content = ('{"default": ""}') if six.PY3: content = content.encode('utf-8') self.tempfile = fileutils.write_to_tempfile(content=content, prefix='policy', suffix='.json') conf.set_override("policy_file", self.tempfile, group='oslo_policy') conf.set_override( 'api_paste_config', os.path.abspath('etc/panko/api_paste.ini') ) parsed_url = list(urlparse.urlparse(db_url)) parsed_url[2] += '-%s' % uuidutils.generate_uuid(dashed=False) db_url = urlparse.urlunparse(parsed_url) conf.set_override('connection', db_url, group='database') 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, 'appname': 'panko+noauth', }
def main(): conf = service.prepare_service() parser = argparse.ArgumentParser( description='generate event data', ) parser.add_argument( '--interval', default=10, type=int, help='The period between events, in minutes.', ) parser.add_argument( '--start', default=31, type=int, help='The number of days in the past to start timestamps.', ) parser.add_argument( '--end', default=2, type=int, help='The number of days into the future to continue timestamps.', ) parser.add_argument( '--event_types', default=3, type=int, help='The number of unique event_types.', ) args = parser.parse_args() # Connect to the event database conn = storage.get_connection_from_config(conf) # Compute the correct time span start = datetime.datetime.utcnow() - datetime.timedelta(days=args.start) end = datetime.datetime.utcnow() + datetime.timedelta(days=args.end) make_test_data(conn=conn, start=start, end=end, interval=args.interval, event_types=args.event_types)
def stop_fixture(self): """Reset the config and remove data.""" if self.conn: self.conn.clear() if self.conf: storage.get_connection_from_config(self.conf).clear()
def __init__(self, ceilo_conf, parsed_url): conf = service.prepare_service([], share=True) self.conn = storage.get_connection_from_config(conf)
def test_only_default_url(self): self.CONF.set_override("connection", "log://", group="database") conn = storage.get_connection_from_config(self.CONF) self.assertIsInstance(conn, impl_log.Connection)
def __init__(self, conf): # NOTE(jd) The `conf' arg is the Ceilometer conf, but we don't really # need it here. conf = service.prepare_service([]) self.event_conn = storage.get_connection_from_config(conf)
def test_sqlalchemy_driver(self): self.CONF.set_override("connection", "sqlite+pysqlite://", group="database") conn = storage.get_connection_from_config(self.CONF) self.assertIsInstance(conn, impl_sqlalchemy.Connection)
def dbsync(): conf = service.prepare_service() storage.get_connection_from_config(conf).upgrade()
def __init__(self, conf): self.connection = storage.get_connection_from_config( conf)
def __init__(self, conf): self.connection = storage.get_connection_from_config(conf)