diff --git a/stackalytics/processor/config.py b/stackalytics/processor/config.py index 4b720e392..81018a0fe 100644 --- a/stackalytics/processor/config.py +++ b/stackalytics/processor/config.py @@ -24,6 +24,9 @@ CONNECTION_OPTS = [ ] PROCESSOR_OPTS = [ + cfg.StrOpt('default-data-file', + help='Default data file. This file is used instead of ' + 'default-data-uri if specifying.'), cfg.StrOpt('default-data-uri', default='https://git.openstack.org/cgit/' 'openstack/stackalytics/plain/etc/default_data.json', diff --git a/stackalytics/processor/main.py b/stackalytics/processor/main.py index 4a2180f6a..1e2e067b5 100644 --- a/stackalytics/processor/main.py +++ b/stackalytics/processor/main.py @@ -312,7 +312,10 @@ def main(): runtime_storage_inst = runtime_storage.get_runtime_storage( cfg.CONF.runtime_storage_uri) - default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri) + if cfg.CONF.default_data_file: + default_data = utils.read_json_from_file(cfg.CONF.default_data_file) + else: + default_data = utils.read_json_from_uri(cfg.CONF.default_data_uri) if not default_data: LOG.critical('Unable to load default data') return not 0 diff --git a/stackalytics/processor/utils.py b/stackalytics/processor/utils.py index 9af1460a0..6920eb179 100644 --- a/stackalytics/processor/utils.py +++ b/stackalytics/processor/utils.py @@ -22,6 +22,7 @@ import re import time import iso8601 +import json from oslo_config import cfg from oslo_log import log as logging import requests @@ -151,6 +152,12 @@ def read_json_from_uri(uri, session=None): {'error': e, 'uri': uri}) +def read_json_from_file(filename): + with open(filename) as json_data: + data = json.load(json_data) + return data + + def read_yaml_from_uri(uri): try: return yaml.safe_load(read_uri(uri))