Skip to content

Commit

Permalink
Merge pull request #497 from hubmapconsortium/datasets_publish_move_j…
Browse files Browse the repository at this point in the history
…son_dump_to_end

Move writing of metadata.json to the end of dataset publish endpoint
  • Loading branch information
yuanzhou authored Feb 19, 2024
2 parents 1e8f120 + a02618d commit 6a9f52f
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions src/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -945,19 +945,8 @@ def publish_datastage(identifier):
dataset_contributors = dataset_contributors.replace("'", '"')
if len(json.loads(dataset_contacts)) < 1 or len(json.loads(dataset_contributors)) < 1:
return jsonify({"error": f"{dataset_uuid} missing contacts or contributors. Must have at least one of each"}), 400

ingest_helper: IngestFileHelper = IngestFileHelper(app.config)
ds_path = ingest_helper.dataset_directory_absolute_path(dataset_data_access_level,
dataset_group_uuid, dataset_uuid, False)
md_file = os.path.join(ds_path, "metadata.json")
json_object = entity_json_dumps(entity_instance, dataset_uuid)
logger.info(f"publish_datastage; writing metadata.json file: '{md_file}'; "
f"containing: '{json_object}'")
try:
with open(md_file, "w") as outfile:
outfile.write(json_object)
except Exception as e:
logger.exception(f"Fatal error while writing md_file {md_file}; {str(e)}")
return jsonify({"error": f"{dataset_uuid} problem writing metadata.json file."}), 500

data_access_level = dataset_data_access_level
#if consortium access level convert to public dataset, if protected access leave it protected
Expand Down Expand Up @@ -1038,6 +1027,20 @@ def publish_datastage(identifier):
for e_id in uuids_for_public:
out = entity_instance.clear_cache(e_id)

# Write out the metadata.json file after all processing has been done...
ds_path = ingest_helper.dataset_directory_absolute_path(dataset_data_access_level,
dataset_group_uuid, dataset_uuid, False)
md_file = os.path.join(ds_path, "metadata.json")
json_object = entity_json_dumps(entity_instance, dataset_uuid)
logger.info(f"publish_datastage; writing metadata.json file: '{md_file}'; "
f"containing: '{json_object}'")
try:
with open(md_file, "w") as outfile:
outfile.write(json_object)
except Exception as e:
logger.exception(f"Fatal error while writing md_file {md_file}; {str(e)}")
return jsonify({"error": f"{dataset_uuid} problem writing metadata.json file."}), 500

if no_indexing_and_acls:
r_val = {'acl_cmd': acls_cmd, 'donors_for_indexing': donors_to_reindex}
else:
Expand Down

0 comments on commit 6a9f52f

Please sign in to comment.