Replication Packages
This section details replication package and source commands.
Table 105 Replication Package Commands
|
|
|
GET
|
/replication/packages
|
List all replication packages
|
GET
|
/replication/packages/<package>
|
Get the specified replication package
|
PUT
|
/replication/packages/<package>
|
Modify the specified replication package
|
DELETE
|
/replication/packages/<package>
|
Destroy the specified replication package
|
PUT
|
/replication/packages/<package>
/cancelupdate
|
Run cancelupdate on the specified package
|
PUT
|
/replication/packages/<package>/sever
|
Run sever on the specified package
|
PUT
|
/replication/packages/<package>/reverse
|
Run reverse on the specified package
|
PUT
|
/replication/packages/<package>/clone
|
Clone the specified package
|
GET
|
/replication/packages/<package>/clone
/conflicts
|
List share property conflicts
|
GET
|
/replication/packages/<package>/projects
|
List package projects
|
GET
|
/replication/packages/<package>/projects
/<project>
|
Get package project
|
PUT
|
/replication/packages/<package>/projects
/<project>
|
Modify package project
|
GET
|
/replication/packages/<package>/projects
/<project>/usage/groups
|
Get package project group usage
|
GET
|
/replication/packages/<package>/projects
/<project>/usage/users
|
Get package project users usage
|
POST
|
/replication/packages/<package>/projects
/<project>/snapshots
|
Create a new snapshot
|
GET
|
/replication/packages/<package>/projects
/<project>/snapshots/<snapshot>
|
Get the specified snapshot properties
|
GET
|
/replication/packages/<package>/projects
/<project>/snapshots
|
List all snapshot objects
|
DELETE
|
/replication/packages/<package>/projects
/<project>/snapshots/<snapshot>
|
Destroy the specified snapshot object
|
PUT
|
/replication/packages/<package>/projects
/<project>/snapshots/<snapshot>
|
Rename the package project snapshot
|
GET
|
/replication/packages/<package>/projects
/<project>/automatic
|
List all package project automatic snapshot objects
|
GET
|
/replication/packages/<package>/projects
/<project>/automatic
/<automatic>
|
Get the specified package project automatic snapshot
properties
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
|
List package filesystems
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>
|
Get package filesystem
|
PUT
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>
|
Modify package filesystem
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/usage/groups
|
Get package filesystem group usage
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/usage/users
|
Get package filesystem users usage
|
POST
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
|
Create a new snapshot
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
/<snapshot>
|
Get the specified snapshot properties
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
|
List all snapshot objects
|
DELETE
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
/<snapshot>
|
Destroy the specified snapshot object
|
PUT
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
/<snapshot>
|
Rename the package filesystem snapshot
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/automatic
/<automatic>
|
Get the specified package filesystem automatic snapshot
properties
|
GET
|
/replication/packages/<package>/projects
/<project>/filesystems
/<filesystem>/automatic
|
List all package filesystem automatic snapshot objects
|
GET
|
/replication/packages/<package>/projects
/<project>/luns
|
List package LUNs
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>
|
Get package LUN
|
PUT
|
/replication/packages/<package>/projects
/<project>/luns/<lun>
|
Modify package LUN
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/usage
/groups
|
Get package LUN group usage
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/usage
/users
|
Get package LUN users usage
|
POST
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/snapshots
|
Create a new snapshot
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/snapshots
/<snapshot>
|
Get the specified snapshot properties
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/snapshots
|
List all snapshot objects
|
DELETE
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/snapshots
/<snapshot>
|
Destroy the specified snapshot object
|
PUT
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/snapshots
/<snapshot>
|
Rename the package LUN snapshot
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/automatic
/<automatic>
|
Get the specified package LUN automatic snapshot
properties
|
GET
|
/replication/packages/<package>/projects
/<project>/luns/<lun>/automatic
|
List all package LUN automatic snapshot objects
|
|
Replication sources and their corresponding packages can also be accessed using
the following commands.
Table 106 Replication Source Commands
|
|
|
GET
|
/replication/sources
|
List replication sources
|
GET
|
/replication/sources/<source>
|
List replication source details
|
GET
|
/replication/sources/<source>
/packages/<package>
|
Get the specified replication package
|
PUT
|
/replication/sources/<source>
/packages/<package>
|
Modify the specified replication package
|
DELETE
|
/replication/sources/<source>
/packages/<package>
|
Destroy the specified replication package
|
PUT
|
/replication/sources/<source>
/packages/<package>
/cancelupdate
|
Run cancelupdate on the specified package
|
PUT
|
/replication/sources/<source>
/packages/<package>/sever
|
Run sever on the specified package
|
PUT
|
/replication/sources/<source>
/packages/<package>/reverse
|
Run reverse on the specified package
|
PUT
|
/replication/sources/<source>
/packages/<package>/clone
|
Clone the specified package
|
GET
|
/replication/sources/<source>
/packages/<package>/clone
/conflicts
|
List share property conflicts
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
|
List package projects
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>
|
Get package project
|
PUT
|
/replication/sources/<source>
/packages/<package>/projects
/<project>
|
Modify package project
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/usage/groups
|
Get package project group usage
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/usage/users
|
Get package project users usage
|
POST
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/snapshots
|
Create a new snapshot
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/snapshots/<snapshot>
|
Get the specified snapshot properties
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/snapshots
|
List all snapshot objects
|
DELETE
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/snapshots/<snapshot>
|
Destroy the specified snapshot object
|
PUT
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/snapshots/<snapshot>
|
Rename the package project snapshot
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/automatic
/<automatic>
|
Get the specified package project automatic snapshot
properties
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/automatic
|
List all package project automatic snapshot objects
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
|
List package filesystems
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>
|
Get package filesystem
|
PUT
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>
|
Modify package filesystem
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/usage/groups
|
Get package filesystem group usage
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/usage/users
|
Get package filesystem users usage
|
POST
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
|
Create a new snapshot
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
/<snapshot>
|
Get the specified snapshot properties
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
|
List all snapshot objects
|
DELETE
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
/<snapshot>
|
Destroy the specified snapshot object
|
PUT
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/snapshots
/<snapshot>
|
Rename the package filesystem snapshot
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/automatic
/<automatic>
|
Get the specified package filesystem automatic snapshot
properties
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/filesystems
/<filesystem>/automatic
|
List all package filesystem automatic snapshot objects
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns
|
List package LUNs
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>
|
Get package LUN
|
PUT
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>
|
Modify package LUN
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/usage
/groups
|
Get package LUN group usage
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/usage
/users
|
Get package LUN users usage
|
POST
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/snapshots
|
Create a new snapshot
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/snapshots
/<snapshot>
|
Get the specified snapshot properties
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/snapshots
|
List all snapshot objects
|
DELETE
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/snapshots
/<snapshot>
|
Destroy the specified snapshot object
|
PUT
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/snapshots
/<snapshot>
|
Rename the package LUN snapshot
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/automatic
/<automatic>
|
Get the specified package LUN automatic snapshot
properties
|
GET
|
/replication/sources/<source>
/packages/<package>/projects
/<project>/luns/<lun>/automatic
|
List all package LUN automatic snapshot objects
|
|
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/zfssa-repl-host",
"ip_address": "10.80.231.58:216",
"name": "zfssa-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": "10.133.64.241:216",
"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.
Table 107 Modify Package Properties
|
|
|
boolean
|
enabled
|
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 if 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