作业
提供者
使用作业 API 查看作业详细信息。有关使用作业的详细信息,请参见作业对象 API 和异步进程。
检索作业
使用下表中列出的方法检索所有作业或部分作业。指定 tenant_id
将仅返回属于该租户的作业。
HTTP 方法 | 路径 | Description | Parameters |
---|---|---|---|
|
` v2.1/jobs` |
检索作业。 |
|
所需的请求正文属性: 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 检索作业。 |
|
所需的请求正文属性: 作业标识符
-
请求正文示例: *
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 调用。
-
问题描述异步 API 调用。
-
接收表示已成功接受请求的 HTTP 响应 202 。
-
从响应正文中提取作业对象的标识符。
-
在环路中,等待作业对象达到终端状态 normal , error 或 partial_failures 。
-
验证作业的终端状态并检索作业结果。