Skip to content

容器

查询容器实例列表

1.接口说明

接口路径:/ai/openapi/v2/instance-service/task

请求方式:GET

请求数据类型:

接口描述:查询容器实例列表

2.请求消息

请求参数:

Headers:

名称类型必填描述示例
tokenstring接口凭证eyJhbGciOiJIUzI1...

参数:

名称类型必填描述示例
instanceServiceNamearray容器实例名称
limitint限制数量20
sortstring排序方式desc
startint起始值,默认为00
statusstring状态Running | Deploying | Waiting | Terminated | Failed | Completed
taskTypestring任务类型ssh | jupyter | codeserver | rstudio

3.请求示例

cURL请求示例

shell
curl --location --request GET 'https://scnet-demo.accloud.cn/ai/openapi/v2/instance-service/task' \
--header 'token: <Token>' \
--header 'Content-Type: application/json' \
--data '{
  "status": null,
  "instanceServiceName": null,
  "taskType": "ssh",
  "start": 0,
  "limit": 20,
  "sort": "desc"
}'

Java请求示例

java
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.net.*;

public class QueryInstanceServiceDemo {

    public static class HttpGetWithEntity extends HttpEntityEnclosingRequestBase {
        
        public final static String METHOD_NAME = "GET";

        @Override
        public String getMethod() {
            return METHOD_NAME;
        }
    }

    public static void main(String[] args) throws Exception {
        String token = "<Token>";
        String url = "https://ai01.xxx.com:65011/ai/openapi/v2/instance-service/task";
        String params = "{\n    \"status\": null,\n    \"instanceServiceName\": null,\n    \"taskType\": \"ssh\",\n    \"start\": 0,\n    \"limit\": 20,\n    \"sort\": \"desc\"\n}";
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        HttpGetWithEntity e = new HttpGetWithEntity();
        e.setURI(new URI(url));
        e.setHeader("token", token);
        e.setHeader("Content-Type", "application/json");
        HttpEntity yourEntity = new StringEntity(params, ContentType.APPLICATION_JSON);
        e.setEntity(yourEntity);
        CloseableHttpResponse response = httpClient.execute(e);
        HttpEntity entity = response.getEntity();
        String body = "";
        if (entity != null) {
            body = EntityUtils.toString(entity, "UTF-8");
        }
        System.out.println(body);
        response.close();
    }
}

Python请求示例

python
import requests
import json

url = "https://scnet-demo.accloud.cn/ai/openapi/v2/instance-service/task"
payload = json.dumps({
  "status": None,
  "instanceServiceName": None,
  "taskType": "ssh",
  "start": 0,
  "limit": 20,
  "sort": "desc"
})
headers = {
  "token": "<Token>",
  "Content-Type": "application/json"
}

response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)

4.响应消息

返回参数:

名称类型描述示例
msgstring信息操作成功
codestring状态码0
dataarray任务列表
acceleratorTypestring加速器类型
cpuNumberintCPU数量
createTimestring创建时间
currentIndexint容器当前索引
descriptionstring描述信息
durationstring持续时间
endTimestring结束时间
gpuNumberintGPU数量
headerNotebookIdstring容器实例关联的首个notebook任务ID
headerNotebookIpstring容器实例关联的首个notebook任务IP
idstring容器实例ID
imagePathstring镜像路径
instanceServiceNamestring名称
ramSizeint内存
remainingTimestring剩余时间
resourceGroupstring资源分组
resourceSpecstring资源配置
startScriptActionScopestring启用脚本范围
startScriptPathstring启动脚本路径
startScriptContentstring启动脚本的内容
startTimestring开始时间
statusstring状态
taskNumberstring实例任务数量
taskTypestring任务类型
tensorboardIdstringTB-ID
tensorboardPathstringTB路径
timeoutLimitstring超时时间
useStartScriptboolean启用脚本
userNamestring用户名
versionstring镜像名称
mountInfoListarray
containerPortInfoListarray

返回示例:

json
{
  "msg":"success",
  "total":4,
  "code":"0",
  "data":[
    {
      "id":"530491fa7c8e47348f01de73e627a6a7",
      "headerNotebookId":"b54439dc621a434a88e8ab37d1897241",
      "instanceServiceName":"Instances_2204208761",
      "currentIndex":1,
      "gpuNumber":2,
      "cpuNumber":6,
      "ramSize":30720,
      "acceleratorType":"gpu",
      "resourceGroup":"TeslaM40",
      "resourceSpec":"6 核心; 2 加速器; 30.0G 内存",
      "taskNumber":1,
      "timeoutLimit":"unlimited",
      "userName":"demo",
      "version":"pytorch:1.2-py3.6-CUDA10.0",
      "imagePath":"10.0.35.26:5000/gpu/admin/base/pytorch:1.2-py3.6-CUDA10.0",
      "status":"Waiting",
      "taskType":"ssh",
      "description":"",
      "createTime":"2022-04-20 16:16:14",
      "startTime":null,
      "endTime":null,
      "duration":"--",
      "remainingTime":"--",
      "tensorboardId":null,
      "tensorboardPath":null,
      "mountInfoList":null,
      "containerPortInfoList":null,
      "useStartScript":false,
      "startScriptContent":"",
      "startScriptPath":null,
      "startScriptActionScope":"all",
      "headerNotebookIp":null
    }
  ]
}

5.错误码

错误码说明
0成功
10001内部异常(其他异常)
10003参数不全
10004参数无效
10007用户已被冻结
10008权限不足
10009没有权限访问接口
10010文件校验失败
10011文件过大
10012连接中断