示例#1
0
 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()
示例#2
0
 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)
示例#3
0
 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()
示例#4
0
 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)
示例#5
0
文件: storage.py 项目: ylwdream/panko
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")
示例#6
0
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")
示例#7
0
 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)
示例#8
0
    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,
        }
示例#9
0
    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',
        }
示例#10
0
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)
示例#11
0
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)
示例#12
0
 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()
示例#13
0
 def __init__(self, ceilo_conf, parsed_url):
     conf = service.prepare_service([], share=True)
     self.conn = storage.get_connection_from_config(conf)
示例#14
0
 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)
示例#15
0
 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)
示例#16
0
 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)
示例#17
0
 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)
示例#18
0
def dbsync():
    conf = service.prepare_service()
    storage.get_connection_from_config(conf).upgrade()
示例#19
0
def dbsync():
    conf = service.prepare_service()
    storage.get_connection_from_config(conf).upgrade()
示例#20
0
 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)
示例#21
0
文件: hooks.py 项目: openstack/panko
 def __init__(self, conf):
     self.connection = storage.get_connection_from_config(
         conf)
示例#22
0
 def __init__(self, conf):
     self.connection = storage.get_connection_from_config(conf)
示例#23
0
 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()
示例#24
0
 def __init__(self, ceilo_conf, parsed_url):
     conf = service.prepare_service([], share=True)
     self.conn = storage.get_connection_from_config(conf)
示例#25
0
 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)