華為云計算 云知識 獲取任務(wù)信息ShowJob
獲取任務(wù)信息ShowJob

 

功能介紹

該API用于獲取任務(wù)信息。通過某一任務(wù)請求下發(fā)后返回的jobID來查詢指定任務(wù)的進度。

  • 集群管理的URL格式為:https://Endpoint/uri。其中uri為資源路徑,也即API訪問的路徑

  • 該接口通常使用場景為:

    • 創(chuàng)建、刪除集群時,查詢相應(yīng)任務(wù)的進度。

    • 創(chuàng)建、刪除節(jié)點時,查詢相應(yīng)任務(wù)的進度。

調(diào)用方法

請參見如何調(diào)用API。

URI

GET /api/v3/projects/{project_id}/jobs/{job_id}

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

項目ID,獲取方式請參見如何獲取接口URI中參數(shù)

job_id

String

任務(wù)ID,獲取方式請參見如何獲取接口URI中參數(shù)。

請求參數(shù)

表2 請求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

Content-Type

String

消息體的類型(格式)

X-Auth-Token

String

調(diào)用接口的認證方式分為Token和AK/SK兩種,如果您使用的Token方式,此參數(shù)為必填,請?zhí)顚慣oken的值,獲取方式請參見獲取token。

響應(yīng)參數(shù)

狀態(tài)碼: 200

表3 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

kind

String

API類型,固定值“Job”,該值不可修改。

apiVersion

String

API版本,固定值“v3”,該值不可修改。

metadata

JobMetadata object

任務(wù)元數(shù)據(jù)。

spec

JobSpec object

任務(wù)詳細參數(shù)。

status

JobStatus object

任務(wù)狀態(tài)信息。

表4 JobSpec

參數(shù)

參數(shù)類型

描述

type

String

任務(wù)的類型,例:“CreateCluster”- 創(chuàng)建集群。

clusterUID

String

任務(wù)所在的集群的ID。

resourceID

String

任務(wù)操作的資源ID。

resourceName

String

任務(wù)操作的資源名稱。

extendParam

Map<String,String>

擴展參數(shù)。

subJobs

Array of Job objects

子任務(wù)的列表。

  • 包含了所有子任務(wù)的詳細信息

  • 在創(chuàng)建集群、節(jié)點等場景下,通常會由多個子任務(wù)共同組成創(chuàng)建任務(wù),在子任務(wù)都完成后,任務(wù)才會完成

表5 Job

參數(shù)

參數(shù)類型

描述

kind

String

API類型,固定值“Job”,該值不可修改。

apiVersion

String

API版本,固定值“v3”,該值不可修改。

metadata

JobMetadata object

任務(wù)元數(shù)據(jù)。

spec

JobSpec object

任務(wù)詳細參數(shù)。

status

JobStatus object

任務(wù)狀態(tài)信息。

表6 JobMetadata

參數(shù)

參數(shù)類型

描述

uid

String

任務(wù)的ID。

creationTimestamp

String

任務(wù)的創(chuàng)建時間。

updateTimestamp

String

任務(wù)的更新時間。

表7 JobStatus

參數(shù)

參數(shù)類型

描述

phase

String

任務(wù)的狀態(tài),有如下四種狀態(tài):

  • JobPhaseInitializing JobPhase = "Initializing"

  • JobPhaseRunning JobPhase = "Running"

  • JobPhaseFailed JobPhase = "Failed"

  • JobPhaseSuccess JobPhase = "Success"

reason

String

任務(wù)變?yōu)楫?dāng)前狀態(tài)的原因

請求示例

響應(yīng)示例

狀態(tài)碼: 200

表示獲取任務(wù)信息成功。

{
  "kind" : "Job",
  "apiVersion" : "v3",
  "metadata" : {
    "uid" : "354331b2c-229a-11e8-9c75-0255ac100ceb",
    "creationTimestamp" : "2018-08-02 08:12:40.672772389 +0000 UTC",
    "updateTimestamp" : "2018-08-02 08:21:50.478108569 +0000 UTC"
  },
  "spec" : {
    "type" : "CreateCluster",
    "clusterUID" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
    "resourceID" : "6f4dcb2c-229a-11e8-9c75-0255ac100ceb",
    "resourceName" : "cluster-name",
    "extendParam" : {
      "serverID" : "bc467e3a-2338-11e8-825b-0255ac100c13"
    },
    "subJobs" : [ {
      "kind" : "Job",
      "apiVersion" : "v3",
      "metadata" : {
        "uid" : "fd474fab-9606-11e8-baa9-0255ac10215d",
        "creationTimestamp" : "2018-08-02 03:52:34.615819618 +0000 UTC",
        "updateTimestamp" : "2018-08-02 04:05:29.196243031 +0000 UTC"
      },
      "spec" : {
        "type" : "InstallMaster",
        "clusterUID" : "fcc72de0-9606-11e8-baa8-0255ac10215d",
        "resourceID" : "fd3b4ac0-9606-11e8-baa8-0255ac10215d",
        "extendParam" : {
          "serverID" : "fd3b4ac0-9606-11e8-baa8-0255ac10215d"
        }
      },
      "status" : {
        "phase" : "Success"
      }
    }, {
      "kind" : "Job",
      "apiVersion" : "v3",
      "metadata" : {
        "uid" : "fd474f82-9606-11e8-baa8-0255ac10215d",
        "creationTimestamp" : "2018-08-02 03:52:33.859150791 +0000 UTC",
        "updateTimestamp" : "2018-08-02 03:52:34.615655429 +0000 UTC"
      },
      "spec" : {
        "type" : "CreatePSMCert",
        "clusterUID" : "fcc72de0-9606-11e8-baa8-0255ac10215d"
      },
      "status" : {
        "phase" : "Success"
      }
    } ]
  },
  "status" : {
    "phase" : "Running",
    "reason" : ""
  }
}

SDK代碼示例

SDK代碼示例如下。

  • Java
  • Python
  • Go
  • 更多
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cce.v3.region.CceRegion;
import com.huaweicloud.sdk.cce.v3.*;
import com.huaweicloud.sdk.cce.v3.model.*;


public class ShowJobSolution {

    public static void main(String[] args) {
        String ak = "<YOUR AK>";
        String sk = "<YOUR SK>";
        String projectId = "<project_id>";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CceClient client = CceClient.newBuilder()
                .withCredential(auth)
                .withRegion(CceRegion.valueOf("cn-north-4"))
                .build();
        ShowJobRequest request = new ShowJobRequest();
        request.withJobId("<job_id>");
        try {
            ShowJobResponse response = client.showJob(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcce.v3.region.cce_region import CceRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcce.v3 import *

if __name__ == "__main__":
    ak = "<YOUR AK>"
    sk = "<YOUR SK>"
    projectId = "<project_id>"

    credentials = BasicCredentials(ak, sk, projectId) \

    client = CceClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CceRegion.value_of("cn-north-4")) \
        .build()

    try:
        request = ShowJobRequest()
        request.job_id = "<job_id>"
        response = client.show_job(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region"
)

func main() {
    ak := "<YOUR AK>"
    sk := "<YOUR SK>"
    projectId := "<project_id>"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := cce.NewCceClient(
        cce.CceClientBuilder().
            WithRegion(region.ValueOf("cn-north-4")).
            WithCredential(auth).
            Build())

    request := &model.ShowJobRequest{}
	request.JobId = "<job_id>"
	response, err := client.ShowJob(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多編程語言的SDK代碼示例,請參見API Explorer的代碼示例頁簽,可生成自動對應(yīng)的SDK代碼示例。

狀態(tài)碼

狀態(tài)碼

描述

200

表示獲取任務(wù)信息成功。

錯誤碼

請參見錯誤碼