diff --git a/dashboard/vault.py b/dashboard/vault.py index 77a871900..3c9adea72 100644 --- a/dashboard/vault.py +++ b/dashboard/vault.py @@ -68,8 +68,13 @@ def get_vault(): LOG.exception(e) flask.abort(500) - if not getattr(flask.request, 'stackalytics_updated', None): + time_now = utils.date_to_timestamp('now') + may_update_by_time = (time_now > vault.get('vault_update_time', 0) + + cfg.CONF.dashboard_update_interval) + if (may_update_by_time and + not getattr(flask.request, 'stackalytics_updated', None)): flask.request.stackalytics_updated = True + vault['vault_update_time'] = time_now memory_storage_inst = vault['memory_storage'] have_updates = memory_storage_inst.update( compact_records(vault['runtime_storage'].get_update(os.getpid()))) diff --git a/etc/stackalytics.conf b/etc/stackalytics.conf index 347f084a3..9019fe111 100644 --- a/etc/stackalytics.conf +++ b/etc/stackalytics.conf @@ -46,3 +46,6 @@ # Default project type # default_project_type = openstack + +# The interval specifies how frequently dashboard should check for updates in seconds +# dashboard-update-interval = 3600 diff --git a/stackalytics/processor/config.py b/stackalytics/processor/config.py index a41566df0..8cbbf1c5f 100644 --- a/stackalytics/processor/config.py +++ b/stackalytics/processor/config.py @@ -53,4 +53,7 @@ OPTS = [ help='Default release, the most recent if not set'), cfg.StrOpt('default-project-type', default='openstack', help='Default project type'), + cfg.IntOpt('dashboard-update-interval', default=3600, + help='The interval specifies how frequently dashboard should ' + 'check for updates in seconds'), ]