跳转至

API 文档

一.任务相关接口

1.查询任务状态

接口说明:是创建,删除,更新任务获取的任务ID的请求地址。

请求方法:

GET

请求接口:

/task/status

请求参数:

序号 名称 类型 是否必须 描述
1 jobid String 任务id(多个为逗号相接字符串)

请求URL示例:

/tingyu/task/status?jobid=jobid

响应参数:

序号 名称 类型 是否必须 描述
1 code int 200:成功,500: 系统错误
2 msg String 成功:success
3 info array 返回的每条任务的详情

响应body示例:

{
  "msg": "success",
  "code": 200,
  "info": [
    {
      "deploymentname": "25573790700e807cd563ddc659cdd9f9vdp1",
      "state": 3,
      "uuid": "25573790700e807cd563ddc659cdd9f9",
      "deviceid": "tingyu-73bc6b60935cc7001c9d939109b0dfc0"
    }
  ]
}

二.部署相关接口

1.创建容器

请求方法:

POST

请求接口:

/container/create

请求URL示例:

/tingyu/container/create

请求body示例:

[
  {
    "uuid": "string",
    "image": "string",
    "imageversion": "string",
    "deploymentname": "string",
    "env": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "volumes": [
      {
        "hostPath": "string",
        "mountPath": "string"
      }
    ],
    "requestscpu": 0,
    "requestsmemory": 0,
    "limitscpu": 0,
    "limitsmemory": 0
  }
]

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据详情,若响应失败则不显示

响应body示例:

//响应成功
{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 500,
      "deploymentname": "25573790700e807cd563ddc659cdd9f9vdp1",
      "message": "Node is not ready"
    }
  ]
}
//响应失败
{  
    "msg": "uuid不存在!",  
    "code": "TY0015" 
}

2.根据容器名字修改容器

请求方法:

PUT

请求接口:

/container/updateByName

请求URL示例:

/tingyu/container/updateByName

请求body示例:

[
  {
    "uuid": "string",
    "image": "string",
    "imageversion": "string",
    "deploymentname": "string",
    "env": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "volumes": [
      {
        "hostPath": "string",
        "mountPath": "string"
      }
    ],
    "requestscpu": 0,
    "requestsmemory": 0,
    "limitscpu": 0,
    "limitsmemory": 0
  }
]

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据详情,若响应失败则不显示

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 500,
      "deploymentname": "25573790700e807cd563ddc659cdd9f9vdp1",
      "message": "Node is not ready"
    }
  ]
}

{
  "msg": "uuid不存在!",
  "code": "TY0015"
}

3.根据区域和运营商修改容器

请求方法:

PUT

请求接口:

/container/updateByInherit

请求URL示例:

/tingyu/container/updateByInherit

请求body示例:

{
  "area": "string",
  "operator": "string",
  "percent": 0,
  "image": "string",
  "imageversion": "string"
}

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据详情,若响应失败则不显示

响应body示例:

//成功
{
  "msg": "success",
  "code": 200,
  "data": null
}
//失败
{
  "msg": "运营商错误!正确为移动、联通和电信!",
  "code": "TY0032"
}

4.升级镜像

请求方法:

POST

请求接口:

/container/inheritUpdate

请求URL示例:

/tingyu/container/inheritUpdate

请求body示例:

{
  "deploymentnames": "string",
  "image": "string",
  "imageversion": "string"
}

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 500,
      "deploymentname": "string",
      "message": "Get Deploymentname Fail"
    }
  ]
}

5.根据name查询详情

请求方法:

POST

请求接口:

/container/get

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可查询多个,逗号隔开

请求URL示例:

/tingyu/container/get?name=nginx
/tingyu/container/get?name=25573790700e807cd563ddc659cdd9f9pop2p1

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据

响应body示例:

