Open julianmorley opened 7 years ago
At this time, this is ONLY for online Moabs. We will solve the problem of inventorying archive Moabs later, perhaps by extending this or by doing something else.
Story time notes:
pseudo code to try expressing the inventory service and the methods it will need:
# scan storage root for new moabs
# create new moabs in ois
MoabStorage.all.each do |m|
if InventoryService.preserved_object_exists?(m)
InventoryService.create(m) # or POST /catalog/add_preserved_object
end
end
# scan storage root for updated moabs
# update ois if necessary
MoabStorage.all.each do |m|
moab_version = m.version
latest_ois_version = m.latest_ois_version
if moab_version > latest_ois_version
InventoryService.update(m) # or PUT /catalog/update_preserved_object
end
end
# be told by ingestWF of a new/updated moab
# put that moab in ois
if IngestWF.new_moab?
ingest_moab = InventoryService.fetch_ingest_wf_moab # or GET /moab_storage/show/:id
InventoryService.create(ingest_moab) # or POST /catalog/add_preserved_object
end
Work out how to: