Help Center/ Storage Disaster Recovery Service/ API Reference/ SDRS APIs/ Protected Instance/ Modifying the Specifications of a Protected Instance
Updated on 2023-11-21 GMT+08:00

Modifying the Specifications of a Protected Instance

Function

This API is used to modify the specifications of a server in a protected instance, including:

  • Modify the specifications of both the production and DR site servers.
  • Modify the specifications of only the production site server.
  • Modify the specifications of only the DR site server.

You can perform this operation only when the servers of which the specifications to be modified are stopped.

Servers of different specifications have different performance, which may affect applications running on the servers. To ensure the server performance after a planned failover or failover, you are recommended to use servers of specifications (CPU and memory) same or higher than the specifications of the production site servers at the DR site.

Constraints and Limitations

  • status of the protection group must be available or protected.
  • status of the protected instance must be available, protected, or error-resizing.
  • Servers of which the specifications to be modified are stopped.

URI

  • URI format

    POST /v1/{project_id}/protected-instances/{protected_instance_id}/resize

  • Parameter description

    Parameter

    Mandatory

    Type

    Description

    project_id

    Yes

    String

    Specifies the project ID.

    For details about how to obtain the project ID, see Obtaining a Project ID.

    protected_instance_id

    Yes

    String

    Specifies the ID of a protected instance.

    You can obtain this value by calling the API described in Querying Protected Instances.

Request

  • Parameter description

    Parameter

    Mandatory

    Type

    Description

    resize

    Yes

    Object

    Modifies the specifications of a protected instance.

    For details, see Table 1.

    Table 1 resize field description

    Parameter

    Mandatory

    Type

    Description

    flavorRef

    No

    String

    Specifies the flavor ID of the production and DR site servers after the modification.

    NOTE:

    If you specify this parameter, the system modifies the specifications of both the production and DR site servers. After the modification, the production site server and DR site server use the same specifications.

    production_flavorRef

    No

    String

    Specifies the flavor ID of the production site server after the modification.

    NOTE:
    • If you specify this parameter, the system modifies the specifications of only the production site server.
    • If flavorRef is specified, production_flavorRef does not take effect.

    dr_flavorRef

    No

    String

    Specifies the flavor ID of the DR site server after the modification.

    NOTE:
    • If you specify this parameter, the system modifies the specifications of only the DR site server.
    • If flavorRef is specified, dr_flavorRef does not take effect.

    production_dedicated_host_id

    No

    String

    Specifies the new DeH ID for the production site.

    NOTE:
    • If the production site server is created on a DeH, this parameter must be specified when you modify the specifications of the production site server.
    • You can set this parameter to the ID of the DeH where the production site server is currently located or the ID of another DeH.

    dr_dedicated_host_id

    No

    String

    Specifies the new DeH ID for the DR site.

    NOTE:
    • If the DR site server is created on a DeH, this parameter must be specified when you modify the specifications of the DR site server.
    • You can set this parameter to the ID of the DeH where the DR site server is currently located or the ID of another DeH.
  • Example request

    POST https://{Endpoint}/v1/{project_id}/protected-instances/00000000632302f501632305f63c000e/resize

    Example 1: Modify the specifications of the production and DR site servers to e2.small. Example request:
    {   
          "resize": {   
               "flavorRef": "e2.small"
           }   
     }

    Example 2: Modify the specifications of the production and DR site serves to s3.small.1 and s3.large.2 respectively. Example request:

    {   
          "resize": {   
               "production_flavorRef": "s3.small.1",
               "dr_flavorRef": "s3.large.2"
           }   
     }

    Example 3: Modify the specifications of the production site server to e2.small, and retain the DR site server specifications. Example request:
    {   
          "resize": {   
               "production_flavorRef": "e2.small"
           }   
     }

    Example 4: Modify the specifications of the DR site server to e2.small, and retain the production site server specifications. Example request:

    {   
          "resize": {   
               "dr_flavorRef": "e2.small"
           }   
     }

    Example 5: The production site server is created on a DeH. Modify the specifications of the production site server to e2.small, and retain the DR site server specifications. The following lists the example request.
    {   
          "resize": {   
               "production_flavorRef": "e2.small",
               "production_dedicated_host_id": "59f82ad6-6fc9-4bae-8621-aef2194e112c"
           }   
     }
    Example 6: The DR site server is created on a DeH. Modify the specifications of the DR site server to e2.small, and retain the production site server specifications. The following lists the example request.
    {   
          "resize": {   
               "dr_flavorRef": "e2.small",
               "dr_dedicated_host_id": "59f82ad6-6fc9-4bae-8621-aef2194e112c"
           }   
     }

Response

  • Parameter description

    Parameter

    Type

    Description

    job_id

    String

    Specifies the job ID.

    This is a returned parameter when the asynchronous API command is issued successfully. For details about the task execution result, see the description in Querying the Job Status.

  • Example response
    {  
        "job_id": "0000000011db92d70162db9d20df32ch"  
      }

    Or

    {  
          "error": {  
              "message": "XXXX",   
              "code": "XXX"  
          }  
      }

    In this example, error represents a general error, including badrequest (shown below) and itemNotFound.

    {  
          "badrequest": {  
              "message": "XXXX",   
              "code": "XXX"  
          }  
      }

Returned Values

  • Normal

    Returned Value

    Description

    200

    The server has accepted the request.

  • Abnormal

    Returned Value

    Description

    400 Bad Request

    The server failed to process the request.

    401 Unauthorized

    You must enter a username and the password to access the requested page.

    403 Forbidden

    You are forbidden to access the requested page.

    404 Not Found

    The server could not find the requested page.

    405 Method Not Allowed

    You are not allowed to use the method specified in the request.

    406 Not Acceptable

    The response generated by the server could not be accepted by the client.

    407 Proxy Authentication Required

    You must use the proxy server for authentication so that the request can be processed.

    408 Request Timeout

    The request timed out.

    409 Conflict

    The request could not be processed due to a conflict.

    500 Internal Server Error

    Failed to complete the request because of a service error.

    501 Not Implemented

    Failed to complete the request because the server does not support the requested function.

    502 Bad Gateway

    Failed to complete the request because the server receives an invalid response from an upstream server.

    503 Service Unavailable

    Failed to complete the request because the system is unavailable.

    504 Gateway Timeout

    A gateway timeout error occurred.