diff --git a/driverlog/dashboard/vault.py b/driverlog/dashboard/vault.py index f4c89b4..bfb5744 100644 --- a/driverlog/dashboard/vault.py +++ b/driverlog/dashboard/vault.py @@ -17,6 +17,7 @@ import re import flask import memcache +from oslo_config import cfg from oslo_log import log as logging @@ -62,17 +63,11 @@ def get_vault(): vault = getattr(flask.current_app, 'driverlog_vault', None) if not vault: try: - if 'CONF' not in flask.current_app.config: - LOG.critical('Configure environment variable DRIVERLOG_CONF ' - 'with path to config file') - flask.abort(500) - vault = {} - conf = flask.current_app.config['CONF'] MEMCACHED_URI_PREFIX = r'^memcached:\/\/' stripped = re.sub(MEMCACHED_URI_PREFIX, '', - conf.runtime_storage_uri) + cfg.CONF.runtime_storage_uri) memcached_uri = stripped.split(',') memcached = memcache.Client(memcached_uri) @@ -90,7 +85,7 @@ def get_vault(): memcached = vault['memcached'] update_time = memcached.get('driverlog:update_time') - if vault.get('update_time') != update_time: + if update_time is None or vault.get('update_time') != update_time: vault['update_time'] = update_time default_data = memcached.get('driverlog:default_data') diff --git a/driverlog/dashboard/web.py b/driverlog/dashboard/web.py index 82ff2a2..fc89b20 100644 --- a/driverlog/dashboard/web.py +++ b/driverlog/dashboard/web.py @@ -42,7 +42,6 @@ def main(): if conf_file and os.path.isfile(conf_file): conf(default_config_files=[conf_file]) app.config['DEBUG'] = cfg.CONF.debug - app.config['CONF'] = cfg.CONF LOG.info('DriverLog.dashboard is configured via "%s"', conf_file) else: conf(project='driverlog') diff --git a/driverlog/processor/main.py b/driverlog/processor/main.py index b9a842f..e8bf1bd 100644 --- a/driverlog/processor/main.py +++ b/driverlog/processor/main.py @@ -160,6 +160,10 @@ def process(memcached_inst, default_data, force_update): if (new_dd_hash != old_dd_hash) or force_update: transform_default_data(default_data) need_update = True + + if old_dd_hash is None: + LOG.info('Memcached is empty, pre-fill it with defaults') + memcached_inst.set('driverlog:default_data', default_data) else: default_data = memcached_inst.get('driverlog:default_data')