sul-dlss / preservation2017

Story repo for preservation core work done summer/fall 2017
0 stars 0 forks source link

Story: Create an Inventory Process for online Moabs #39

Open julianmorley opened 7 years ago

julianmorley commented 7 years ago

Work out how to:

julianmorley commented 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.

tallenaz commented 7 years ago

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