Old Release

This documentation covers an old version of Fedora. Looking for another version? See all documentation.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

This feature is available in the Fedora 4 Alpha 2 release.

The Fedora4 Backup and Restore capability allows a user, such as the repository manager, make a REST call to have the repository binaries and metadata exported to the local file system. Inversely, the Restore capability to make a REST call to have the repository restored from the contents of a previous Backup.

Further description can be found in ModeShape's documentation.

Usage

Backup

Perform a backup of a running Fedora4 respository

Request

POST /rest/fcr:backup

> optional POST body

Optionally, a POST body containing the full path of a writable directory local to the Fedora4 server may be provided. If no POST body is included, the backup will be written to the system temp directory.

Response

On success

  • HTTP/1.1 200 OK

Response body

  • Absolute path of local backup directory

Restore

Request

POST /rest/fcr:restore

> with POST body

A POST body containing the full path to a previous backup.

Response

On success

  • HTTP/1.1 204 No Content

Configurations

The following configurations have been successfully tested with the Backup and Restore functionality

  • Non-clustered Fedora, using Infinispan cache backed by the file system (config)
  • Non-clustered Fedora, using Infinispan cache backed by LevelDB (config)
  • Non-clustered Fedora, using ModeShape file system store (config)

Backup Format

Regardless of the repository configuration, the output of the backup process creates resources of the same format.
The backup directory will contain

  • 'binaries' directory that contains the repository "content" binaries stored in a pair-tree like structure. The filename of the binary is the SHA-1 of the content with the extension '.bin'. The directory structure in which each binary is found is three levels deep based on the SHA-1.
    • For example, binary content in the repository with a SHA-1 of "5613537644c4d081c1dc3530fdb1a2fe843e570170d3d054", would look like 

      ├── binaries
          └── 44
              └── c4
                  └── d0
                      └── 44c4d081c1dc3530fdb1a2fe843e570170d3d054.bin
  • One or more "documents_00000n.bin.gz" files which contains a concatenated listing of the metadata for each of the repository objects in JSON format
    • For example 

      { "metadata" : 
        { "id" : "87a0a8c317f1e7/jcr:system/jcr:nodeTypes/nt:unstructured//undefined/1" , 
          "contentType" : "application/json" } ,
        "content" : 
        { "key" : "87a0a8c317f1e7/jcr:system/jcr:nodeTypes/nt:unstructured//undefined/1" ,
          "parent" : "87a0a8c317f1e7/jcr:system/jcr:nodeTypes/nt:unstructured" , 
          "properties" : 
          { "http://www.jcp.org/jcr/1.0" : 
            { "primaryType" : 
              { "$name" : "nt:propertyDefinition" } , 
              "onParentVersion" : "COPY" , 
              "multiple" : false , 
              "protected" : false , 
              "availableQueryOperators" : 
                [ "jcr.operator.equal.to" , 
                  "jcr.operator.greater.than" , 
                  "jcr.operator.greater.than.or.equal.to" , 
                  "jcr.operator.less.than" , 
                  "jcr.operator.less.than.or.equal.to" , 
                  "jcr.operator.like" , 
                  "jcr.operator.not.equal.to" ] , 
              "requiredType" : "UNDEFINED" , 
              "mandatory" : false , 
              "autoCreated" : false } 
          } 
        } 
      }

 

  • No labels