Versions Compared

Key

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

...

Panel
titleIngest Operations

Create Snapshot

  • Purpose: Performs a snapshot action
  • Request: PUT https://host:port/bridge/snapshot/(snapshotId)
    • snapshotId - Identifier of the snapshot

  • Request Body: JSON:

    Code Block
    {
      "host" : "",
      "port" : "",
      "storeId" : "",
      "spaceId" : "",
      "description" : "",
      "userEmail" : ""
    } 
    • host - DNS host of DuraCloud instance from which snapshot can be taken
    • port - Port on which DuraCloud applications are available
    • storeID - Identifier of Chronopolis staging storage provider on DuraCloud instance
    • spaceID - Identifier of space in which snapshot content resides
    • description - User-supplied description of the snapshot
    • userEmail - User's email address, for notifications
  • Response Code: 200 or 201 on success (201 if snapshot request did not already exist)
  • Response Body: JSON:

    Code Block
    {
      "snapshotId" : "",
      "status": ""
    }


List Snapshots

  • Purpose: Retrieves a list of snapshots. Several optional filters (see query parameters) limit the returned list of snapshots.
  • Request: GET https://host:port/bridge/snapshot ? host=(host) & storeId=(storeID) & status=(status)

    • host - (optional) DuraCloud host from which the snapshot originated. This is generally in the form (account).duracloud.org

    • storeId - (optional) Identifier for DuraCloud storage provider from which the snapshot originated.

    • status - (optional) Current status of the snapshot. 

      • Possible status values:

        • INITIALIZED

        • TRANSFERRING_FROM_DURACLOUD

        • REPLICATING_TO_STORAGE

        • CLEANING_UP

        • SNAPSHOT_COMPLETE

        • FAILED_TO_TRANSFER_FROM_DURACLOUD

        • ERROR

        • CANCELLED

  • Response Body: JSON:

    Code Block
    {
      "snapshots" : [
        {
          "snapshotId" : "",  
          "description" : "",
          "status" : ""
        }, 
        ...,
        ...  
      ]
    }


List Snapshot Contents

  • Purpose: Retrieves a list of content items which were included in a snapshot
  • Request:  GET https://host:port/bridge/snapshot/(snapshotId)/content ? page=(pageNumber) & pageSize=(pageSize) & prefix=(prefix)

    • snapshotId - Identifier of the snapshot
    • pageNumber - Page number of content listing
    • pageSize - Number of content items to return in a single response

    • prefix - Limit content list to items which begin with this value

  • Response Body: JSON:

Code Block
{ 
  "contentItems" : [
    { "contentId" : "",
      "contentProperties" : {"" : ""}
    }
  ]
}

 


List Snapshot History

  • Purpose: Retrieves a list of content items which were included in a snapshot
  • Request: GET https://host:port/bridge/snapshot/(snapshotId)/history ? page=(pageNumber) & pageSize=(pageSize)
    • snapshotId - Identifier of the snapshot
    • pageNumber - Page number of history set
    • pageSize - Number of history items to return in a single response
  • Response Body: JSON:
Code Block
{ 
  "totalCount" : (Long) # of historyItems
  "historyItems" : [
    { "historyDate" : (Long) epoch time,
      "history" : "${history item string}"
    },
  ]
}

 


Get Snapshot Details

  • Purpose: Provides the status of a snapshot action
  • Request: GET https://host:port/bridge/snapshot/(snapshotId)
    • snapshotId - Identifier of the snapshot
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "snapshotId" : "",
      "snapshotDate" : "",
      "status" : "",
      "sourceHost" : "",
      "sourceSpaceId" : "",
      "sourceStoreId" : "",
      "description" : "",
      "contentItemCount" : "",
      "totalSizeInBytes" : ""
    }

    Possible values for status:

    • INITIALIZED

    • TRANSFERRING_FROM_DURACLOUD

    • REPLICATING_TO_STORAGE

    • CLEANING_UP

    • SNAPSHOT_COMPLETE

    • FAILED_TO_TRANSFER_FROM_DURACLOUD

    • ERROR
    • CANCELLED

Snapshot Complete

  • Purpose: Enables storage provider (Chronopolis) to notify bridge app that snapshot content has been successfully transferred to preservation storage and can now be removed from the bridge storage area (and DuraCloud)
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/complete
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {
      "alternateIds": ["alternate-id-1", "alternate-id-2"]
    }
    • A Snapshot can be mapped to zero or more alternate identifiers (e.g. IDs for bags which contain the content in this snapshot).

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "SNAPSHOT_COMPLETE",
      "details" : ""
    }


Snapshot Error

  • Purpose: Enables storage provider (Chronopolis) to notify bridge app that processing of the snapshot has resulted in an error
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/error
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {
      "error": ""
    }
    •  


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "SNAPSHOT_ERROR",
      "details" : ""
    }


Restart Snapshot

  • Purpose: Enables restart of snapshots that failed to transfer successfully from DuraCloud.
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/restart
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {}
     

  • Response Code: 202 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "INITIALIZED",
      "description" : ""
    }


