Properly handle cold restart with empty storage
Change-Id: Ia7dcaaf32a96fd1db345ff8ec4fc5aec007297bd
This commit is contained in:
parent
79b1ebba89
commit
fd3eccafdc
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
||||
|
|
Loading…
Reference in New Issue