+ # Get the updated descriptor from the api endpoint to get any updates
+ # made to the catalog. Also desc_msg may not be populated correctly as yet.
+ #
+
+ try:
+ # merge the descriptor content: for rbac everything needs to be project rooted, with project name.
+ D = collections.defaultdict(dict)
+ sub_dict = self.onboarder.get_updated_descriptor(desc_msg, self.project_name)
+
+ if self.project_name:
+ D["project"] = dict(name = self.project_name)
+ root_key, sub_key = "project-{0}:{0}-catalog".format(desc_type), "project-{0}:{0}".format(desc_type)
+ D["project"].update({root_key: sub_dict})
+ else:
+ root_key, sub_key = "{0}:{0}-catalog".format(desc_type), "{0}:{0}".format(desc_type)
+ D[root_key] = sub_dict
+
+ json_desc_msg = json.dumps(D)
+ desc_name, desc_version = sub_dict[sub_key]['name'], sub_dict[sub_key].get('version', '')
+
+ except Exception as e:
+ msg = "Exception {} raised - {}".format(e.__class__.__name__, str(e))
+ self.log.error(msg)
+ raise ArchiveExportError(msg) from e
+
+ # exported filename based on the updated descriptor name
+ self.filename = "{}_{}".format(desc_name, desc_version)
+ self.log.debug("JSON string for descriptor: {}".format(json_desc_msg))
+