//请求成功
{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 200,
      "data": {
        "image": "registry.cn-hangzhou.aliyuncs.com/pcdn-images/pop2p:v3.18",
        "restart": "Always",
        "name": "25573790700e807cd563ddc659cdd9f9pop2p1",
        "volumes": [
          {
            "mountPath": "/storage",
            "hostPath": "/data/vdp/instance1"
          },
          {
            "mountPath": "/etc/resolv.conf",
            "hostPath": "/etc/resolv.conf"
          },
          {
            "mountPath": "/etc/localtime",
            "hostPath": "/etc/localtime"
          }
        ],
        "env": [
          {
            "value": "6555",
            "key": "port"
          },
          {
            "value": "somnus",
            "key": "name"
          }
        ],
        "network": "host"
      },
      "message": "success"
    }
  ]
}
//请求不存在的container name
{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 500,
      "data": {
        "name": "nginx"
      },
      "message": "deployments.apps \"nginx\" not found"
    }
  ]
}

6.根据name查询配置详情

请求方法:

POST 

请求接口:

/container/info

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可查询多个,逗号隔开

请求URL示例:

/tingyu/container/info?name=25573790700e807cd563ddc659cdd9f9pop2p1

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 200,
      "data": {
        "createtime": "2021-06-13 19:27:58",
        "podinfo": [
          {
            "podname": "25573790700e807cd563ddc659cdd9f9pop2p1-74d9d659d6-qx98q",
            "podstate": "Pending"
          }
        ],
        "deploymentname": "25573790700e807cd563ddc659cdd9f9pop2p1"
      },
      "message": "success"
    }
  ]
}

7.根据uuid查询所有容器配置

请求方法:

POST 

请求接口:

/container/list

请求参数:

序号 名称 类型 是否必须 描述
1 uuid string 机器uuid

请求URL示例:

/tingyu/container/list?uuid=tingyu-73bc6b60935cc7001c9d939109b0dfc0

响应参数:

名称 类型 描述
msg string 响应状态描述
code int 状态码
data array 响应数据

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": []
}
//错误的uuid
{
  "msg": "uuid不存在!",
  "code": "TY0015"
}

8.删除容器

请求方法:

DELETE 

请求接口:

/container/delete

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可传多个,逗号隔开

请求URL示例:

/tingyu/container/delete?name=25573790700e807cd563ddc659cdd9f9pop2p1

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码
data array 响应数据

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "code": 500,
      "deploymentname": "25573790700e807cd563ddc659cdd9f9pop2p1",
      "message": "Node is not ready"
    }
  ]
}

9.启动容器

请求方法:

POST 

请求接口:

/container/start

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可传多个,逗号隔开

请求URL示例:

/tingyu/container/start?name=cdn

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码

响应body示例:

{
  "msg": "启动成功!",
  "code": 200
}

10.停止容器

请求方法:

POST 

请求接口:

/container/stop

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可传多个,逗号隔开

请求URL示例:

/tingyu/container/stop?name=ceshi

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码

响应body示例:

{
  "msg": "停止成功!",
  "code": 200
}

11.重启容器

请求方法:

POST 

请求接口:

/container/restart

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可传多个,逗号隔开

请求URL示例:

/tingyu/container/restart?name=ceshi

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码

响应body示例:

{
  "msg": "重启成功!",
  "code": 200
}

三.镜像相关接口

1.删除镜像

请求方法:

DELETE

请求接口:

/image/deleteByImage

请求参数:

序号 名称 类型 是否必须 描述
1 image string 镜像名字

请求URL示例:

/tingyu/image/deleteByImage?image=pcdn

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码

响应body示例:

{
  "msg": "未知异常,请联系管理员",
  "code": 500
}

2.删除镜像版本

请求方法:

DELETE 

请求接口:

/image/deleteByImageVersion

请求参数:

序号 名称 类型 是否必须 描述
1 image string 镜像名字
2 imageVersion string 镜像版本

请求URL示例:

/tingyu/image/deleteByImageVersion?image=pcdn&imageVersion=v6.1333

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码

响应body示例:

{
  "msg": "未知异常,请联系管理员",
  "code": 500
}

3.镜像查询

请求方法:

GET

请求接口:

/image/search

请求参数:

序号 名称 类型 是否必须 描述
1 wordkey string 关键字

请求URL示例:

