简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

作业

提供者 ciarm dmp-netapp

使用作业 API 查看作业详细信息。有关使用作业的详细信息,请参见作业对象 API 和异步进程。

检索作业

使用下表中列出的方法检索所有作业或部分作业。指定 tenant_id 将仅返回属于该租户的作业。

HTTP 方法 路径 Description Parameters

获取

` v2.1/jobs`

检索作业。

tenant_id :(可选)返回属于指定租户的块存储。offsetlimit —请参见 "通用分页"

所需的请求正文属性: none

  • 请求正文示例: *

none
  • 响应正文示例: *

{
  "status": {
    "user_message": "Okay. Returned 1 record.",
    "verbose_message": "",
    "code": 200
  },
  "result": {
    "returned_records": 1,
    "total_records": 2625,
    "sort_by": "created",
    "order_by": "desc",
    "offset": 0,
    "limit": 1,
    "records": [
      {
        "id": "5ed72c8c6342e90001439d54",
        "action": "create",
        "job_summary": "Create request is successfully submitted",
        "created": "2020-06-03T04:52:28.478Z",
        "updated": "2020-06-03T04:52:32.636Z",
        "object_id": "5ed72c8c6342e90001439d55",
        "object_type": "sg_buckets",
        "object_name": "test1234",
        "status": "successful",
        "status_detail": "Creation of s3 bucket 'test1234' completed successfully.",
        "last_error": "",
        "user_id": "5e85225af038943eb4b74684",
        "job_tasks": [
          {
            "id": "5ed72c8c6342e90001439d57",
            "job_id": "5ed72c8c6342e90001439d54",
            "action": "create",
            "driver": "storagegrid_ansible",
            "object_id": "5ed72c8c6342e90001439d55",
            "object_type": "sg_buckets",
            "resource_type": "sg_bucket",
            "status": "successful",
            "status_detail": "Worker completed task successfully.",
            "last_error": "",
            "user_id": "5e85225af038943eb4b74684",
            "request_payload": {
              "grid_account_id": "05336917559886003354",
              "grid_admin_base_url": "https://sggmi-dev.dev.ausngs.netapp.au/api/v3",
              "org_password": "netapp01",
              "org_username": "root",
              "s3_bucket_name": "test1234"
            }
          }
        ]
      }
    ]
  }
}

按作业 ID 检索作业

使用下表中列出的方法按 ID 检索作业。

HTTP 方法 路径 Description Parameters

获取

` /v2.1/jobs/{ id }`

按 ID 检索作业。

id ( string ) :作业的唯一标识符。

所需的请求正文属性: 作业标识符

  • 请求正文示例: *

none
  • 响应正文示例: *

{
  "status": {
    "user_message": "Okay. Returned 1 record.",
    "verbose_message": "",
    "code": 200
  },
  "result": {
    "total_records": 1,
    "records": [
      {
        "id": "5e66f18e09a74c0001b89640",
        "action": "create",
        "job_summary": "Create S3 bucket for Sub Tenant",
        "created": "2020-03-10T01:46:54.097Z",
        "updated": "2020-03-10T01:46:57.664Z",
        "object_id": "5e66f18e09a74c0001b89641",
        "object_type": "sg_buckets",
        "status": "successful",
        "status_detail": "Creation of s3 bucket 'mys3bucket' completed successfully.",
        "last_error": "",
        "user_id": "5bbee380a2df7a04d43acaee",
        "job_tasks": [
          {
            "id": "5e66f18e09a74c0001b89642",
            "job_id": "5e66f18e09a74c0001b89640",
            "action": "create",
            "driver": "storagegrid_ansible",
            "object_id": "5e66f18e09a74c0001b89641",
            "object_type": "sg_buckets",
            "resource_type": "sg_bucket",
            "status": "successful",
            "status_detail": "Worker completed task successfully.",
            "last_error": "",
            "user_id": "5bbee380a2df7a04d43acaee",
            "request_payload": {
              "grid_account_id": "47490102387197219062",
              "grid_admin_base_url": "https://sggmi-dev.dev.ausngs.netapp.au/api/v3",
              "org_password": "netapp01",
              "org_username": "root",
              "s3_bucket_name": "mys3bucket"
            }
          }
        ]
      }
    ]
  }
}

作业对象 API 和异步进程

某些 API 调用(尤其是用于添加或修改资源的 API 调用)的完成时间可能比其他调用更长。NetApp 服务引擎会异步处理这些长时间运行的请求。

发出异步运行的 API 调用后, HTTP 响应代码 202 表示此请求已成功验证并被接受,但尚未完成。此请求将作为后台任务进行处理,在对客户端进行初始 HTTP 响应后,此任务将继续运行。响应包括作业对象锁定请求,包括其唯一标识符。

正在查询与 API 请求关联的作业对象

HTTP 响应中返回的作业对象包含多个属性。您可以查询 state 属性以确定请求是否成功完成。作业对象可以处于以下状态之一:

  • 正常

  • 警告

  • Partial_failures

  • error

在轮询作业对象以检测任务的终端状态时,可以使用两种方法:成功或失败:

  • 标准轮询请求:立即返回当前作业状态。

  • 长轮询请求:当作业状态变为 normal , error 或 partial_failures 时。

异步请求的步骤

您可以使用以下高级操作步骤完成异步 API 调用。

  1. 问题描述异步 API 调用。

  2. 接收表示已成功接受请求的 HTTP 响应 202 。

  3. 从响应正文中提取作业对象的标识符。

  4. 在环路中,等待作业对象达到终端状态 normal , error 或 partial_failures 。

  5. 验证作业的终端状态并检索作业结果。