
# 批量测试连接-集群模式 - BatchValidateClustersConnections
#### 功能介绍
- 批量测试连接（集群模式）。
- 主备任务测试连接。
- 多任务修改用户密码。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DRS&api=BatchValidateClustersConnections)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 接口约束
- 任务创建成功之后，任务状态为CONFIGURATION才能进行测试连接。
- 为保证接口调用性能，建议批量调用数量不超过10个。
 
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-drs/drs_api_0035.html)。
#### URI
POST /v3/{project_id}/jobs/cluster/batch-connection
表1路径参数 
| **参数**     | **是否必选** | **参数类型** | **描述**                                                                                                                                               |
|:---|:---|:---|:---|
| project_id | 是        | String   | 租户在某一Region下的Project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-drs/drs_api_0106.html)。 |
   
#### 请求参数
表2请求Header参数 
| **参数**       | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| Content-Type | 是        | String   | 指定类型为application/json。 缺省值：**application/json**                                                                                                                                                                                                                                                                                                                                                      |
| X-Auth-Token | 是        | String   | 从IAM服务获取的用户Token。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| X-Language   | 否        | String   | 请求语言类型。 缺省值：**en-us** 取值： - **en-us**  - **zh-cn**   |
   
表3请求Body参数 
| **参数** | **是否必选** | **参数类型**         | **描述**                                                                                                                             |
|:---|:---|:---|:---|
| jobs   | 是        | Array of objects | 集群批量测试连接任务请求列表。 详情请参见[表4]。 |
   
 表4jobs字段数据结构说明 
| **参数**   | **是否必选** | **参数类型** | **描述**                                                                                                                                                                             |
|:---|:---|:---|:---|
| action   | 是        | String   | 需要执行的特定操作。                                                                                                                                                                         |
| job_id   | 是        | String   | 任务ID（集群模式取父任务的任务ID）。                                                                                                                                                               |
| property | 是        | String   | 操作对应的参数。 说明： 按照[表5]中的参数拼成json后转义。 |
   
 表5property字段数据结构说明 
| **名称**              | **是否必选** | **参数类型** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| dbtype              | 是        | String   | 数据库类型。 取值范围： mysql, taurusha, sqlserver, postgresql, ddm, mongodb, awsdocumentdb, hwmongodb, hwpostgresql, oracle, taurus, gaussdb, kafka, mrsKafka, cassandra, dynamo, dws, gaussdbv5, gaussdbv5ha, gaussmongodb, multigaussdbv5, dmq, gaussdbt, gaussdbtha, gaussdb300, elasticsearch, db2, tidb, redis, gaussredis, rediscluster, mariadb, oceanbase, informix, gaussdbv1, gausscassandra, geminidynamo, dds, tauruslite, star-rocks, gaussdbformysqllite, taurus-postgresql, thl, opengauss, ddmforgaussdb, gaussdbmultimaster |
| dbport              | 是        | Integer  | 数据库端口，mongodb时取值0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ssllink             | 是        | boolean  | 是否是SSL安全连接，取值： - **true**  - **false**                                                                                                                                                                                                                                                                                       |
| nettype             | 是        | String   | 网络类型，取值： - **vpn**  - **vpc**  - **eip**                                                                                                                                                                                        |
| endpointtype        | 是        | String   | endpoint类型，取值： - **so**：源库。  - **ta**：目标库。  - **ls** ： 分片数据库。 当源库是集群时，数据库ip对应的endpointtype是so, 分片数据库对应的endpointtype是ls。                                                                                                               |
| ip                  | 是        | String   | 数据库IP。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| dbName              | 是        | String   | 数据库名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| instid              | 否        | String   | 数据库实例ID，云上实例需要填写。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| dbuser              | 是        | String   | 数据库用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| dbpassword          | 是        | String   | 数据库密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| sslcertkey          | 否        | String   | SSL证书内容，SSL连接时需要。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| sslcertname         | 否        | String   | SSL证书名字，SSL连接时需要。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| sslcertchecksum     | 否        | String   | SSL证书内容checksum值，SSL连接时需要。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| kafkaSecurityConfig | 否        | Object   | Kafka认证方式为安全认证时填写。 详情请参见[表6]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表6kafkaSecurityConfig字段数据结构说明 
| 参数                       | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| type                     | 否    | String  | 安全协议，安全认证时必填，对应Kafka字段：security.protocol。 - PLAINTEXT：无安全认证方式，仅需输入IP和端口进行连接。  - SASL_PLAINTEXT：使用SASL机制连接Kafka，需要设置SASL相关配置。  - SSL：使用SSL加密方式连接Kafka，需要设置SSL相关配置。  - SASL_SSL：使用SASL及SSL加密认证方式，需要设置SSL及SASL相关参数配置信息。   枚举值： - **PLAINTEXT**  - **SASL_PLAINTEXT**  - **SASL_SSL**  - **SSL**   |
| trust_store_key_name     | 否    | String  | 证书名称，安全协议为SSL、SASL_SSL时必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| trust_store_key          | 否    | String  | 安全证书base64转码后的值，安全协议为SSL、SASL_SSL时必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| trust_store_password     | 否    | String  | 证书密码，安全协议为SSL、SASL_SSL时必填。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| endpoint_algorithm       | 否    | String  | 主机名端点识别算法，对应Kafka字段：ssl.endpoint.identification.algorithm，指定通过服务端证书验证服务端主机名的端点识别算法，不填表示禁用主机名验证。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| sasl_mechanism           | 否    | String  | SASL机制，用于客户端连接的SASL机制，对应Kafka字段：sasl.mechanism，支持以下四项，取值： - GSSAPI  - PLAIN  - SCRAM-SHA-256  - SCRAM-SHA-512                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| delegation_tokens        | 否    | Boolean | 是否为委托令牌鉴权，安全协议为SASL_SSL和SASL_PLAINTEXT时，SASL机制选择"SCRAM-SHA-256"或者"SCRAM-SHA-512"时生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| enable_key_store         | 否    | Boolean | 是否开启SSL双向认证。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| key_store_key            | 否    | String  | Keystore证书，开启SSL双向认证时需要。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| key_store_key_name       | 否    | String  | Keystore证书名称，开启SSL双向认证时需要。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| key_store_password       | 否    | String  | Keystore证书密码，开启SSL双向认证时需要。对应Kafka字段：ssl.keystore.password                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| set_private_key_password | 否    | Boolean | 是否设置Keystore私钥密码，默认为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| key_password             | 否    | String  | Keystore私钥密码，开启SSL双向认证时，set_private_key_password为true时必填。对应Kafka字段：ssl.key.password。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| **参数**  | **参数类型**         | **描述**                                                                                                                      |
|:---|:---|:---|
| results | Array of objects | 批量测试连接响应体集合。 详情请参见[表8]。 |
| count   | Integer          | 总记录数。                                                                                                                       |
   
 表8results字段数据结构说明 
