in docker/services/metrics_service.py [0:0]
def _read_meta_file(meta_file_path: str, instance_meta_mapping: dict):
_LOG.debug(f'Processing meta file \'{meta_file_path}\'')
try:
with open(meta_file_path, 'r') as f:
file_meta = json.load(f)
except json.decoder.JSONDecodeError:
_LOG.error(f'Unable to read meta file \'{meta_file_path}\', '
f'skipping')
return instance_meta_mapping
if not isinstance(file_meta, list):
_LOG.error(f'Invalid meta format: must be a valid list')
return instance_meta_mapping
for resource_meta in file_meta:
resource_id = resource_meta.get(META_KEY_RESOURCE_ID)
if not resource_id:
continue
if resource_id not in instance_meta_mapping:
instance_meta_mapping[resource_id] = resource_meta
continue
timestamp = resource_meta.get(META_KEY_CREATE_DATE_TIMESTAMP)
instance_timestamp = instance_meta_mapping[
resource_id].get(META_KEY_CREATE_DATE_TIMESTAMP)
# overwrite instance meta with latest meta found
if timestamp and instance_timestamp and \
timestamp > instance_timestamp \
or not instance_timestamp:
instance_meta_mapping[resource_id].update(resource_meta)
return instance_meta_mapping