Reporting Migration Progress and Speed
Function
This API is called by the Agent installed on source servers during migration to report the migration progress and speed to SMS.
You do not need to make calls to this API.
Calling Method
For details, see Calling APIs.
Authorization
Each account has all of the permissions required to call all APIs, but IAM users must have the required permissions specifically assigned.
- If you are using role/policy-based authorization, see the required permissions in Permissions and Supported Actions.
- If you are using identity policy-based authorization, the permission listed below is required.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
sms:server:updateTaskProgress
Write
server *
-
- sms:server:migrationServer
-
-
g:EnterpriseProjectId
URI
PUT /v3/tasks/{task_id}/progress
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
task_id |
Yes |
String |
The migration task ID. |
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. |
|
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 hosts the agent image DETTACH_AGENT_IMAGE: detaching the disk that hosts the 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_WINDOWS: 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 The value can be: |
|
progress |
Yes |
Integer |
The progress of the subtask, in percentage (%). Range 0 to 100 |
|
replicatesize |
Yes |
Long |
The amount of data that has been replicated in the subtask, in bytes. Range 0 to 9223372036854775807 |
|
totalsize |
Yes |
Long |
The total amount of data to be migrated in the subtask. Range 0 to 9223372036854775807 |
|
process_trace |
Yes |
String |
The detailed progress of the migration or synchronization. |
|
migrate_speed |
No |
Double |
The migration rate, in Mbit/s. Range 0 to 10000 |
|
compress_rate |
No |
Double |
The file compression rate. Range 0 to 10000 |
|
remain_time |
No |
Long |
The remaining time. Range 0 to 2147483647 |
|
total_cpu_usage |
No |
Double |
The CPU usage of the server. The value ranges from 0 to 100, in percentage. Range 0 to 100 |
|
agent_cpu_usage |
No |
Double |
The CPU usage of the Agent. The value ranges from 0 to 100, in percentage. Range 0 to 100 |
|
total_mem_usage |
No |
Double |
The memory usage of the server, in MB. Range 0 to 1048576.0 |
|
agent_mem_usage |
No |
Double |
The memory usage of the Agent, in MB. Range 0 to 1048576.0 |
|
total_disk_io |
No |
Double |
The disk I/O of the server, in Mbit/s. Range 0 to 10000.0 |
|
agent_disk_io |
No |
Double |
The disk I/O of the Agent, in Mbit/s. Range 0 to 10000.0 |
|
need_migration_test |
No |
Boolean |
Indicates whether migration drilling is enabled. |
|
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. |
Response
Status code: 200
|
Parameter |
Type |
Description |
|---|---|---|
|
- |
String |
The migration progress and speed were reported. |
Status code: 403
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
The error code. |
|
error_msg |
String |
The error message. |
|
encoded_authorization_message |
String |
The encrypted authorization information. |
|
error_param |
Array of strings |
Invalid parameters. |
|
details |
Array of details objects |
The error details. |
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: 200
The migration progress and speed were reported.
{ }
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 SDK code examples in more 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 speed were 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