Volume migration resources
Attaching volumes to storage
You can set up connections between volumes on the source storage system and the target storage system according to FC or iSCSI protocols in Storage Advisor during Volume Migration.
POST https://ipAddress/v1/volume-manager/attach-to-storage
{ "sourceStorageSystemId": "", "targetStorageSystemId" : "", "chapUser": { "userName" : "", "secret" : "" } "mutualUser" : { "userName" : "", "secret" : "" } "portsInfo" : [ { "srcPort" : "", "targetPort": "" }, { "srcPort" : "", "targetWwn" : "", "targetPort": null } ], "volumes" : [ { "lun" : , (optional) "volumeId" : 62 } ] }
Parameter | Required | Type | Description |
sourceStorageSystemId | String | ID of the source storage system. | |
targetStorageSystemId | String | ID of the target storage system. | |
chapUser | Object | Information about the CHAP user. | |
userName | String | User name. | |
secret | String | Secret of the user. | |
mutualUser | Object | Information about the mutual user. | |
portsInfo | List | Information about the ports. | |
srcPort | String | Source port. | |
targetPort | String | Target port. | |
volumes | List | List of logical units. | |
lun | Integer | Logical unit. | |
volumeId | Integer | Volume ID. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status Code | HTTP Name | Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified URI is not valid or the resource does not exist. |
{ "sourceStorageSystemId": "420209", "targetStorageSystemId": "430209", "portsInfo": [ { "srcPort": "CL1-A", "targetPort": "CL1-A" }, { "srcPort": "CL1-D", "targetPort": "CL1-C" } ], "volumes": [ { "volumeId": 138 } ] }
{ "jobId": "660f1c51-2e0b-4fef-8b25-e68486ce419f", "title": { "text": "Attach volumes to servers.", "messageCode": "AttachVolumesToServersJobTitleMessage", "parameters": {} }, "user": "sysadmin", "status": "SUCCESS", "startDate": 1527037563303, "endDate": 1527037838400, "parentJobId": null, "reports": [ { "reportMessage": { "text": "Storage System 410209. Attaching volumes with IDs: [113] to servers with IDs: [13].", "messageCode": "AttachVolumesToServersPreStepMessage", "parameters": { "servers": [ 13 ], "storageSystemId": "410209", "volumes": [ 113 ] } }, "severity": "INFORMATION", "creationDate": 1527037563355 }, { "reportMessage": { "text": "Storage System 410209. Completed attaching volumes with IDs: [113] to servers with IDs: [13].", "messageCode": "AttachVolumesToServersPostStepMessage", "parameters": { "servers": [ 13 ], "storageSystemId": "410209", "volumes": [ 113 ] } }, "severity": "INFORMATION", "creationDate": 1527037838345 } ], "links": [ { "rel": "_self", "href": "/v1/jobs/660f1c51-2e0b-4fef-8b25-e68486ce419f" } ], "tags": [ { "tag": "rainier" } ], "isSystem": false }
Virtualizing volumes
You can create a single path for all given LUNs, create external parity groups per LUN, add LDEVs to each external parity group, and attach the server to the given LUNs in Storage Advisor for the virtualization phase of volume migration.
POST https://ipAddress/v1/volume-manager/virtualize
{ "targetPortInfo" : [ { "portId": "", "external_wwn": "", "external_iscsiName": "", "protocol":"" } ] "serverInfos": [ { "targetPortForHost" : "", "serverWwn": "", "iscsiInitiatorNames" : ["",""], }, ... ], "luns":[ , ] "storageSystemId": "", "hostMode" : "", "hostModeOptions": ["", ""], "enableZoning": , "forceOverwriteChapSecret": }
Parameter | Required | Type | Description |
targetPortInfo | List | Information about the target port. | |
portId | String | Port ID. | |
external_wwn | String | External World Wide Name. | |
external_iscsiName | String | Name of the iSCSI external port. | |
protocol | String | Type of protocol. Can be FIBRE or ISCSI. | |
serverInfos | List | Information about the server such as the target port for the host and a list of iSCSI initiator names. | |
targetPortForHost | String | Target port for the host. | |
serverWwn | String | World Wide Name of the server. | |
iscsInitiatorNames | List | List of iSCSI initiator names. | |
luns | List | Information about the logical units (LUNs). | |
StorageSystemId | String | ID of the storage system. | |
hostMode | String | Host mode set for the volume. | |
hostModeOptions | List | Host mode options for the volume. | |
enableZoning | Whether to enable zoning. | ||
forceOverwriteChapSecret | Whether to force overwriting the CHAP secret. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status Code | HTTP Name | Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified URI is not valid or the resource does not exist. |
{ "targetPorts": [ "CL6-B" ], "serverInfos": [ { "targetPortForHost": "CL3-A", "serverId": 7, "serverWwns": [ "5000087000536422" ] } ], "externalLuns": [ { "portId": "CL6-B", "wwn": "50060e8012272f21", "lunId": 0 }, { "portId": "CL6-B", "wwn": "50060e8012272f21", "lunId": 5 } ], "storageSystemId": "50101", "enableZoning": true, "hostMode": "VMWARE_EX", "hostModeOptions": [ 54, 63 ] }
{ "jobId": "d704f1a6-8116-47fc-8dc3-ba1c20c72e25", "title": { "text": "Create external Volume on Storage System 50101", "messageCode": "CreateExternalVolumeJobTitleMessage", "parameters": { "storageSystemId": "50101" } }, "user": "sysadmin", "status": "IN_PROGRESS", "startDate": 1527805000127, "endDate": null, "parentJobId": null, "reports": [], "links": [ { "rel": "_self", "href": "/v1/jobs/d704f1a6-8116-47fc-8dc3-ba1c20c72e25" } ], "tags": [ { "tag": "rainier" } ], "isSystem": false }
Creating external volumes
You can create external volumes in Storage Advisor.
POST https://ipAddress/v1/external-volume-manager/create
The request body structure is shown below:
{ "storageSystemId": "", "externalDevices": [ { "externalDeviceId": "" "externalPaths": [ { "portId": "", "externalWwn": "", "externalIscsiInformation": [ { "iscsiName": "", "ipAddress": "" } ], "externalLun": "" } ] } ], "attachExternalVolumeToServer": { "intendedImageType": "", "hostModeOptions": [], "enableZoning": , "enableLunUnification": , "forceOverwriteChapSecret": , "shareHgByAllServers": , "ports":[ { "serverId": , "serverWwns": [""], "iscsiInitiatorNames": [""], "portIds": [""] }] } }
Parameter |
Type |
Required |
Description |
externalDeviceId | String | Yes | ID of the external device. |
externalPaths | Object | No | List of the available external paths. If you do not specify a path, the method automatically selects an available path. |
PortId | String | Yes | ID of the storage port of the internal storage system. |
externalWwn | String | Yes | WWN of the storage port of the external storage system. |
externalIscsiInformation | Object | Yes | iSCSI information of the storage port of the external storage system. |
iscsiName | String | Yes | iSCSI target name of the storage port of the external storage system. |
ipAddress | String | Yes | IP address of the storage port of the external storage system. |
externalLun | Integer | Yes | ID of the LUN. |
attachExternalVolumeToServer | Object | Yes | Information about the external volumes attached to the server. |
intendedImageType | No | String | Host mode set for the volume. |
hostModeOptions | No | List | Host mode options set for the volume. Default values are automatically set in case the server OS is either VMWARE_EX or WIN_EX. The valid value is a host mode options number without any prefix, or null for auto select. |
enableZoning | No | Boolean | Whether or not zones are created on the SAN fabric. If enableZoning is set to false, then zoning is disabled.
The default value is false. This is valid only for FC servers and must be NULL for iSCSI servers. |
enableLunUnification | No | Boolean | Whether or not Lun (logical unit number) assignments for volumes that span multiple servers are consistent. |
forceOverwriteChapSecret | No | Boolean | Whether or not Hitachi Storage Advisor overwrites the CHAP user secret when there is any port that exists with the same CHAP user name. The default value is FALSE. |
shareHgByAllServers | No | Boolean | Whether to share host groups among servers. The default setting is False, which does not allow sharing. Specify True to share host groups among servers. |
serverId | Yes | Integer | ID of the server. |
serverWwns | No | List | The WWNs for a server. If a WWN is not specified, then all WWNs associated with the server are used.
You must specify either serverWwns or iscsiInitiatorNames. |
iscsiInitiatorNames | No | List | The iSCSI names of the server to attach.
If iscsiInitiatorNames is not specified, then all iSCSI names of the server are used to attach. You must specify either serverWwns or iscsiInitiatorNames but not both. |
portIds | No | List | Port IDs. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status code |
HTTP name |
Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request contains invalid request payload or required HTTP header was not specified. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
{ "storageSystemId": "410209", "externalDevices": [ { "externalDeviceId": " XYZ 50405F7702BC", "externalPaths": [ { "portId": "CL1-E", "externalWwn": "50060E80125F7700", "externalIscsiInformation": null, "externalLun": 12 }, { "portId": "CL1-E", "externalWwn": "50060E80125F7710", "externalIscsiInformation": null, "externalLun": 12 } ] } ], "attachExternalVolumeToServer": { "intendedImageType": "LINUX", "hostModeOptions": [ ], "enableZoning": false, "enableLunUnification": false, "forceOverwriteChapSecret": null, "shareHgByAllServers": true, "ports" :[ { "serverId": 1, "serverWwns": ["50:00:00:11:22:33:44:55"], "iscsiInitiatorNames": null, "portIds": ["CL3-E"] }] } }
External paths auto select
{ "storageSystemId": "410209", "externalDevices": [ { "externalDeviceId": "ExampleCompany 50405F7701DC", "externalPaths": [] } ], "attachExternalVolumeToServer": { "intendedImageType": "LINUX", "hostModeOptions": [ ], "enableZoning": false, "enableLunUnification": false, "forceOverwriteChapSecret": null, "ports" :[ { "serverId": 1, "serverWwns": ["50:00:00:11:22:33:44:55"], "iscsiInitiatorNames": null, "portIds": ["CL3-E"] }] } }
Unvirtualizing volumes
You can delete external paths and logical devices that are created during the virtualization phase of volume migration in Storage Advisor.
POST https://ipAddress/v1/volume-manager/unvirtualize
{ "storageSystemId": "", "volumeIds": [], "cleanupZones": }
Parameter | Required | Type | Description |
storageSystemId | Yes | String | ID of the storage system. |
volumeIds | Yes | List | List of volume IDs. Volume ID type is long. |
cleanupZones | No | Boolean | Remove zone for the Fibre Channel, if applicable. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status Code | HTTP Name | Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified URI is not valid or the resource does not exist. |
{ "storageSystemId": "", "volumeIds": [], "cleanupZones": }
{ "jobId": "e15119d7-2ea0-4ffe-9c28-18f905df5c687", "title": { "text": "Deleting Volume", "messageCode": "DeletingExternalVolumeJobTitleMessage", "parameters": {} }, "user": "sysadmin", "status": "IN_PROGRESS", "startDate": 1510816371239, "endDate": null, "parentJobId": null, "reports": [], "links": [ { "rel": "_self", "href": "/v1/jobs/e15119d7-2ea0-4ffe-9c28-18f905df5c687" } ], "tags": [ { "tag": "rainier" } ], "isSystem": false }
Deleting external volumes
You can delete external volumes in Storage Advisor.
POST https://ipAddress/v1/external-volume-manager/delete
{ "storageSystemId": "", "volumeIds": [], "cleanupZones": }
Parameter | Required | Type | Description |
storageSystemId | Yes | String | ID of the storage system. |
volumeIds | Yes | List | List of volume IDs. Volume ID type is long. |
cleanupZones | No | Boolean | Remove zone for the Fibre Channel, if applicable. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status Code | HTTP Name | Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified URI is not valid or the resource does not exist. |
{ "jobId": "e15119d7-2ea0-4ffe-9c28-18f905df5c687", "title": { "text": "Deleting Volume", "messageCode": "DeletingExternalVolumeJobTitleMessage", "parameters": {} }, "user": "sysadmin", "status": "IN_PROGRESS", "startDate": 1510816371239, "endDate": null, "parentJobId": null, "reports": [], "links": [ { "rel": "_self", "href": "/v1/jobs/e15119d7-2ea0-4ffe-9c28-18f905df5c687" } ], "tags": [ { "tag": "rainier" } ], "isSystem": false }
Discovering external LUNs on target port
You can query all external volumes on a target storage system for volume migration in Storage Advisor. This should be called after attaching volumes to storage in order to choose LUNs and then proceed with volume virtualization.
POST https://ipAddress/v1/storage-systems/storageSystemId/storage-ports/storagePortId/discover-groups
{ "wwn": null, "iscsiInfo": null }
To show all external LUNs on one specific source port. Port protocol is FC:
{ "wwn": "ff00000000000000", "iscsiInfo": null }
To show all external LUNs on one specific source port. Port protocol is iSCSI:
{ "wwn": null, "iscsiInfo": { "ip" : 172.17.91.xx, "iscsiName" : "iqn.1994-04.com.example:rsd.h8h.t.10011.1d097" } }
Parameter | Required | Type | Description |
wwn | String | World wide name. | |
iscsiInfo | Object | iSCSI information. | |
ip | String | IP address. | |
iscsiName | String | iSCSI name. |
[ { "portId": "", "wwn": "", "lunId": , "capacity": , "productId": "", "eVolIdC": "" "externalIscsiInformation": { "ipAddress" : "", "iscsiName" : "", "amd" : "CHAP", "direction" : "MUTUAL", "chapUser" : { "userName": "-", "secret": "-" } "iscsiVirtualPortId" : "-" }, "isDDM": false ]
Parameter | Type | Description |
portId | String | ID of the port. |
wwn | String | World Wide Name. |
lunId | Integer | ID of the logical unit. |
capacity | Integer | Capacity of the volume. |
productId | String | ID of the product. |
eVolIdC | String | |
externalIscsiInformation | Object | Information about the external iSCSI port. |
ipAddress | String | IP address of the port. |
iscsiName | String | Name of the iSCSI port. |
amd | String | |
direction | String | |
chapUser | Object | Information about the CHAP user. |
userName | String | Name of the user. |
secret | String | Secret of the user. |
iscsiVirtualPortId | String | iSCSI virtual port ID. |
isDDM | Boolean | Whether there is Direct Data Mapping. |
Status Code | HTTP Name | Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified URI is not valid or the resource does not exist. |
[ { "portId": "CL6-B", "wwn": "50060e8012284012", "lunId": 0, "capacity": 2593929560064, "serialNumber": "410304", "productId": "VSP Gx00", "vendorId": "XYZ", "eVolIdC": "XYZ 50402840000C", "externalIscsiInformation": null, "isDDM": false }, { "portId": "CL6-B", "wwn": "50060e8012284012", "lunId": 1, "capacity": 2593929560064, "serialNumber": "410304", "productId": "VSP Gx00", "vendorId": "ExampleCompany", "eVolIdC": "ExampleCompany 50402840000B", "externalIscsiInformation": null, "isDDM": false } ]
Discovering external devices
You can update the external device cache of the specified port in Storage Advisor. If you are updating a different port between the last time and this time, the external device cache of the previous port is not changed.
POST https://ipAddress/v1/storage-systems/storageSystemId/external-devices/discover
The request body structure is shown below:
{ "storagePortIds": [ "" ] }
Parameter |
Type |
Required |
Description |
storagePortIds | List | Yes | The IDs of the storage port. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "", "href": "" } ], "tags": [ ], "isSystem": }
Parameter |
Type |
Description |
jobId | String | The ID of the job that is created to carry out the request. |
title | Object | The title of the job in progress. |
text | String | Text of the message. |
messageCode | String | ID of the message. This maps to the message description. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | Name of the user who started the job. |
status | String |
Job status. Valid values: • In Progress • Failed • Success • Success With Errors |
startDate | Integer | The date and time this job started. Format is the Unix epoch. |
endDate | Integer | Date and time when this job ended. If the job is still in progress, this parameter does not return a value. Format is the Unix epoch. |
parentJobId | Integer | The ID of the job that spawned this job. If not applicable, the value null is returned. |
reports | List | Messages associated with this job. |
links | List | Displays related resources. |
self | String | URI that includes the resource ID. |
tags | List | List of user-defined identifiers. Each identifier (tag) must be a minimum of three characters in length. |
isSystem | Boolean | Whether a job was created by a system or a user. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets to false. |
Status code |
HTTP name |
Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request contains invalid request payload or required HTTP header was not specified. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
Listing external devices
You can retrieve external devices in Storage Advisor.
GET https://ipAddress/v1/storage_systems/storageSystemId/external-devices
The request body structure is shown below:
{ "resources":[{ { "storageSystemId": "", "externalDeviceId": "", "size": , "productId": , "externalStorageSystemInformation": { "serialNumber": "", "vendorId": "", "productId": "" }, "externalPaths": [{ "portId": "", "externalWwn": "", "externalIscsiInformation" { "iscsiName": "", "ipAddress": "" }, "externalLun": }], "mapped": "" } }] "total": , "nextToken": }
Parameter |
Type |
Description |
storageSystemId | String | ID of the storage system. |
externalDeviceId | String | ID of the external device. |
size | Long | Size of the volume, in bytes. |
productId | String | Product name of the external device. |
externalStorageSystemInformation | Object | External storage system of the external device. |
serialNumber | String | ID of the external storage system. |
vendorId | String | Vendor name of the external storage system. |
productId | String | Product name of the external storage system. |
externalPaths | Object | List of the available external paths. |
portId | String | ID of the storage port of the internal storage system. |
externalWwn | String | WWN of the storage port of the external storage system. |
externalIscsiInformation | Object | iSCSI information of the storage port of the external storage system. |
iscsiName | String | iSCSI name of the storage port of the external storage system. |
ipAddress | String | IP address of the storage port of the external storage system. |
externalLun | String | ID of the LUN of the storage port of the external storage system. |
mapped | Boolean | Whether the external device has already been mapped to an external parity group. |
{ "resources": [ { "storageSystemId": "410209", "externalDeviceId": "XYZ 50405F7702BC", "size": 1073741824, "productId": "OPEN-V", "externalStorageSystemInformation": { "serialNumber": "424439", "vendorId": "XYZ", "productId": "VSP Gx00" }, "externalPaths": [ { "portId": "CL1-E", "externalWwn": "50060E80125F7700", "externalIscsiInformation": null, "externalLun": 12 }, { "portId": "CL1-E", "externalWwn": "50060E80125F7710", "externalIscsiInformation": null, "externalLun": 12 } ], "mapped": false }, ], "total": 1, "nextToken": null }
Listing external volumes
You can retrieve external volumes for Volume Migration in Storage Advisor.
GET https://ipAddress/v1/storage-system/storageSystemId/external-volumes
{ "resources": [ { "volumeId": , "mappedVolumeId": , "externalParityGroupId": "", "storageSystemId": "", "poolId": , "label": "", "size": , "usedCapacity": , "availableCapacity": , "utilization": , "status": "", "type": "", "provisioningStatus": "", "attachedVolumeServerSummary": { [ { "serverId": , "paths": [ { "storagePortId": "", "storageSystemId": "", "lun": , "name": "", "hostMode": "", "wwns": [], "hostModeOptions": [], "preferredPath": , "iscsiTargetInformation": { "iscsiTargetName": "", "iscsiInitiatorNames": [""], "mutualChapUser": "", "chapUsers": [""], "authenticationMode": "", "authenticationDirection": "" } } ] } ] }, "migrationSummary": { "ownerTaskId": , "migrationType": "" } } ], "total": , "nextToken": }
Parameter | Type | Description |
volumeId | Long | ID number of the volume within the parent storage system. |
mappedVolumeId | Long | ID of the mapped volume. |
externalParityGroupId | String | ID of the external parity group. |
storageSystemId | String | ID of the storage system. |
poolId | String | ID of the pool from which the resource is allocated. |
label | String | Name of the volume. |
size | Long | Size of the volume, in bytes. |
usedCapacity | Long | Sum of used capacity per volume resource, in bytes. |
availableCapacity | Long | Unused capacity of the resource, in bytes. |
utilization | Integer | The percentage usage of the volume capacity. The utilization percentage=(usedCapacity/size)*100. |
status | String | Volume status. Valid values:
|
type | String | Type of pool from which the volume is allocated. Valid value:
|
provisioningStatus | String | Provisioning status of a volume. Valid values:
|
attachedVolumeServerSummary | List | Volume provisioning summary details. |
serverId | Integer | ID of the server. |
paths | List | Paths that exist on the volume. |
storagePortId | String | ID of the storage port. |
storageSystemId | String | ID of the storage system. |
lun | Integer | ID of the LUN. |
name | String | Name of the resource. |
hostMode | String | Host mode set for the volume. |
wwns | List | List of WWNs of connected hosts. NULL for iSCSI path. |
hostModeOptions | List of Integers | Host mode options for the volume. |
preferredPath | Boolean | Whether the LU path (host group) is preferred or not. |
iscsiTargetInformation | Object | Displays iSCSI target information. NULL for FC host groups. |
iscsiTargetName | String | Displays the iSCSI name of the iSCSI target. |
iscsiInitiatorNames | String | Displays the list of iSCSI names of the host bus adapters registered in the iSCSI target formatted in IQN or EUI format. |
mutualChapUser | String | Displays the CHAP user name of the iSCSI target. |
chapUsers | String | Displays the list of CHAP users of the host bus adapters registered in the iSCSI target. |
authenticationMode | Enum | CHAP authentication mode for the iSCSI target. This information is obtained in the case of an iSCSI port.
|
authenticationDirection | Enum | CHAP authentication direction for the iSCSI target. This information is obtained in the case of an iSCSI port.
|
migrationSummary | Object | List of migration attributes for the volume. |
ownerTaskId | String | The ID of the owner migration task. |
migrationType | String | Migration type. Valid values:
|
Status Code | HTTP Name | Description |
200 | OK | The server has started the operation. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
GET https://10.76.48.147/v1/storage-systems/410209/external-volumes
{ "resources":[ { "volumeId":87, "mappedVolumeId":70, "externalDeviceId":"XYZ 50402904033B", "externalParityGroupId":"1-5", "storageSystemId":"410209", "poolId":"7", "label":"", "size":4398046511104, "usedCapacity":4398426095616, "availableCapacity":0, "utilization":100, "status":"NORMAL", "type":"EXTERNAL", "provisioningStatus":"UNMANAGED", "attachedVolumeServerSummary":[ { "serverId":null, "paths":[ { "storagePortId":"CL1-F", "storageSystemId":"410209", "lun":1, "hostGroupId":"CL1-F-2", "name":"Win-9121_001", "hostMode":"WIN_EX", "wwns":["100000053326F7CC" ], "hostModeOptions":[40, 73 ], "iscsiTargetInformation":null, "preferredPath":null } ] } ], "migrationSummary": { "ownerTaskId":null, "migrationType":"NONE" } }, ... "total":11, "nextToken":null }
Getting a specific external volume
You can retrieve a specific external volume for Volume Migration in Storage Advisor.
GET https://ipAddress/v1/storage-system/storageSystemId/external-volumes/volumeId
{ "volumeId": , "mappedVolumeId": , "externalParityGroupId": "", "storageSystemId": "", "poolId": , "label": "", "size": , "usedCapacity": , "availableCapacity": , "utilization": , "status": "", "type": "E", "provisioningStatus": "", "attachedVolumeServerSummary": { [ { "serverId": , "paths": [ { "storagePortId": "", "storageSystemId": "", "lun": , "name": "", "hostMode": "", "wwns": [], "hostModeOptions": [], "preferredPath": , "iscsiTargetInformation": { "iscsiTargetName": "", "iscsiInitiatorNames": [""], "mutualChapUser": "", "chapUsers": [""], "authenticationMode": "", "authenticationDirection": "" } } ] } ] }, "migrationSummary": { "ownerTaskId": , "migrationType": "" } }
Parameter | Type | Description |
volumeId | Long | ID number of the volume within the parent storage system. |
mappedVolumeId | Long | Mapped volume ID. |
externalParityGroupId | String | ID of the external parity group. |
storageSystemId | String | ID of the storage system. |
poolId | String | ID of the pool from which the resource is allocated. |
label | String | Name of the volume. |
size | Long | Size of the volume, in bytes. |
usedCapacity | Long | Sum of used capacity per volume resource, in bytes. |
availableCapacity | Long | Unused capacity of the resource, in bytes. |
utilization | Integer | The percentage usage of the volume capacity. The utilization percentage=(usedCapacity/size)*100. |
status | String | Volume status. Valid values:
|
type | String | Type of pool from which the volume is allocated. Valid value:
|
provisioningStatus | String | Provisioning status of a volume. Valid values:
|
attachedVolumeServerSummary | List | Volume provisioning summary details. |
serverId | Integer | ID of the server. |
paths | List | Paths that exist on the volume. |
storagePortId | String | ID of the storage port. |
storageSystemId | String | ID of the storage system. |
lun | Integer | ID of the LUN. |
name | String | Name of the resource. |
hostMode | String | Host mode set for the volume. |
wwns | List | List of WWNs of connected hosts. NULL for iSCSI path. |
hostModeOptions | List of Integers | Host mode options for the volume. |
preferredPath | Boolean | Whether the LU path (host group) is preferred or not. |
iscsiTargetInformation | Object | Displays iSCSI target information. NULL for FC host groups. |
iscsiTargetName | String | Displays the iSCSI name of the iSCSI target. |
iscsiInitiatorNames | String | Displays the list of iSCSI names of the host bus adapters registered in the iSCSI target formatted in IQN or EUI format. |
mutualChapUser | String | Displays the CHAP user name of the iSCSI target. |
chapUsers | String | Displays the list of CHAP users of the host bus adapters registered in the iSCSI target. |
authenticationMode | Enum | CHAP authentication mode for the iSCSI target. This information is obtained in the case of an iSCSI port.
|
authenticationDirection | Enum | CHAP authentication direction for the iSCSI target. This information is obtained in the case of an iSCSI port.
|
migrationSummary | Object | List of migration attributes for the volume. |
ownerTaskId | String | The ID of the owner migration task. |
migrationType | String | Migration type. Valid values:
|
Status Code | HTTP Name | Description |
200 | OK | The server has started the operation. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
{ "volumeId":87, "mappedVolumeId":70, "externalDeviceId":"XYZ 50402904033B", "externalParityGroupId":"1-5", "storageSystemId":"410209", "poolId":"7", "label":"", "size":4398046511104, "usedCapacity":4398426095616, "availableCapacity":0, "utilization":100, "status":"NORMAL", "type":"EXTERNAL", "provisioningStatus":"UNMANAGED", "attachedVolumeServerSummary":[ { "serverId":null, "paths":[ { "storagePortId":"CL1-F", "storageSystemId":"410209", "lun":1, "hostGroupId":"CL1-F-2", "name":"Win-9121_001", "hostMode":"WIN_EX", "wwns":["100000053326F7CC" ], "hostModeOptions": [40, 73 ], "iscsiTargetInformation":null, "preferredPath":null } ] } ], "migrationSummary": { "ownerTaskId":null, "migrationType":"NONE" } }
Detaching volumes from storage
This operation deletes the paths from source storage system to target storage system in Storage Advisor.
POST https://ipAddress/v1/storage-systems/storageSystemId/volumes/volumeId/detach-from-storage
{ targetStorageSystemId : "" }
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status Code | HTTP Name | Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified URI is not valid or the resource does not exist. |
Listing migration tasks
You can retrieve a list of migration tasks for Volume Migration in Storage Advisor.
GET https://ipAddress/v1/storage-systems/storageSystemId/migration-tasks
The response body structure is shown below:
{ "resources": [ { "migrationTaskId": "", "migrationTaskName": "", "comments": "", "jobId": "", "schedule": { "datetime": "" }, "migrationPairCount": }, ... ], "total": , "nextToken": }
Parameter |
Type |
Description |
migrationTaskId | Integer | ID of the migration task. |
migrationTaskName | String | Name of the migration task. Min=1, max=32 characters. |
comments | String | Comment for the migration task. Min = 1, max = 255 characters. |
jobId | String | ID of the corresponding migration job. This parameter is only available once the job is executed. |
schedule | Object | Schedule of the migration job. |
datetime | String | Scheduled date and time of the migration job to be executed (in ISO 8601 format). |
migrationPairCount | Integer | Number of migration pairs defined in the task. |
Status Code |
HTTP name |
Description |
200 | OK | The server has started the operation. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
{ "resources": [ { "migrationTaskId": 1, "migrationTaskName": "MigrationTest", "comments": null, "jobId": null, "schedule": { "datetime": "2018-01-01T00:00:00.000Z" }, "migrationPairCount": 1 } ], "total": 1, "nextToken": null }
Getting a specific migration task
You can retrieve a specific migration task for Volume Migration in Storage Advisor.
GET https://ipAddress/v1/storage-systems/storageSystemId/migration-tasks/migrationTaskId
The response body structure is shown below:
{ "migrationTaskId": "", "migrationTaskName": "", "comments": "", "jobId": "", "schedule": { "datetime": "" }, "migrationPairCount": }
Parameter |
Type |
Description |
migrationTaskId | Integer | ID of the migration task. |
migrationTaskName | String | Name of the migration task. Min=1, max=32 characters. |
comments | String | Comment for the migration task. Min=1, max=255 characters. |
jobId | String | ID of the corresponding migration job. This parameter is only available once the job is executed. |
schedule | Object | Schedule of the migration job. |
datetime | String | Scheduled date and time of the migration job to be executed (in ISO 8601 format). |
migrationPairCount | Integer | Number of migration pairs defined in the task. |
Status Code |
HTTP name |
Description |
200 | OK | The server has started the operation. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
{ "resources": [ { "migrationTaskId": 1, "migrationTaskName": "MigrationTest", "comments": null, "jobId": null, "schedule": { "datetime": "2018-01-01T00:00:00.000Z" }, "migrationPairCount": 1 } ], "total": 1, "nextToken": null }
Creating a migration task
You can create a migration task for Volume Migration in Storage Advisor.
POST https://ipAddress/v1/storage-systems/storageSystemId/migration-tasks
The request body structure is shown below:
{ "migrationTaskName": "", "comments": "", "schedule": { "datetime": "" }, "targetPoolId":, "sourceVolumeIds": [] }
Parameter | Required | Type | Description |
migrationTaskName | Yes | String | Name of the migration task. Min=1, max=32 characters. |
comments | No | String | Comment for the migration task. Min=1, max=255 characters. |
schedule | No | Object | Schedule information of the migration job, such as:
|
targetPoolId | Yes | Integer | ID of the storage pool to be migrated. |
sourceVolumeIds | Yes | List | List of up to 300 migration source volume IDs. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status code |
HTTP name |
Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad request | The request contains an invalid request payload or the required HTTP header was not specified. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
{ "migrationTaskName": "test-migration", "comments": "", "schedule": { "datetime": "2018-01-01T00:00:00.000Z" }, "targetPoolId": 0, "sourceVolumeIds": [ 684 ] }
Interrupting a running migration job
You can interrupt a running migration job in Storage Advisor.
POST https://ipAddress/v1/storage-systems/storageSystemId/migration-tasks/migrationTaskId/interrupt
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status code |
HTTP name |
Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
Updating a migration task
You can update a migration task for Volume Migration in Storage Advisor.
POST https://ipAddress/v1/storage-systems/storageSystemId/migration-tasks/migrationTaskId
The request body structure is shown below:
{ "migrationTaskName": "", "comments": "", "schedule": { "datetime": "" }, "targetPoolId": }
Parameter |
Required |
Type |
Description |
migrationTaskName | No | String | Name of the migration task. Min=1, max=32 characters. |
comments | No | String | Comment for the migration task. Min=1, max=255 characters. |
schedule | No | Object | Schedule information for the migration job, such as:
|
targetPoolId | No | Integer | ID of the target pool. |
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status code |
HTTP name |
Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
{ "migrationTaskName": "MigrationTest", "comments": null, "schedule": { "datetime": "2018-01-01T00:00:00.000Z" } }
Deleting a migration task
You can delete a migration task in Storage Advisor. There are 2 use cases for this method. 1) After the job for the migration task is finished, you should delete the migration task in order to clean up the resource in Storage Advisor. 2) If the migration task is scheduled for the future and the job has not started, you can cancel the job as well as cleaning up the resource in Storage Advisor.
DELETE https://ipAddress/v1/storage-systems/storageSystemId/migration-tasks/migrationTaskId
Not applicable.
The response body structure is shown below:
{ "jobId": "", "title": { "text": "", "messageCode": "", "parameters": { } }, "user": "", "status": "", "startDate": , "endDate": , "parentJobId": , "reports": [ ], "links": [ { "rel": "_self", "href": "/v1/jobs/jobId" } ], "tags": [ ], "isSystem": }
Parameter | Type | Description |
jobId | String | ID of the job. |
text | String | Title of the task that is in progress. |
messageCode | String | ID of the message. |
parameters | Object | List of parameters and the values, as captured in the job message. |
user | String | User who initiated the request. |
status | String | Status of the job:In_progress,Success,Success_With_Errors, orFailed. |
startDate | Long | Start date and time of the job (in Epoch time format). |
endDate | Long | End date and time of the job (in Epoch time format). |
parentJobId | String | ID of the job that spawned this job. If there is no parent job, this value is null. |
reports | List | Messages associated with this job. |
rel | String | Indicates the type of link for the href parameter. If the value is _self, it identifies a resource equivalent to the containing element. |
href | String | URL of this job. |
tags | Set | Any tags applied to this job. |
isSystem | Boolean | Whether or not a system or a user has created a job. If the job is generated by a system, the system automatically sets it to true. If a user generates a job, the system sets it to false. |
Status code |
HTTP name |
Description |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
Getting migration pairs
You can retrieve a list of migration pairs for Volume Migration in Storage Advisor.
GET https://ipAddress/v1/storage-systems/storageSystemId/migration-pairs?q=migrationTaskId:migrationTaskId
Not applicable.
The response body structure is shown below:
{ "migrationPairId": , "migrationTaskId": , "sourceVolumeId": , "sourcePoolId":, "sourceExternalParityGroupId", "" "targetVolumeId": , "targetPoolId": , "status": "", "copyProgress": "copyGroupName": "" }
Parameter |
Type |
Description |
migrationPairId | Integer | ID of the migration pair. |
migrationTaskId | Integer | ID of the migration task. |
sourceVolumeId | Long | ID of the migration source volume. |
sourcePoolId | Integer | ID of the pool from which the migration source volume is allocated. |
sourceExternalParityGroupId | String | ID of the external parity group from which the migration source volume is allocated. |
targetVolumeId | Long | ID of the migration target volume. |
targetPoolId | Integer | ID of the pool from which the migration target volume is allocated. |
status | String | The status of the migration copy. Valid values:
|
copyProgress | Integer | The progress of the migration copy (0-100). |
copyGroupName | String | The name of the copy group for migration. |
Status code |
HTTP name |
Description |
200 | OK | The server has started the operation. |
401 | Unauthorized | The operation is not authorized. |
403 | Forbidden | The server failed to authenticate the request. |
404 | Not found | The specified resource ID is not valid or the resource does not exist. |
{ "resources": [ { "migrationPairId": 2, "migrationTaskId": 2, "sourceVolumeId": 684, "sourcePoolId": 10, "sourceExternalParityGroupId": null, "targetVolumeId": null, "targetPoolId": 0, "status": "NOT_MIGRATED", "copyProgress": null, "copyGroupName": null } ], "total": 1, "nextToken": null }