更新时间:2024-08-19 GMT+08:00
分享

场景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. 创建并执行清理数据任务。

    如果存在响应参数“taskStatus”“await_start”“ongoing”“fail_awai_retry”的任务,则不能对该任务中的租户创建新的清理数据任务。

    • URI格式:POST http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task
    • 参数说明请参见全量数据服务系统管理API > 数据清理与重置
    • 请求示例:
      POST https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task
      X-AUTH-TOKEN: ABCDEFJ....
      {
          "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}
    • 参数说明请参见全量数据服务系统管理API > 数据清理与重置
    • 请求示例:
      GET https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task/576804608546967552
      X-AUTH-TOKEN: ABCDEFJ....
    • 响应示例:
      {
          "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. (可选)手动重试清理数据任务。

    • 如果响应的“taskStatus”“success”“fail”,不允许调用重试接口。
    • 如果响应的“taskStatus”“fail_awai_retry”,则表示清理失败,正在等待重试。系统会连续3天在凌晨3点自动重试,如果重试3次后仍清理失败,则任务结束。您也可以通过此步骤手动重试。
    • 一个“taskStatus”“fail_awai_retry”的任务仅支持重试3次。
    • URI格式:PUT http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/v1/tenant-clean-task/{id}
    • 参数说明请参见全量数据服务系统管理API > 数据清理与重置
    • 请求示例:
      PUT https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rdm/basic/api/v1/tenant-clean-task/576804608546967552
      X-AUTH-TOKEN: ABCDEFJ....
    • 响应示例:
      {
          "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": []
      }

相关文档