Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/deposit/loader.py
Show First 20 Lines • Show All 116 Lines • ▼ Show 20 Lines | def load(self) -> Dict: | ||||
return {"status": "failed"} | return {"status": "failed"} | ||||
# Then usual loading | # Then usual loading | ||||
r = super().load() | r = super().load() | ||||
success = r["status"] != "failed" | success = r["status"] != "failed" | ||||
if success: | if success: | ||||
# Update archive with metadata information | # Update archive with metadata information | ||||
origin_metadata = self.metadata["origin_metadata"] | origin_metadata = self.metadata["origin_metadata"] | ||||
logger.debug("origin_metadata: %s", origin_metadata) | logger.debug("origin_metadata: %s", origin_metadata) | ||||
tools = self.storage.tool_add([origin_metadata["tool"]]) | |||||
logger.debug("tools: %s", tools) | |||||
tool_id = tools[0]["id"] | |||||
provider = origin_metadata["provider"] | provider = origin_metadata["provider"] | ||||
# FIXME: Shall we delete this info? | authority = { | ||||
provider_id = self.storage.metadata_provider_add( | "type": provider["provider_type"], | ||||
provider["provider_name"], | "url": provider["provider_url"], | ||||
provider["provider_type"], | "metadata": { | ||||
provider["provider_url"], | "name": provider["provider_name"], | ||||
metadata=None, | **(provider["metadata"] or {}), | ||||
) | }, | ||||
ardumont: This is the internal deposit_read api the loader use (the one i was talking about earlier) [1]… | |||||
} | |||||
self.storage.metadata_authority_add(**authority) | |||||
tool = origin_metadata["tool"] | |||||
fetcher = { | |||||
"name": tool["name"], | |||||
"version": tool["version"], | |||||
"metadata": tool["configuration"], | |||||
} | |||||
self.storage.metadata_fetcher_add(**fetcher) | |||||
metadata = origin_metadata["metadata"] | metadata = origin_metadata["metadata"] | ||||
format = "sword-v2-atom-codemeta-v2-in-json" | |||||
self.storage.origin_metadata_add( | self.storage.origin_metadata_add( | ||||
self.url, self.visit_date, provider_id, tool_id, metadata | self.url, | ||||
self.visit_date, | |||||
{"type": authority["type"], "url": authority["url"]}, | |||||
Not Done Inline Actionsi guess those are respectively the authority and fetcher's id. ardumont: i guess those are respectively the authority and fetcher's id. | |||||
Done Inline Actionsyes vlorentz: yes | |||||
{"name": fetcher["name"], "version": fetcher["version"]}, | |||||
format, | |||||
metadata, | |||||
) | ) | ||||
# Update deposit status | # Update deposit status | ||||
try: | try: | ||||
if not success: | if not success: | ||||
self.client.status_update(self.deposit_id, status="failed") | self.client.status_update(self.deposit_id, status="failed") | ||||
return r | return r | ||||
▲ Show 20 Lines • Show All 118 Lines • Show Last 20 Lines |
This is the internal deposit_read api the loader use (the one i was talking about earlier) [1]
[1] https://forge.softwareheritage.org/source/swh-deposit/browse/master/swh/deposit/api/private/deposit_read.py$111-127