Go to main content

Oracle® ZFS Storage Appliance RESTful API Guide, Release OS8.8.0

Exit Print View

Updated: November 2018
 
 

Replication Packages

This section details replication package and source commands.

Table 80  Replication Package Commands
Request
Append to Path /api/storage/v1/replication
Description
GET
/packages
List all replication packages
GET
/packages/package
Get the specified replication package
PUT
/packages/package
Modify the specified replication package
DELETE
/packages/package
Destroy the specified replication package
PUT
/packages/package/cancelupdate
Run cancelupdate on the specified package
PUT
/packages/package/sever
Run sever on the specified package
PUT
/packages/package/pkgreverse
Run reverse on the specified package
PUT
/packages/package/clone
Clone the specified package
GET
/packages/package/clone/conflicts
List share property conflicts
GET
/packages/package/projects
List package projects
GET
/packages/package/projects/project
Get package project
PUT
/packages/package/projects/project
Modify package project
GET
/packages/package/projects/project/usage/groups
Get package project group usage
GET
/packages/package/projects/project/usage/users
Get package project users usage
GET
/packages/package/projects/project/snapshots
List all snapshot objects
GET
/packages/package/projects/project/snapshots/snapshot
Get the specified snapshot properties
DELETE
/packages/package/projects/project/snapshots/snapshot
Destroy the specified snapshot object
PUT
/packages/package/projects/project/snapshots/snapshot
Rename the package project snapshot
GET
/packages/package/projects/project/automatic
List all package project automatic snapshot objects
GET
/packages/package/projects/project/automatic/automatic
Get the specified package project automatic snapshot properties
GET
/packages/package/projects/project/filesystems
List package filesystems
GET
/packages/package/projects/project/filesystems/filesystem
Get package filesystem
PUT
/packages/package/projects/project/filesystems/filesystem
Modify package filesystem
GET
/packages/package/projects/project/filesystems/filesystem/usage/groups
Get package filesystem group usage
GET
/packages/package/projects/project/filesystems/filesystem/usage/users
Get package filesystem users usage
GET
/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
Get the specified snapshot properties
GET
/packages/package/projects/project/filesystems/filesystem/snapshots
List all snapshot objects
DELETE
/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
Destroy the specified snapshot object
PUT
/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
Rename the package filesystem snapshot
GET
/packages/package/projects/project/filesystems/filesystem/automatic
List all package filesystem automatic snapshot objects
GET
/packages/package/projects/project/filesystems/filesystem/automatic/automatic
Get the specified package filesystem automatic snapshot properties
GET
/packages/package/projects/project/luns
List package LUNs
GET
/packages/package/projects/project/luns/lun
Get package LUN
PUT
/packages/package/projects/project/luns/lun
Modify package LUN
GET
/packages/package/projects/project/luns/lun/usage/groups
Get package LUN group usage
GET
/packages/package/projects/project/luns/lun/usage/users
Get package LUN users usage
GET
/packages/package/projects/project/luns/lun/snapshots/snapshot
Get the specified snapshot properties
GET
/packages/package/projects/project/luns/lun/snapshots
List all snapshot objects
DELETE
/packages/package/projects/project/luns/lun/snapshots/snapshot
Destroy the specified snapshot object
PUT
/packages/package/projects/project/luns/lun/snapshots/snapshot
Rename the package LUN snapshot
GET
/packages/package/projects/project/luns/lun/automatic
List all package LUN automatic snapshot objects
GET
/packages/package/projects/project/luns/lun/automatic/automatic
Get the specified package LUN automatic snapshot properties

Replication sources and their corresponding packages can also be accessed using the following commands.

Table 81  Replication Source Commands
Request
Append to Path /api/storage/v1/replication/sources
Description
GET
Use only /api/storage/v1/replication/sources
List replication sources
GET
/source
List replication source details
GET
/source/packages/package
Get the specified replication package
PUT
/source/packages/package
Modify the specified replication package
DELETE
/source/packages/package
Destroy the specified replication package
PUT
/source/packages/package/cancelupdate
Run cancelupdate on the specified package
PUT
/source/packages/package/sever
Run sever on the specified package
PUT
/source/packages/package/pkgreverse
Run reverse on the specified package
PUT
/source/packages/package/clone
Clone the specified package
GET
/source/packages/package/clone/conflicts
List share property conflicts
GET
/source/packages/package/projects
List package projects
GET
/source/packages/package/projects/project
Get package project
PUT
/source/packages/package/projects/project
Modify package project
GET
/source/packages/package/projects/project/usage/groups
Get package project group usage
GET
/source/packages/package/projects/project/usage/users
Get package project users usage
GET
/source/packages/package/projects/project/snapshots/snapshot
Get the specified snapshot properties
GET
/source/packages/package/projects/project/snapshots
List all snapshot objects
DELETE
/source/packages/package/projects/project/snapshots/snapshot
Destroy the specified snapshot object
PUT
/source/packages/package/projects/project/snapshots/snapshot
Rename the package project snapshot
GET
/source/packages/package/projects/project/automatic
List all package project automatic snapshot objects
GET
/source/packages/package/projects/project/automatic/automatic
Get the specified package project automatic snapshot properties
GET
/source/packages/package/projects/project/filesystems
List package filesystems
GET
/source/packages/package/projects/project/filesystems/filesystem
Get package filesystem
PUT
/source/packages/package/projects/project/filesystems/filesystem
Modify package filesystem
GET
/source/packages/package/projects/project/filesystems/filesystem/usage/groups
Get package filesystem group usage
GET
/source/packages/package/projects/project/filesystems/filesystem/usage/users
Get package filesystem users usage
GET
/source/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
Get the specified snapshot properties
GET
/source/packages/package/projects/project/filesystems/filesystem/snapshots
List all snapshot objects
DELETE
/source/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
Destroy the specified snapshot object
PUT
/source/packages/package/projects/project/filesystems/filesystem/snapshots/snapshot
Rename the package filesystem snapshot
GET
/source/packages/package/projects/project/filesystems/filesystem/automatic
List all package filesystem automatic snapshot objects
GET
/source/packages/package/projects/project/filesystems/filesystem/automatic/automatic
Get the specified package filesystem automatic snapshot properties
GET
/source/packages/package/projects/project/luns
List package LUNs
GET
/source/packages/package/projects/project/luns/lun
Get package LUN
PUT
/source/packages/package/projects/project/luns/lun
Modify package LUN
GET
/source/packages/package/projects/project/luns/lun/usage/groups
Get package LUN group usage
GET
/source/packages/package/projects/project/luns/lun/usage/users
Get package LUN users usage
GET
/source/packages/package/projects/project/luns/lun/snapshots/snapshot
Get the specified snapshot properties
GET
/source/packages/package/projects/project/luns/lun/snapshots
List all snapshot objects
DELETE
/source/packages/package/projects/project/luns/lun/snapshots/snapshot
Destroy the specified snapshot object
PUT
/source/packages/package/projects/project/luns/lun/snapshots/snapshot
Rename the package LUN snapshot
GET
/source/packages/package/projects/project/luns/lun/automatic
List all package LUN automatic snapshot objects
GET
/source/packages/package/projects/project/luns/lun/automatic/automatic
Get the specified package LUN automatic snapshot properties