Cancel Snapshot

  • Purpose: Enables cancellation of a snapshot that is underway. Calls to this method will fail if the snapshot is in the CLEANING_UP or COMPLETE states.
  • Request: POST https://host:port/bridge/snapshot/(snapshotId)/cancel
    • snapshotId - Identifier of the snapshot
  • Request Body: JSON:

    Code Block
    {}
     

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "CANCELLED",
      "description" : ""
    }


Snapshot History Update

  • Purpose: Enables storage provider (Chronopolis) to notify bridge app that a snapshot has an "update" to its history. Whether a snapshot was replicated, successfully stored, checksumed, etc... this is the REST call to handle any and all updates to the history of a particular Snapshot.
  • Request: POST https://host:port/bridge/snapshot/(identifier)/history
    • identifier - Either the snapshot ID or an alternate ID (such as a bag ID) which was associated with the snapshot in the Snapshot Complete call
  • Request Body: JSON:

    • Parameters
      • 'history' - single escaped JSON string that can contain a JSON array of objects or strings - the history event we're trying to record
      • 'alternate' - whether the snapshot ID in the URL is the alternate ID or the original snapshot ID.
    • Preferred format (using name/value pairs)

      Code Block
      {"history": "[ {'key1' : 'value1'},{'key2' : 'value2'} ]", "alternate": "false"}


    • Alternative formats (also supported, but UI display may not be ideal)

      Code Block
      {"history": "[ 'value1', 'value2' ]", "alternate": "false"}
      OR 
      {"history": "[ {'key1': 'value1'}, 'value2' ]", "alternate": "false"}
      OR
      {"history": "value1", "alternate": "false"}


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "snapshot" : {SnapshotSummary},
      "history" : "${the history string that was just inserted}"
    }


...

Panel
titleRestore Operations

Request Snapshot Restore

  • Purpose: Enables user to request a restoration of a snapshot
  • Request: PUT https://host:port/bridge/restore/request

    Code Block
    {
      "host" : "",
      "port" : "",
      "storeId" : "",
      "spaceId" : "",
      "snapshotId" : "",
      "userEmail" : ""
    } 

    The email address is the address of the requester. This address will be forwarded along with the details of the restore request to the duracloud admins.

  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "description" : ""
    }


Restore Snapshot

  • Purpose: Enables user to initiate the restoration of a snapshot
  • Request: PUT https://host:port/bridge/restore

    Code Block
    {
      "host" : "",
      "port" : "",
      "storeId" : "",
      "spaceId" : "",
      "snapshotId" : "",
      "userEmail" : ""
    } 


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "restoreId" : ""
      "status" : ""
    }

     Possible value for status (see Get Restore Details)

Restore Complete

  • Purpose: Enables storage provider (Chronopolis) to notify bridge app that a snapshot has been restored to bridge storage.
  • Request: POST https://host:port/bridge/restore/(restoreId)/complete
    • restoreId - Identifier of the restoration
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : ""
      "details" : ""
    }


Get Restore Details

  • Purpose: Provides the status of a restoration action
  • Request: GET https://host:port/bridge/restore/(restoreId)
    • restoreId - Identifier of the restoration
  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "restoreId" : "",
      "snapshotId" : "",
      "status" : "",
      "startDate" : "",
      "endDate" : "",
      "statusText" : "",
      "destinationHost" : "",
      "destinationPort" : "",
      "destinationStoreId" : "",
      "destinationSpaceId" : ""
    }

    Possible values for status:

    • INITIALIZED
    • RETRIEVING_FROM_STORAGE
    • STORAGE_RETRIEVAL_COMPLETE
    • VERIFYING_RETRIEVED_CONTENT
    • VERIFYING_SNAPSHOT_REPO_AGAINST_MANIFEST
    • TRANSFERRING_TO_DURACLOUD
    • TRANSFER_TO_DURACLOUD_COMPLETE
    • VERIFYING_TRANSFERRED_CONTENT
    • CLEANING_UP
    • ERROR
    • RESTORATION_COMPLETE
    • RESTORATION_EXPIRED
    • CANCELLED

Restart Restore

  • Purpose: Enables restart of restores that failed to transfer successfully to DuraCloud.
  • Request: POST https://host:port/bridge/restore/(restoreId)/restart
    • restoreId - Identifier of the restore
  • Request Body: JSON:

    Code Block
    {}
    •  


  • Response Code: 202 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "STORAGE_RETRIEVAL_COMPLETE",
      "description" : ""
    }


Cancel Restore

  • Purpose: Enables cancellation of a restore that is underway. Calls to this method will fail if the restore is in the CLEANING_UP or COMPLETE states.
  • Request: POST https://host:port/bridge/restore/(restoreId)/cancel
    • restoreId - Identifier of the restoreId
  • Request Body: JSON:

    Code Block
    {}
    •  


  • Response Code: 200 (on success)
  • Response Body: JSON:

    Code Block
    {
      "status" : "CANCELLED",
      "description" : ""
    }

...