Creating Tasks in Batches

Function

This API is used to create real-time migration, real-time synchronization, and real-time DR tasks in batches based on different request parameters.

URI

POST /v3/{project_id}/jobs/batch-creation

Table 1 Path parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID of a tenant in a region

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

The content type.

The default value is application/json.

X-Auth-Token

Yes

String

User token obtained from IAM.

X-Language

No

String

Request language type. The default value is en-us.

Values:

  • en-us

  • zh-cn

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

jobs

Yes

Array of CreateJobReq objects

Request body for creating tasks.

Table 4 CreateJobReq

Parameter

Mandatory

Type

Description

name

Yes

String

The task name. The task name can be 4 to 50 characters in length. It is case-insensitive and can contain only letters, digits, hyphens (-), and underscores (_).

  • Minimum length: 4 characters

  • Maximum length: 50 characters

db_use_type

Yes

String

Migration scenario.

Values:

  • migration: real-time migration.

  • sync: real-time synchronization.

  • cloudDataGuard: real-time disaster recovery.

engine_type

Yes

String

Engine type of a DRS task.

Values:

  • mysql: used for migration and synchronization from MySQL to MySQL

  • mongodb: used for migration from MongoDB to DDS

  • cloudDataGuard-mysql: used for DR from MySQL to MySQL

  • mysql-to-taurus: used for synchronization from MySQL to GaussDB(for MySQL) primary/standby

  • postgresql: used for synchronization from PostgreSQL to PostgreSQL

job_direction

Yes

String

Task direction.

Values:

  • up: to-the-cloud scenarios and the current cloud is the standby cloud in the DR.

  • down: out-of-cloud scenarios and the current cloud is the active cloud in the DR.

  • non-dbs: self-built databases.

bind_eip

No

Boolean

Whether to bind an EIP. This parameter is mandatory and set to true when the network type is EIP.

customize_sutnet_id

Yes

String

The ID of the subnet where the DRS instance resides, which corresponds to the network ID of the subnet created in the VPC of the destination database. The value is in UUID format.

is_target_readonly

No

Boolean

Whether the destination DB instance can be read-only. This parameter is valid only when the destination DB instance is a MySQL DB instance and the job_direction value is up. In the DR scenario, this parameter is mandatory and set to true if the current cloud is a standby cloud. If this parameter is not specified, the default value is true.

net_type

Yes

String

Network type. Value:

  • vpn

  • vpc

  • eip

The VPC network cannot be selected in the DR scenario.

node_type

Yes

String

The flavor type. Value:

  • high

node_num

No

Integer

The number of nodes.

For a MongoDB database, this parameter indicates the number of source shards. This parameter is mandatory when the source database is a cluster. The value ranges from 1 to 32. The default value is 2 for MySQL dual-active DR.

source_endpoint

Yes

Endpoint object

The source database information.

target_endpoint

Yes

Endpoint object

The destination database information.

task_type

Yes

String

Task mode. The default value is FULL_INCR_TRANS.

Values:

  • FULL_TRANS: full migration

  • FULL_INCR_TRANS: full+incremental migration

  • INCR_TRANS: incremental migration

In the single-active DR scenario, only FULL_INCR_TRANS is available.

tags

No

Array of ResourceTag object

Tag information. Up to 20 tags can be added.

description

No

String

Task description. The task description can contain a maximum of 256 characters and cannot contain the following special characters: !<>'&"\

multi_write

No

Boolean

  • This parameter is mandatory when db_use_type is set to cloudDataGuard. If the DR type is dual-active, the value of multi_write is true. Otherwise, the value is false.

  • If db_use_type is set to other values, multi_write is optional.

Default value: false

sys_tags

No

Array of ResourceTag object

Enterprise project. If this parameter is not specified, the value is default. The key must be _sys_enterprise_project_id, and the value is the enterprise project ID. Only one enterprise project can be selected.

expired_days

No

String

After a task is in the abnormal status for a period of time, the task is automatically stopped. The unit is day. The value ranges from 14 to 100. If this parameter is not transferred, the default value is 14.

master_az

No

String

AZ where the primary task is located. You can obtain the value by calling the API for querying AZs where flavors are not sold out.

  • This parameter takes effect when both master_az and slave_az are specified.

  • MySQL are supported.

slave_az

No

String

AZ where the standby task is located. You can obtain the value by calling the API for querying AZs where flavors are not sold out.

  • This parameter takes effect when both master_az and slave_az are specified.

  • MySQL are supported.

Table 5 Endpoint

Parameter

Mandatory

Type

Description

db_type

No

String

Database type. Values:

  • mysql

  • mongodb

  • taurus

  • postgresql

az_code

No

String

azCode of the AZ where the database is located.

region

No

String

Region where the DB instance is located. This parameter is mandatory when the database is a cloud instance, for example, an RDS or GaussDB(for MySQL) instance. In DR scenarios, if job_direction is set to down, this parameter is mandatory in source_endpoint. If job_direction is set to up, this parameter is mandatory in target_endpoint.

inst_id

No

String

DB instance ID. This parameter is mandatory when the database is a cloud instance, for example, an RDS or GaussDB(for MySQL) instance. In DR scenarios, if job_direction is set to down, this parameter is mandatory in source_endpoint. If job_direction is set to up, this parameter is mandatory in target_endpoint.

vpc_id

No

String

ID of the VPC where the database is located.

subnet_id

No

String

ID of the subnet where the database is located.

security_group_id

No

String

ID of the security group to which the database belongs.

project_id

No

String

The project ID of an RDS or GaussDB(for MySQL) instance.

db_password

No

String

Database password.

db_port

No

Integer

Database port. The value is an integer ranging from 1 to 65535.

db_user

No

String

Database user.

inst_name

No

String