| **参数**     | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| id         | String   | 任务ID。                                                                                                                                                                                                                                                                                                                                    |
| status     | String   | 测试结果。取值： - **true**：表示成功。  - **false**：表示失败。   |
| error_code | String   | 错误码。                                                                                                                                                                                                                                                                                                                                     |
| error_msg  | String   | 错误信息。                                                                                                                                                                                                                                                                                                                                    |
| success    | Boolean  | 是否成功。                                                                                                                                                                                                                                                                                                                                    |
   
#### 请求示例
- MySQL主备任务测试连接
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/cluster/batch-connection
  {
  "jobs": [{
  "action": "testConnection",
  "job_id": "0ac45233-8de7-4f02-9de1-d71cab7jb201",
  "property": "[{\"ip\":\"192.168.2.232:3306\",\"dbtype\":\"mysql\",\"dbuser\":\"root\",\"dbpassword\":\"******\",\"ssllink\":false,\"projectId\":\"054ba152d480d55b2f5dc0069e7ddef0\",\"region\":\"cn-xianhz-1\",\"nettype\":\"eip\",\"endpointtype\":\"so\"}]"
  }]
  }
  ```
  

- 源库为DDS集群测试连接
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/cluster/batch-connection
  {
    "jobs" : [ {
      "action" : "testConnection",
      "job_id" : "35d0d60b-4605-4686-b35d-3a3d059fjb15",
      "property" : "[{\"dbtype\":\"mongodb\",\"dbport\":0,\"ssllink\":false,\"nettype\":\"eip\",\"endpointtype\":\"so\",\"encrypt\":{\"elementId\":\"encrypt_switch\",\"offLabel\":\"OFF\",\"onLabel\":\"ON\",\"disable\":false,\"ip\":\"192.168.7.217:8635\",\"dbName\":\"admin\",\"dbuser\":\"rwuser\",\"dbpassword\":\"******\"},{\"dbtype\":\"mongodb\",\"dbport\":0,\"ssllink\":false,\"nettype\":\"eip\",\"endpointtype\":\"so\",\"encrypt\":{\"elementId\":\"encrypt_switch\",\"offLabel\":\"OFF\",\"onLabel\":\"ON\",\"disable\":false,\"ip\":\"192.168.7.72:8635\",\"dbName\":\"admin\",\"dbuser\":\"rwuser\",\"dbpassword\":\"******\"},{\"ip\":\"192.168.7.37:8635\",\"nettype\":\"eip\",\"dbtype\":\"mongodb\",\"dbport\":0,\"dbuser\":\"rwuser\",\"dbpassword\":\"******\",\"ssllink\":false,\"sslcertkey\":\"\",\"sslcertname\":\"\",\"sslcertchecksum\":\"\",\"endpointtype\":\"ls\",\"dbName\":\"admin\"}]"
    } ]
  }
  ```
  
 
- MySQL-Kafka实时同步主备任务，Kafka认证方式为SASL_PLAINTEXT
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/cluster/batch-connection
  {
    "jobs": [
      {
        "action": "testConnection",
        "job_id": "f85c660b-c4d0-4571-ac53-629d906jb20i",
        "property": "[{\"ip\":\"xxxxxx:xxxx\",\"dbtype\":\"kafka\",\"dbuser\":\"xxxxxx\",\"dbpassword\":\"xxxxxx\",\"ssllink\":false,\"projectId\":\"5237e10fe9aa4ad5b16b6a5245248314\",\"region\":\"region-1\",\"vpcid\":\"f7ea6af9-dee8-456f-b3d7-0cc34b4c9cbf\",\"subnetid\":\"b04c1704-5bd9-4195-9bda-ea2a14e0537e\",\"kafkaSecurityConfig\":{\"type\":\"SASL_PLAINTEXT\",\"sasl_mechanism\":\"PLAIN\"},\"nettype\":\"vpc\",\"dbUseType\":\"sync\",\"endpointtype\":\"ta\"}]"
      }
    ]
  }
  ```
  
#### 响应示例
**状态码：200**
OK
```
{
  "results" : [ {
    "id" : "0eb704d0-5a1c-4cbd-b675-91152f06jb11",
    "status" : "true"
  } ],
  "count" : 1
}
```
#### 状态码
| **状态码** | **描述**      |
|:---|:---|
| 200     | OK          |
| 400     | Bad Request |
   
其他状态请参见[状态码](https://support.huaweicloud.com/api-drs/drs_api_0108.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-drs/drs_05_0004.html)。