/tingyu/image/search?wordKey=pcdn

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码
data string array 镜像数据

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": []
}

4.镜像上传

请求方法:

POST

请求接口:

/image/uploadImage

请求参数:

序号 名称 类型 是否必须 描述
1 image_name string 镜像名
2 image_url string 镜像地址
3 version string 镜像版本
4 detail string 镜像描述

请求URL示例:

/tingyu/image/uploadImage?image_name=doc&image_url=doc_url&version=v1.33&detail=jiekouceshi

请求body示例:

上传文件的格式为tar包。

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码

响应body示例:

{
  "msg": "上传失败!请检查tar包是否是通过docker save保存!",
  "code": 500
}

四.计量带宽相关接口

1.用户整体带宽

请求方法:

GET 

请求接口:

/info/bandWith/getAllNode

请求参数:

序号 名称 类型 是否必须 描述
1 startDate string 开始时间(yyyy-MM-dd HH:mm:ss)
2 endDate string 结束时间(yyyy-MM-dd HH:mm:ss)

请求URL示例:

/tingyu/info/bandWith/getAllNode?startDate=2020-11-08%2011%3A24%3A22&endDate=2020-12-08%2011%3A24%3A22

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码
info string array 带宽信息

响应body示例:

{
  "msg": "success",
  "code": 200,
  "info": []
}

2.镜像维度带宽

请求方法:

GET

请求接口:

/info/bandWith/getByImage

请求参数:

序号 名称 类型 是否必须 描述
1 startDate string 开始时间(yyyy-MM-dd HH:mm:ss)
2 endDate string 结束时间(yyyy-MM-dd HH:mm:ss)
3 image string 镜像名称,不填则表示全部

请求URL示例:

/tingyu/info/bandWith/getByImage?startDate=2020-11-08%2011%3A24%3A22&endDate=2020-12-08%2011%3A24%3A22&image=pcdn

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码
info string array 带宽信息

响应body示例:

{
  "msg": "success",
  "code": 200,
  "info": []
}

3.镜像版本维度带宽

请求方法:

GET

请求接口:

/info/bandWith/getByImageVersion

请求参数:

序号 名称 类型 是否必须 描述
1 startDate string 开始时间(yyyy-MM-dd HH:mm:ss)
2 endDate string 结束时间(yyyy-MM-dd HH:mm:ss)
3 imageVersion string 镜像名称,不填则表示全部

请求URL示例:

/tingyu/info/bandWith/getByImageVersion?startDate=2020-11-08%2011%3A24%3A22&endDate=2020-12-08%2011%3A24%3A22&imageVersion=pcdn%3Av6.1333

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码
info string array 带宽信息

响应body示例:

{
  "msg": "success",
  "code": 200,
  "info": []
}

五.资源使用统计相关接口

1.镜像维度资源统计

请求方法:

GET

请求接口:

/info/resourceUse/getByImage

请求参数:

序号 名称 类型 是否必须 描述
1 startDate string 开始时间(yyyy-MM-dd HH:mm:ss)
2 endDate string 结束时间(yyyy-MM-dd HH:mm:ss)
3 image string 镜像名称

请求URL示例:

/tingyu/info/resourceUse/getByImage?startDate=2021-05-08%2011%3A24%3A22&endDate=2021-05-11%2011%3A24%3A22&image=pcdn

响应参数:

名称 类型 描述
msg string 响应信息
code int 状态码
info string array 资源统计信息

响应body示例:

{
  "msg": "success",
  "code": 200,
  "info": []
}

2.镜像版本维度资源统计

请求方法:

GET

请求接口:

/info/resourceUse/getByImageVersion

请求参数:

序号 名称 类型 是否必须 描述
1 startDate string 开始时间(yyyy-MM-dd HH:mm:ss)
2 endDate string 结束时间(yyyy-MM-dd HH:mm:ss)
3 image string 镜像名称

请求URL示例:

/tingyu/info/resourceUse/getByImageVersion?startDate=2020-11-08%2011%3A24%3A22&endDate=2020-12-08%2011%3A24%3A22&imageVersion=pcdn%3Av6.1333