The name of an RDS or GaussDB(for MySQL) instance.

ip

No

String

Database IP address.

mongo_ha_mode

No

String

MongoDB HA mode.

ssl_cert_password

No

String

SSL certificate password. The certificate file name extension is .p12.

ssl_cert_check_sum

No

String

The checksum value of the SSL certificate, which is used for backend verification. This parameter is mandatory for secure connection to the source database.

ssl_cert_key

No

String

SSL certificate content, which is encrypted using Base64.

ssl_cert_name

No

String

SSL certificate name.

ssl_link

No

Boolean

Whether SSL is enabled.

cluster_mode

No

String

For MongoDB 4.0 or later, if the cluster instance cannot obtain the IP address of the sharded node, set source_endpoint to Sharding4.0+.

Default value: Sharding4.0+

Values:

  • Sharding4.0+

Table 6 ResourceTag

Parameter

Mandatory

Type

Description

key

No

String

Tag key. The value can contain a maximum of 36 characters, including letters, digits, underscores (_), and hyphens (-).

value

No

String

Tag value. The value can contain a maximum of 43 characters, including letters, digits, underscores (_), and hyphens (-).

Response Parameters

Status code: 202

Table 7 Response body parameters

Parameter

Type

Description

results

Array of CreateJobResp objects

The response body for creating tasks in batches.

count

Integer

Total number of records.

Table 8 CreateJobResp

Parameter

Type

Description

id

String

Task ID.

child_ids

Array of strings

Subtask ID set. This parameter is returned when there are subtasks.

name

String

Task name.

status

String

Task status.

create_time

String

Creation time (timestamp).

error_code

String

Error code, which is optional and indicates the returned information about the failure status.

error_msg

String

Error message, which is optional and indicates the returned information about the failure status.

Example Request

  • Example for creating real-time MySQL migration tasks in batches.

    https://{Endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation
    
    {
      "jobs" : [ {
        "name" : "DRS-9228",
        "node_type" : "high",
        "engine_type" : "mysql",
        "net_type" : "eip",
        "job_direction" : "up",
        "db_use_type" : "migration",
        "task_type" : "FULL_INCR_TRANS",
        "customize_sutnet_id" : "352ad828-3467-4f03-987a-c55a5a9dd417",
        "source_endpoint" : {
          "db_type" : "mysql"
        },
        "target_endpoint" : {
          "region" : "eu-de",
          "db_type" : "mysql",
          "inst_id" : "e05a3679efe241d8b5dee80b17c1a863in01"
        },
        "is_target_readonly" : false,
        "bind_eip" : true
      } ]
    }
    
  • Example for creating real-time MySQL DR tasks (Current cloud as standby).

    https://{Endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation
    
    {
      "jobs" : [ {
        "name" : "DRS-api-test",
        "engine_type" : "cloudDataGuard-mysql",
        "net_type" : "eip",
        "node_type" : "high",
        "job_direction" : "up",
        "source_endpoint" : {
          "db_type" : "mysql"
        },
        "target_endpoint" : {
          "region" : "eu-de",
          "db_type" : "mysql",
          "inst_id" : "e05a3679efe241d8b5dee80b17c1a863in01",
          "project_id" : "054ba152d480d55b2f5dc0069e7ddef0"
        },
        "is_target_readonly" : true,
        "bind_eip" : true,
        "db_use_type" : "cloudDataGuard",
        "task_type" : "FULL_INCR_TRANS",
        "customize_sutnet_id" : "352ad828-3467-4f03-987a-c55a5a9dd417",
        "multi_write" : false
      } ]
    }
    
  • Example for creating real-time migration tasks for DDS replica set instances.

    https://{Endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation
    
    {
      "jobs" : [ {
        "name" : "DRS-3371-linxiaolu",
        "node_type" : "high",
        "engine_type" : "mongodb",
        "net_type" : "eip",
        "job_direction" : "up",
        "db_use_type" : "migration",
        "task_type" : "FULL_INCR_TRANS",
        "customize_sutnet_id" : "faf513f3-7a88-4a5c-bec7-238699c29c17",
        "source_endpoint" : {
          "db_type" : "mongodb"
        },
        "target_endpoint" : {
          "region" : "eu-de",
          "db_type" : "mongodb",
          "inst_id" : "3cadd5a0ef724f55ac7fa5bcb5f4fc5fin02"
        },
        "bind_eip" : true
      } ]
    }
    
  • Example for creating a MySQL primary/standby task.

    https://192.107.54.184:10011/drs/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-creation
    
    {
      "jobs" : [ {
        "name" : "DRS-linxiaolu-test3",
        "engine_type" : "mysql",
        "net_type" : "eip",
        "node_type" : "high",
        "job_direction" : "up",
        "source_endpoint" : {
          "db_type" : "mysql"
        },
        "target_endpoint" : {
          "region" : "eu-de",
          "db_type" : "mysql",
          "inst_id" : "64e8d7a31afa476ca85609a17af83765in01",
          "project_id" : "054ba152d480d55b2f5dc0069e7ddef0"
        },
        "bind_eip" : true,
        "db_use_type" : "sync",
        "task_type" : "FULL_INCR_TRANS",
        "customize_sutnet_id" : "0cf77cfb-3785-4065-a9c4-74b7bb2df071",
        "master_az" : "az2xahz",
        "slave_az" : "az3xahz"
      } ]
    }
    

Example Response

Status code: 202

Accepted

{
  "results" : [ {
    "id" : "e11eaf8f-71ef-4fad-8890-aed7572ajb11",
    "name" : "DRS-9228",
    "status" : "CREATING",
    "create_time" : "1599188556112"
  } ],
  "count" : 1
}

Status Code

Status Code

Description

202

Accepted

400

Bad Request

Error Code

For details, see Error Code.