Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. The DuraCloud user browses the snapshot listings and clicks the "Restore" button on a snapshot
  2. The DuraCloud UI calls a DuraCloud Restore task
  3. The DuraCloud Restore task creates a space where the restored content will be placed and calls the bridge application with a restore request
    1. A bucket policy will be added to the space to delete content after a set time period (3 weeks? a month?)
  4. The bridge application adds an entry to the restore db table
  5. The bridge application creates a directory in bridge storage and sends a notification to Chronopolis to request a restore action
  6. Chronopolis copies the contents of the snapshot DPN bag to the bridge storage directory
  7. The bridge application copies content from bridge storage to DuraCloud space
  8. The bridge application reads the content metadata file and updates each content item with its metadata values
  9. The bridge application verifies (based on manifest) that content transferred to DuraCloud is consistent with the content that was originally in DuraCloud (pre*-snapshot)
  10. The bridge application deletes the directory in bridge storage used for the restore action
  11. The bridge application notifies the user who requested the restoration that the process is complete, informs them of the space ID where they can find their content, and tells them the date on which the content will be removed

Panel
titleDatabase

...

Tables

DB

  • Table to capture spring batch processing (states)
  • Table to capture snapshots
    • Snapshot ID
    • Snapshot date
    • Source DuraCloud Host
    • Source DuraCloud Port
    • Source DuraCloud Space
    • Number of content items in snapshot
    • List of duracloud accounts for which the snapshot is visible
    • Snapshot status
  • Table to capture content items
    • Snapshot ID
    • Content ID
    • Content Metadata List (serialized)
  • Table to capture restore actions
    • Snapshot ID
    • Restoration ID
    • DuraCloud Host
    • DuraCloud Port
    • DuraCloud Space
    • Start Date
    • End Date
    • Restore status
Panel
titleInterface Points - APIs

Snapshot Storage Provider Tasks

  • Create snapshot (space ID)
    • create snapshot properties file, store it in space
    • space transitioned to read only
    • call made to bridge API to create snapshot
  • Get snapshot status (snapshot ID)
    • call made to bridge for status
  • Complete snapshot (snapshot ID, space ID)
    • set bucket deletion policy
  • Get list of snapshots
    • call to bridge for snapshot list, formats results
  • Get list of content items (snapshot ID, offset, maxresults)
    • call to bridge for content item list
  • Restore snapshot (snapshot ID)
    • verify that a
    • create a space for the snapshot to be placed into
    • call to bridge to restore
  • Get restore status (snapshot ID)
    • call made to bridge for status

Bridge API

  • Create snapshot (host, port, spaceID, snapshotID)
    • create snapshot db entry
    • copy content to bridge storage
    • create a manfitest for content
    • notify chronopolis that snapshot is ready for storage
  • Get snapshot status (host, port, snapshot ID)
    • query snapshot status from the db (and from chronopolis, depending on status)
  • Snapshot storage complete (snapshot ID)
    • delete content in bridge storage
    • call task to indicate that snapshot is complete
    • notify end user that snapshot is complete
  • Get list of snapshots (host)
    • Queries db for snapshot list available to host
  • Get list of content items (snapshot ID, offset, maxresults)
    • Queries db for content item list for the given snapshot ID
  • Begin Restore snapshot (host, port, spaceId, snapshot ID)
    • create restore db entry
    • create a directory on bridge storage
    • requests restore from chronopolis
  • Restore snapshot (
    • copy content to Duracloud
    • update content metadata
    • verify restored content
    • delete content on bridge
    • notify end user that restore is complete
  • Get restore status (host, port, snapshot ID)
    • query restore status from the db (and from chronopolis, depending on status)

Chronopolis

  • Store snapshot (snapshot ID, bridge storage path)
  • Get snapshot status (snapshot ID)
  • Restore snapshot (snapshot ID, bridge storage path)
  • Get restore status (snapshot ID)