def apply_corrections(uri, runtime_storage_inst): LOG.info('Applying corrections from uri %s', uri) corrections = utils.read_json_from_uri(uri) if not corrections: LOG.error('Unable to read corrections from uri: %s', uri) return valid_corrections = [] for c in corrections['corrections']: if 'primary_key' in c: valid_corrections.append(c) else: LOG.warn('Correction misses primary key: %s', c) runtime_storage_inst.apply_corrections(valid_corrections)
def main(): # init conf and logging conf = cfg.CONF conf.register_cli_opts(config.OPTS) conf.register_opts(config.OPTS) conf() logging.setup('spectrometer') LOG.info('Logging enabled') 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 not default_data: LOG.critical('Unable to load default data') return not 0 default_data_processor.process(runtime_storage_inst, default_data, cfg.CONF.sources_root, cfg.CONF.force_update) process_program_list(runtime_storage_inst, cfg.CONF.program_list_uri) update_pids(runtime_storage_inst) record_processor_inst = record_processor.RecordProcessor( runtime_storage_inst) update_records(runtime_storage_inst, record_processor_inst) apply_corrections(cfg.CONF.corrections_uri, runtime_storage_inst) # long operation should be the last update_members(runtime_storage_inst, record_processor_inst) runtime_storage_inst.set_by_key('runtime_storage_update_time', utils.date_to_timestamp('now'))