响应参数:

名称 类型 描述
msg string 响应信息
code int 状态码
info string array 资源统计信息

响应body示例:

{
  "msg": "success",
  "code": 200,
  "info": []
}

六.节点信息相关接口

1.根据节点名称查询信息

请求方法:

GET

请求接口:

/node/get

请求参数:

序号 名称 类型 是否必须 描述
1 name string 节点名称,可查询多个,逗号隔开

请求URL示例:

/tingyu/node/get?name=25573790700e807cd563ddc659cdd9f9

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 响应码
data array 响应数据,失败则不显示

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "area": "南京",
      "nodename": "25573790700e807cd563ddc659cdd9f9",
      "bandwith": 1000,
      "eth": "[{\"Name\":\"eth0\",\"IP\":\"192.168.3.102\",\"Type\":\"real\"},{\"Name\":\"docker0\",\"IP\":\"172.17.0.1\",\"Type\":\"virt\"}]",
      "operatingsystem": "linux",
      "osimage": "CentOS Linux 7 (Core)",
      "uuid": "tingyu-73bc6b60935cc7001c9d939109b0dfc0",
      "diskinfo": "[{\"Name\":\"/\",\"Size\":99,\"Use\":15},{\"Name\":\"/boot\",\"Size\":0,\"Use\":0}]",
      "operator": "移动",
      "architecture": "amd64",
      "kernelversion": "5.12.2-1.el7.elrepo.x86_64"
    }
  ]
}

2.查询全部节点信息

请求方法:

GET

请求接口:

/node/list

请求URL示例:

/tingyu/node/list

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 响应码
data array 响应数据,失败则不显示

响应body示例:

{
  "msg": "success",
  "code": 200,
  "data": [
    {
      "area": "江苏省",
      "createtime": "2021-02-06 02:14:42",
      "memory": 32052,
      "address": "abb23dbf59397919f38ad64f4767dae91590138827537",
      "bandwith": 2000,
      "operatingsystem": "linux",
      "cpu": 24,
      "uuid": "tingyu-10fda1d5bb64de1b5badb83156bb099d",
      "operator": "移动",
      "kernelversion": "5.5.11-1.el7.elrepo.x86_64",
      "nodename": "abb23dbf59397919f38ad64f4767dae91590138827537",
      "eth": "[{\"Name\":\"bond0\",\"IP\":\"221.130.100.133\",\"Type\":\"virt\"},{\"Name\":\"docker0\",\"IP\":\"172.17.0.1\",\"Type\":\"virt\"}]",
      "systemos": "CentOS Linux 7 (Core)",
      "osimage": "CentOS Linux 7 (Core)",
      "diskinfo": "[{\"Name\":\"/\",\"Size\":100,\"Use\":10},{\"Name\":\"/data\",\"Size\":1782,\"Use\":404},{\"Name\":\"/boot\",\"Size\":0,\"Use\":0}]",
      "heartbeattime": "2021-07-13 15:44:01",
      "status": "Ready",
      "architecture": "amd64"
    }
  ]
}

七.文件相关接口

1.文件下载

请求方法:

POST

请求接口:

/file/downloadfile

请求参数:

序号 名称 类型 是否必须 描述
1 name string 容器名称
2 filepath string 文件路径

请求URL示例:

/tingyu/file/downloadfile?name=podname&filepath=filepath

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码,成功200,错误500
error string 错误信息,成功则不显示

响应body示例:

{
  "msg": "未知异常,请联系管理员",
  "code": 500,
  "error": "Abnormal error, please contact the administrator"
}

2.根据任务ID获取文件信息

请求方法:

POST

请求接口:

/file/getResponseByJobId

请求参数:

序号 名称 类型 是否必须 描述
1 jobId string 任务ID

请求URL示例:

/tingyu/file/getResponseByJobId?jobId=jobid

响应参数:

名称 类型 描述
msg string 响应结果描述
code int 状态码
error string 错误信息,成功则不显示

响应body示例:

{
  "msg": "未知异常,请联系管理员",
  "code": 500,
  "error": "get file info fail"
}