Reporting Migration Progress and Rate
Function
This API is called by the Agent installed on source servers during migration to report the migration progress and rate to SMS.
You do not need to make calls to this API.
Calling Method
For details, see Calling APIs.
URI
PUT /v3/tasks/{task_id}/progress
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
task_id |
Yes |
String |
The migration task ID. Minimum length: 0 characters Maximum length: 255 characters |
Request
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
X-Auth-Token The user token. The token can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token. Minimum length: 1 character Maximum length: 16,384 characters |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
subtask_name |
Yes |
String |
The name of the subtask whose progress is reported. The subtask name can be: CREATE_CLOUD_SERVER: creating a new server SSL_CONFIG: configuring a secure channel ATTACH_AGENT_IMAGE: attaching the disk that contains an agent image DETTACH_AGENT_IMAGE: detaching the disk that contains an agent image FORMAT_DISK_LINUX: formatting partitions on Linux FORMAT_DISK_LINUX_FILE: formatting partitions on Linux for a file-level migration FORMAT_DISK_LINUX_BLOCK: formatting partitions on Linux for a block-level migration FORMAT_DISK_LINUX: formatting partitions on Windows MIGRATE_LINUX_FILE: replicating files on Linux MIGRATE_LINUX_BLOCK: replicating blocks on Linux MIGRATE_WINDOWS_BLOCK: replicating blocks on Windows CLONE_VM: cloning the target server SYNC_LINUX_FILE: synchronizing files on Linux SYNC_LINUX_BLOCK: synchronizing blocks on Linux SYNC_WINDOWS_BLOCK: synchronizing blocks on Windows CONFIGURE_LINUX: modifying system configurations on Linux CONFIGURE_LINUX_BLOCK: modifying system configurations on Linux for a block-level migration CONFIGURE_LINUX_FILE: modifying system configurations on Linux for a file-level migration CONFIGURE_WINDOWS: modifying system configurations on Windows Minimum length: 0 characters Maximum length: 255 characters The value can be: |
progress |
Yes |
Integer |
The progress of the subtask, in percentage (%). Minimum value: 0 Maximum value: 100 |
replicatesize |
Yes |
Long |
The amount of data that has been replicated in the subtask, in bytes. Minimum value: 0 Maximum value: 9223372036854775807 |
totalsize |
Yes |
Long |
The total amount of data to be migrated in the subtask. Minimum value: 0 Maximum value: 9223372036854775807 |
process_trace |
Yes |
String |
The detailed progress of the migration or synchronization. Minimum length: 0 characters Maximum length: 2,048 characters |
migrate_speed |
No |
Double |
The migration rate in Mbit/s. Minimum value: 0 Maximum value: 10000 |
compress_rate |
No |
Double |
The file compression rate. Minimum value: 0 Maximum value: 10000 |
remain_time |
No |
Long |
The remaining time. Minimum value: 0 Maximum value: 2147483647 |
total_cpu_usage |
No |
Double |
CPU usage of the server. The value ranges from 0 to 100, in percentage. Minimum value: 0 Maximum value: 100 |
agent_cpu_usage |
No |
Double |
The CPU usage of the Agent. The value ranges from 0 to 100, in percentage. Minimum value: 0 Maximum value: 100 |
total_mem_usage |
No |
Double |
The memory usage of the server, in MB. Minimum value: 0 Maximum value: 1048576.0 |
agent_mem_usage |
No |
Double |
The memory usage of the Agent, in MB. Minimum value: 0 Maximum value: 1048576.0 |
total_disk_io |
No |
Double |
The disk I/O of the server, in MB/s. Minimum value: 0 Maximum value: 10000.0 |
agent_disk_io |
No |
Double |
The disk I/O of the Agent, in MB/s. Minimum value: 0 Maximum value: 10000.0 |
agent_time |
No |
String |
The current local time of the source server, which is used for overspeed detection. The speed limits can be configured by time period. Minimum length: 0 characters Maximum length: 30 characters |
Response
Status code: 200
Parameter |
Type |
Description |
---|---|---|
- |
String |
The migration progress and rate are reported. |
Status code: 403
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
The error code. Minimum length: 0 characters Maximum length: 255 characters |
error_msg |
String |
The error message. Minimum length: 0 characters Maximum length: 255 characters |
encoded_authorization_message |
String |
Encrypted authorization information. Minimum length: 0 characters Maximum length: 65,535 characters |
error_param |
Array of strings |
Invalid parameter. Minimum length: 0 characters Maximum length: 65,535 characters Array length: 1 to 20 |
details |
Array of details objects |
The error message. Array length: 1 to 20 |
Example Request
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
PUT https://{endpoint}/v3/tasks/7a9a9540-ff28-4869-b9e4-855fbe12xxxx/progress { "subtask_name" : "ATTACH_AGENT_IMAGE", "progress" : 100, "replicatesize" : 1000, "totalsize" : 100000, "process_trace" : "" }
Example Response
Status code: 403
Authentication failed.
{ "error_code" : "SMS.9004", "error_msg" : "The current account does not have the permission to execute policy You do not have permission to perform action XXX on resource XXX.", "encoded_authorization_message" : "XXXXXX", "error_param" : [ "You do not have permission to perform action XXX on resource XXX." ], "details" : [ { "error_code" : "SMS.9004", "error_msg" : "You do not have permission to perform action XXX on resource XXX." } ] }
SDK Sample Code
The sample code is as follows.
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.GlobalCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.sms.v3.region.SmsRegion; import com.huaweicloud.sdk.sms.v3.*; import com.huaweicloud.sdk.sms.v3.model.*; public class UpdateTaskSpeedSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new GlobalCredentials() .withAk(ak) .withSk(sk); SmsClient client = SmsClient.newBuilder() .withCredential(auth) .withRegion(SmsRegion.valueOf("<YOUR REGION>")) .build(); UpdateTaskSpeedRequest request = new UpdateTaskSpeedRequest(); request.withTaskId("{task_id}"); UpdateTaskSpeedReq body = new UpdateTaskSpeedReq(); body.withProcessTrace(""); body.withTotalsize(100000L); body.withReplicatesize(1000L); body.withProgress(100); body.withSubtaskName(UpdateTaskSpeedReq.SubtaskNameEnum.fromValue("ATTACH_AGENT_IMAGE")); request.withBody(body); try { UpdateTaskSpeedResponse response = client.updateTaskSpeed(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdksms.v3.region.sms_region import SmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdksms.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] credentials = GlobalCredentials(ak, sk) client = SmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(SmsRegion.value_of("<YOUR REGION>")) \ .build() try: request = UpdateTaskSpeedRequest() request.task_id = "{task_id}" request.body = UpdateTaskSpeedReq( process_trace="", totalsize=100000, replicatesize=1000, progress=100, subtask_name="ATTACH_AGENT_IMAGE" ) response = client.update_task_speed(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" sms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := global.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := sms.NewSmsClient( sms.SmsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UpdateTaskSpeedRequest{} request.TaskId = "{task_id}" request.Body = &model.UpdateTaskSpeedReq{ ProcessTrace: "", Totalsize: int64(100000), Replicatesize: int64(1000), Progress: int32(100), SubtaskName: model.GetUpdateTaskSpeedReqSubtaskNameEnum().ATTACH_AGENT_IMAGE, } response, err := client.UpdateTaskSpeed(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
For more SDK sample code of programming languages, visit API Explorer and click the Sample Code tab. Example code can be automatically generated.
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.GlobalCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.sms.v3.region.SmsRegion; import com.huaweicloud.sdk.sms.v3.*; import com.huaweicloud.sdk.sms.v3.model.*; public class UpdateTaskSpeedSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new GlobalCredentials() .withAk(ak) .withSk(sk); SmsClient client = SmsClient.newBuilder() .withCredential(auth) .withRegion(SmsRegion.valueOf("<YOUR REGION>")) .build(); UpdateTaskSpeedRequest request = new UpdateTaskSpeedRequest(); request.withTaskId("{task_id}"); UpdateTaskSpeedReq body = new UpdateTaskSpeedReq(); body.withProcessTrace(""); body.withTotalsize(100000L); body.withReplicatesize(1000L); body.withProgress(100); body.withSubtaskName(UpdateTaskSpeedReq.SubtaskNameEnum.fromValue("ATTACH_AGENT_IMAGE")); request.withBody(body); try { UpdateTaskSpeedResponse response = client.updateTaskSpeed(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdksms.v3.region.sms_region import SmsRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdksms.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] credentials = GlobalCredentials(ak, sk) client = SmsClient.new_builder() \ .with_credentials(credentials) \ .with_region(SmsRegion.value_of("<YOUR REGION>")) \ .build() try: request = UpdateTaskSpeedRequest() request.task_id = "{task_id}" request.body = UpdateTaskSpeedReq( process_trace="", totalsize=100000, replicatesize=1000, progress=100, subtask_name="ATTACH_AGENT_IMAGE" ) response = client.update_task_speed(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
This example reports the migration progress of a task. The current subtask name is ATTACH_AGENT_IMAGE, the task progress is 100, and the total size of data migrated in the current task is 10000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global" sms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := global.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := sms.NewSmsClient( sms.SmsClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UpdateTaskSpeedRequest{} request.TaskId = "{task_id}" request.Body = &model.UpdateTaskSpeedReq{ ProcessTrace: "", Totalsize: int64(100000), Replicatesize: int64(1000), Progress: int32(100), SubtaskName: model.GetUpdateTaskSpeedReqSubtaskNameEnum().ATTACH_AGENT_IMAGE, } response, err := client.UpdateTaskSpeed(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
For more SDK sample code of programming languages, visit API Explorer and click the Sample Code tab. Example code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
200 |
The migration progress and rate are reported. |
403 |
Authentication failed. |
Error Codes
For details, see Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot