華為云計算 云知識 獲取任務信息ShowJob
獲取任務信息ShowJob

 

功能介紹

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

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

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

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

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

調用方法

請參見如何調用API

URI

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

表1 路徑參數

參數

是否必選

參數類型

描述

project_id

String

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

job_id

String

任務ID,獲取方式請參見如何獲取接口URI中參數

請求參數

表2 請求Header參數

參數

是否必選

參數類型

描述

Content-Type

String

消息體的類型(格式)

X-Auth-Token

String

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

響應參數

狀態(tài)碼: 200

表3 響應Body參數

參數

參數類型

描述

kind

String

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

apiVersion

String

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

metadata

JobMetadata object

任務元數據。

spec

JobSpec object

任務詳細參數。

status

JobStatus object

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

表4 JobSpec

參數

參數類型

描述

type

String

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

clusterUID

String

任務所在的集群的ID。

resourceID

String

任務操作的資源ID。

resourceName

String

任務操作的資源名稱。

extendParam

Map<String,String>

擴展參數。

subJobs

Array of Job objects

子任務的列表。

  • 包含了所有子任務的詳細信息

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

表5 Job

參數

參數類型

描述

kind

String

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

apiVersion

String

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

metadata

JobMetadata object

任務元數據。

spec

JobSpec object

任務詳細參數。

status

JobStatus object

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

表6 JobMetadata

參數

參數類型

描述

uid

String

任務的ID。

creationTimestamp

String

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

updateTimestamp

String

任務的更新時間。

表7 JobStatus

參數

參數類型

描述

phase

String

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

  • JobPhaseInitializing JobPhase = "Initializing"

  • JobPhaseRunning JobPhase = "Running"

  • JobPhaseFailed JobPhase = "Failed"

  • JobPhaseSuccess JobPhase = "Success"

reason

String

任務變?yōu)楫斍盃顟B(tài)的原因

請求示例

響應示例

狀態(tài)碼: 200

表示獲取任務信息成功。

{
  "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的代碼示例頁簽,可生成自動對應的SDK代碼示例。

狀態(tài)碼

狀態(tài)碼

描述

200

表示獲取任務信息成功。

錯誤碼

請參見錯誤碼。