
# 场景2：删除某租户及其所有数据
#### 操作场景
在使用应用运行态时，如果您创建的某个逻辑租户后续不再使用，您可以通过调用"数据清理与重置"的"tenant-clean-task"接口，将"type"参数设置为"TENANT_DELETE"，并指定"tenant_id"和"name"参数值，删除指定租户及该租户下的所有实例数据。
#### 约束与限制
- 删除租户时，会删除该租户下的所有数据，请谨慎操作。
- 如果您已将数据模型及其实例数据同步至LinkX-F系统，进行此操作后，将无法在LinkX-F系统进行数据模型及其实例数据的更新。
- 不支持删除唯一编码为"-1"的租户。
- 执行删除非"-1"的租户操作后，该租户不能再使用。
 
#### 前提条件
已获取租户的唯一编码。
#### 涉及接口
- 创建并执行清理数据任务 URI格式：POST http://**{Endpoint}** /rdm_**{appID}**_app/services/rdm/basic/api/v1/tenant-clean-task
  
- 查询任务执行结果 URI格式：GET http://**{Endpoint}** /rdm_**{appID}** _app/services/rdm/basic/api/v1/tenant-clean-task/**{id}**
  
- 重试清理数据任务 URI格式：PUT http://**{Endpoint}** /rdm_**{appID}** _app/services/rdm/basic/api/v1/tenant-clean-task/**{id}**
  
其中，{endpoint}表示承载REST服务端点的服务器域名或IP地址，{appID}表示应用ID，{id}表示清理数据任务ID。
#### 操作步骤
1. 创建并执行清理数据任务。
   
   - URI格式：POST http://**{Endpoint}** /rdm_**{appID}**_app/services/rdm/basic/api/v1/tenant-clean-task
   
   - 参数说明请参见[全量数据服务](https://support.huaweicloud.com/usermanual-idme/idme_clientog_0154.html)的"系统管理API \> 数据清理与重置"。
     如果存在响应参数"taskStatus"为"AWAIT_START"、"ONGOING"或"FAIL_AWAIT_RETRY"的任务，则不能对该任务中的租户创建新的清理数据任务。
     
   
   - 请求示例：
     ```
     POST https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task
     X-AUTH-TOKEN: ABCDEFG....
     {
         "params": {
             "tenant_id": "123456789",
             "name": "TestUser",
             "type": "TENANT_DELETE"
         }
     }
     ```
     
   
   - 响应示例：
     ```
     {
         "result": "SUCCESS",
         "data": [
             {
                 "id": "576804608546967552",
                 "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f",
                 "createTime": "2023-12-14T16:15:35.189+0800",
                 "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f",
                 "lastUpdateTime": "2023-12-14T16:15:35.189+0800",
                 "rdmVersion": 1,
                 "rdmDeleteFlag": 0,
                 "className": null,
                 "rdmExtensionType": "TenantCleanTask",
                 "hibernateVersion": 1,
                 "tenant": {
                     "id": "-1",
                     "clazz": "Tenant"
                 },
                 "name": "TestUser",
                 "applicationTaskId": null,
                 "cleanTaskTenantId": 12,
                 "type": "TENANT_DELETE",
                 "taskStatus": "ONGOING",
                 "retryTimes": 0,
                 "fileStatus": "AWAIT_START",
                 "ddsStatus": "AWAIT_START",
                 "cssStatus": "AWAIT_START",
                 "rdsStatus": "AWAIT_START",
                 "metadataStatus": "AWAIT_START",
                 "failMessage": null
             }
         ],
         "errors": []
     }
     ```
     
   
   
   
   
2. 记录[响应]中"data"的"id"，例如"576804608546967552"。
3. 查询任务执行结果。 
   - URI格式：GET http://**{Endpoint}** /rdm_**{appID}** _app/services/rdm/basic/api/v1/tenant-clean-task/**{id}**
   
   - 参数说明请参见[全量数据服务](https://support.huaweicloud.com/usermanual-idme/idme_clientog_0154.html)的"系统管理API \> 数据清理与重置"。
   
   - 请求示例：
     ```
     GET https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task/576804608546967552
     X-AUTH-TOKEN: ABCDEFG....
     ```
     
   
   - 响应示例：
     ```
     {
         "result": "SUCCESS",
         "data": [
             {
                 "id": "576804608546967552",
                 "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f",
                 "createTime": "2023-12-14T16:15:35.189+0800",
                 "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f",
                 "lastUpdateTime": "2023-12-14T16:15:35.189+0800",
                 "rdmVersion": 5,
                 "rdmDeleteFlag": 0,
                 "className": null,
                 "rdmExtensionType": "TenantCleanTask",
                 "hibernateVersion": 8,
                 "tenant": {
                     "id": "-1",
                     "clazz": "Tenant"
                 },
                 "name": "TestUser",
                 "applicationTaskId": null,
                 "cleanTaskTenantId": 12,
                 "type": "TENANT_DELETE",
                 "taskStatus": "SUCCESS",
                 "retryTimes": 0,
                 "fileStatus": "SUCCESS",
                 "ddsStatus": "SUCCESS",
                 "cssStatus": "SUCCESS",
                 "rdsStatus": "SUCCESS",
                 "metadataStatus": "SUCCESS",
                 "failMessage": null
             }
         ],
         "errors": []
     }
     ```
     
   
   
   
   
4. （可选）手动重试清理数据任务。 
   - URI格式：PUT http://**{Endpoint}** /rdm_**{appID}** _app/services/rdm/basic/api/v1/tenant-clean-task/**{id}**
   
   - 参数说明请参见[全量数据服务](https://support.huaweicloud.com/usermanual-idme/idme_clientog_0154.html)的"系统管理API \> 数据清理与重置"。
     - 如果响应的"taskStatus"为"success"或"fail"，不允许调用重试接口。
     
     - 如果响应的"taskStatus"为"FAIL_AWAIT_RETRY"，则表示清理失败，正在等待重试。系统会连续3天在凌晨3点自动重试，如果重试3次后仍清理失败，则任务结束。您也可以通过此步骤手动重试。
     
     - 一个"taskStatus"为"FAIL_AWAIT_RETRY"的任务仅支持重试3次。
      
   
   - 请求示例：
     ```
     PUT https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task/576804608546967552
     X-AUTH-TOKEN: ABCDEFG....
     ```
     
   
   - 响应示例：
     ```
     {
         "result": "SUCCESS",
         "data": [
             {
                 "id": "576804608546967552",
                 "creator": "Tester_HQ 362613cab50d4f42be5749d111111d4f",
                 "createTime": "2023-12-14T16:15:35.189+0800",
                 "modifier": "Tester_HQ 362613cab50d4f42be5749d111111d4f",
                 "lastUpdateTime": "2023-12-14T16:15:35.189+0800",
                 "rdmVersion": 5,
                 "rdmDeleteFlag": 0,
                 "className": null,
                 "rdmExtensionType": "TenantCleanTask",
                 "hibernateVersion": 8,
                 "tenant": {
                     "id": "-1",
                     "clazz": "Tenant"
                 },
                 "name": "TestUser",
                 "applicationTaskId": null,
                 "cleanTaskTenantId": 12,
                 "type": "TENANT_DELETE",
                 "taskStatus": "ONGOING",
                 "retryTimes": 1,
                 "fileStatus": "SUCCESS",
                 "ddsStatus": "SUCCESS",
                 "cssStatus": "SUCCESS",
                 "rdsStatus": "SUCCESS",
                 "metadataStatus": "SUCCESS",
                 "failMessage": null
             }
         ],
         "errors": []
     }
     ```
     
   
   
   
   
 