List Replication Sources

Lists all available replication sources.

Example Request:

GET /api/storage/v1/replication/sources HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

Example Output:

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
    "sources": [{
        "asn": "314d252e-c42b-e844-dab1-a3bca680b563",
        "href": "/api/storage/v1/replication/sources/zfs-repl-host",
        "ip_address": "ipaddr-1",
        "name": "zfs-repl-host",
        "source": "source-000"
    }]
}

List Replication Packages

Lists all of the replication packages.

Example Request:

GET /api/storage/v1/replication/packages HTTP/1.1
Host: zfs-storage.example.com
Accept: application/json

Example Result:

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 529

{
  "packages": [
    {
      "href": "/api/storage/v1/replication/packages/0efaab49-7b22-4d4a-def8-813c27780894",
      "id": "0efaab49-7b22-4d4a-def8-813c27780894",
      "source_name": "sourceA",
      "source_asn": "8a22f6e0-4ee4-4b85-f141-e152f5fac961",
      "source_ip": "ipaddr-1",
      "source_pool": "poolA",
      "target_pool": "poolA",
      "replica_of": "projTest",
      "enabled": true,
      "state": "idle",
      "state_description": "Idle (no update in progress)",
      "offline": false,
      "import_path": "",
      "data_timestamp": "2017-03-09T22:36:12Z",
      "last_sync": "2017-03-09T22:36:22Z",
      "last_try": "2017-03-09T22:36:22Z",
      "last_result": "success"
    }
  ]
}

Modify Package

Modifies the package properties.

Property
Type
Description
enabled
boolean
Current state of replication updates

Example Request:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=
Content-Type: application/json

{"enabled": false}

Example Result:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Example Request:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/pkgreverse HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=
Content-Type: application/json

{"new_project_name":"restrev", "enable_action_upon_reversal":"true"}

Example Result:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Delete Package

Destroys a replication package.

Example Request:

DELETE /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

Successful delete returns HTTP status 204 (No Content).

Example Response:

HTTP/1.1 204 No-Content
X-Zfssa-Replication-Api: 1.0

Cancel Update

Cancels an ongoing update for this package.

Example Request:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/cancelupdate HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

If no update is in progress, HTTP status 409 (Conflict) is returned.

Example Response:

HTTP/1.1 409 Conflict
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 137

{
    "cancelupdate": {
        "AKSH_ERROR": "EAK_NAS_REPL_BADSTATE",
        "message": "operation illegal for state"
    }
}

Example Response:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Clone Package

Clones the package project.

Example Request:

PUT /api/v1/storage/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/clone HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

Example Response:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Successful clone returns HTTP status 202 (Accepted). A helper command can be used to determine whether there are conflicts with the clone operation.

Example Clone Conflicts Request:

GET /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/clone/conflicts HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

Clone/conflicts Returns Conflicts:

HTTP/1.1 200 OK
X-Zfssa-Replication-Api: 1.0
Content-Type: application/json
Content-Length: 58

{
    "conflicts": "There are no conflicts."
}

Properties:

Default settings:
            target_project = (unset)
       original_mountpoint = /export
       override_mountpoint = false
                mountpoint =

Sever Package

Severs a replication connection and moves the package contents into new project. This action permanently severs this package and its replicated shares from the source system, making them local projects on this system. Subsequent replication updates in either direction requires defining new actions and sending a full update.

Example Request:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/sever HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

{"projname":"restsev"}

Success Response:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0

Reverse Package

Reverses the direction of replication. This action disables replication for this package and moves the contents of this package into a new local project configured to replicate back to the source. Any metadata or data changes made on the source since the last successful update are lost when the new project is first replicated back to the source.

Example Request:

PUT /api/storage/v1/replication/packages/8373d331-de60-e590-90e8-9ad69fcb4aec/reverse HTTP/1.1
Host: zfs-storage.example.com
Authorization: Basic ab6rt4psMWE=

{"projname":"restrev"}

Success Response:

HTTP/1.1 202 Accepted
X-Zfssa-Replication-Api: 1.0