This topic describes how to create a tenant by using the API.
Request parameters
| Parameter | Type | Required | Example value | Description |
|---|---|---|---|---|
| name | string | Yes | t1 | The name of the tenant to be created. |
| zone_list | []ZoneParam | Yes | For more information, see the data structure of ZoneParam. | The resource specifications and the distribution of replicas for the tenant. |
| mode | string | No | MYSQL | The type of the tenant to be created. Valid values include MYSQL. |
| primary_zone | string | No | RANDOM | The primary zone of the tenant, which indicates the priority of the zone where the tenant provides read/write services. |
| whitelist | string | No | % | The access whitelist of the tenant. |
| root_password | string | No | 123456 | The root user password of the tenant. |
| scenario | string | No | kv | The type of the tenant's workload. Valid values include:
NoteThis parameter is supported only when the OceanBase cluster is of a version later than V4.3.0. |
| variables | map[string]interface{} | No | { "max_connections": 1000, "ob_query_timeout": 10000000 } |
The system variables of the tenant. |
| parameters | map[string]interface{} | No | { "backup_data_file_size": "2G", "arbitration_timeout": "10s" } |
The configurations of the tenant. |
| charset | string | No | N/A | The character set of the tenant. |
| cllation | string | No | N/A | The character sequence of the tenant. |
| read_only | bool | No | false | Specifies whether the tenant is read-only. |
| comment | string | No | N/A | Information about the tenant. |
The data structure of ZoneParam is as follows:
| Parameter | Type | Required | Example value | Description |
|---|---|---|---|---|
| name | string | Yes | zone1 | The name of the zone. |
| replica_type | string | No | FULL | The type of the replica of the tenant in the zone. Valid values include FULL (full-featured replica) and READONLY (read-only replica). The default value is FULL. |
| unit_config_name | string | Yes | s1 | The resource specifications of the tenant resource pool in the zone. |
| unit_num | int | Yes | 1 | The number of units of the tenant in the zone. |
Return result
| Parameter | Type | Description |
|---|---|---|
| successful | bool | Indicates whether the request is successful. |
| timestamp | time.Time | The timestamp when the server completes the request. |
| duration | int | The time (in milliseconds) taken by the server to process the request. |
| status | int | The HTTP status code. |
| traceId | string | The Trace ID of the request. |
| data | DagDetailDTO | The asynchronous task information. For more information, see the data structure of DagDetailDTO. |
| error | ApiError | The error information returned by the request, which contains the following information:
|
The data structure of DagDetailDTO is as follows:
| Parameter | Type | Description |
|---|---|---|
| id | string | The common ID of the DAG. |
| dag_id | int | The ID of the DAG, which is the primary key in OceanBase Database. |
| name | string | The name of the DAG. |
| stage | int | The current execution stage of the DAG. |
| max_stage | int | The total number of stages in the execution process of the DAG. |
| state | string | The execution status of the DAG. |
| operator | string | The type of the DAG execution operation. |
| start_time | time.Time | The start time of the DAG execution. |
| end_time | time.Time | The end time of the DAG execution. |
| additional_data | map[string]any | Other data of the DAG. |
| nodes | []NodeDetailDTO | Information about all nodes in the DAG. For more information, see Get node information. |
Examples
Request example
POST 10.10.10.1:2886/api/v1/tenant
{
"name": "t1",
"zone_list": [
{
"name": "zone1",
"unit_config_name": "s1",
"unit_num": 1
},
{
"name": "zone2",
"unit_config_name": "s1",
"unit_num": 1
},
{
"name": "zone3",
"unit_config_name": "s1",
"unit_num": 1
}
],
"mode": "MYSQL",
"read_only": false
}
Response example
{
"successful": true,
"timestamp": "2024-10-12T17:35:23.85443063+08:00",
"duration": 64,
"status": 200,
"traceId": "42ee97601d3de292",
"data": {
"id": "18",
"dag_id": 8,
"name": "Create tenant t1",
"stage": 1,
"max_stage": 3,
"state": "READY",
"operator": "RUN",
"start_time": "0001-01-01T00:00:00Z",
"end_time": "0001-01-01T00:00:00Z",
"additional_data": null,
"nodes": null
}
}
References
You can also call the API by using SDK methods.
For more information about how to request the API by using obshell-sdk-python, see Create a tenant.
For more information about how to request the API by using obshell-sdk-go, see Create a tenant.