...
- In DuraCloud, content is added by the user into a Snapshot Storage Provider space. This is a staging area that is backed by S3.
- The user selects a button in the space to create snapshot and enters snapshot metadata
- The DuraCloud UI calls the storage provider snapshot task indicating space to snapshot
- The snapshot task creates snapshot properties file and stores it in snapshot space
- When the snapshot properties file is added, the space is transitioned to read-only
- The snapshot task calls to the bridge application to indicate that a snapshot needs to be taken, providing DuraCloud host/port/space
- The bridge application adds an entry to the snapshot db table with the details of the snapshot action
- The bridge application connects to DuraCloud and copies all content from DuraCloud space to bridge storage
- During transfer, content metadata is captured in a file
- During transfer, each content item is added to content db table (with snapshot id)
- The bridge application creates a manifest for the content and verifies all content was transferred correctly
- The bridge application sends a notification to chronopolis that a snapshot is ready
- Chronopolis moves the content from bridge storage into preservation storage and constructs DPN bag
- Chronopolis validates against the manifest written by DuraCloud to the bridge storage
- Chronopolis creates the necessary bag files (bagit, bag-info, dpn-info) and registry entry for DPN
- Chronopolis performs replication to other Chronopolis nodes and DPN
- Ace Tokens are created for other Chronopolis Nodes
- AMQP used to relay information about the state of replication
- Chronopolis makes a call to the bridge application to indicate that content has been successfully copied to preservation storage
- The bridge application deletes the directory in bridge storage used for the snapshot
- The bridge application makes a call to a task in the DuraCloud Chronopolis provider to indicate that the snapshot was successfulit is now time to clean up the snapshot content
- The cleanup task sets a policy on the underlying S3 bucket which causes the content to be removed within 24 hours
- The bridge application watches the snapshot space, and when it becomes empty, calls the snapshot complete task, which clears the S3 bucket policy
- The bridge application notifies the user who requested the snapshot that it has been completedThe DuraCloud Chronopolis provider task sets content in the space for removal (bucket task)
Snapshot Display
- A DuraCloud user selects the Snapshot Storage Provider in the DuraCloud UI
- The DuraCloud UI (DurAdmin) make the usual call to get spaces and also calls a task in the Snapshot Storage Provider to request a list of snapshots
- The snapshots task calls the bridge application to request a list of snapshots
- Note: DuraCloud is not aware of the snapshot database. All communication with the db goes through the bridge application.
- The bridge application queries the database (snapshot table) to retrieve a listing of snapshots which are visible to the given DuraCloud account
- The bridge application returns list of snapshots, which are passed back up the chain to the UI
- The DuraCloud UI displays the list of snapshots alongside the traditional spaces in a way the distinguishes the two sets, providing a Restore button on each snapshot space
- When a snapshot space is selected, a call to another task in the Snapshot Storage Provider is made to retrieve the listing of content items
- The snapshot content item task calls the bridge application to request the list of content in a snapshot
- The bridge application queries the database to retrieve the listing of content
- The bridge application returns the first X items, which is passed back up the chain to the UI
- The DuraCloud UI displays the list of content items in the same way it would display content items for a traditional space
- Requests for more items in the content listing follow the same pattern, but with a parameter to indicate offset
...