外观
1. 资源下单(购买)
说明:此接口为非GPU容器云类型的资源下单(购买)
接口路径
地址:https://console.casdao.com:9001/casdao/api/v1.0/expense/customer/recharge/addition
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 说明 |
---|---|---|---|
userId | 必选 | 整数型 | 用户ID |
username | 必选 | 字符串 | 用户名称 |
sale | 选填 | 字符串 | 销售员账号,可为空 |
number | 必选 | 字符串 | 订单号,规则SLHL+年月日时分秒毫秒。示例:SLHL20240401131508214 |
type | 必选 | 整数型 | 订单类型,固定值1 |
status | 必选 | 整数型 | 订单状态,固定值2 |
totalContractAmount | 必选 | 数字型 | 合同总金额 |
totalRechargeAmount | 必选 | 数字型 | 充值总金额 |
expiration | 必选 | 整数型 | 过期时间(毫秒) |
departmentId | 必选 | 整数型 | 组织ID |
departmentName | 必选 | 字符串 | 组织名称 |
digest | 必选 | 字符串 | MD5值,获取方法见 摘要和信息体的获取方法 |
body | 必选 | 字符串 | 信息体,获取方法见 摘要和信息体的获取方法 |
accountRechargeDetailInfoList | 必选 | 数组型 | 资源信息,见 下表 |
资源信息项
资源数组参数 | 选项 | 类型 | 说明 |
---|---|---|---|
quantity | 必选 | 数字型 | 资源数量 |
duration | 必选 | 数字型 | 使用周期 |
contractUnitPrice | 选填 | 数字型 | 合同单价 |
contractAmount | 必选 | 数字型 | 本资源合同金额 |
standardUnitPrice | 必选 | 数字型 | 标准单价 |
standardAmount | 必选 | 数字型 | 本资源标准金额 |
totalContractAmount | 必选 | 数字型 | 合同总金额 |
totalRechargeAmount | 必选 | 数字型 | 充值总金额 |
resourceId | 必选 | 整数型 | 资源id |
resourceTypeId | 必选 | 整数型 | 资源类型id |
resourceTypeCategory | 必选 | 字符串 | 资源类型种类 |
整体示例
json
{
"userId": 78,
"username": "lizhepod200",
"sale": "",
"departmentId": 2,
"departmentName": "算力互联",
"totalContractAmount": 10003,
"totalRechargeAmount": 10003,
"number": "SLHL20240403151518861",
"type": 1,
"status": 2,
"expiration": 1800000,
"accountRechargeDetailInfoList": [
{
"quantity": 1,
"duration": "100",
"contractUnitPrice": 100,
"contractAmount": 10000,
"standardUnitPrice": 100,
"standardAmount": 10000,
"resourceId": 11008,
"resourceTypeId": 12,
"resourceTypeCategory": 2
},
{
"quantity": 1,
"duration": "1",
"contractUnitPrice": 3,
"contractAmount": 3,
"standardUnitPrice": 3,
"standardAmount": 3,
"resourceId": 6,
"resourceTypeId": 5,
"resourceTypeCategory": 5
}
],
"digest": "cf2ea71ea791d57cd138ed03e14b2681",
"body": "eyJ1c2VySWQiOjc4LCJ1c2VybmFtZSI6ImxpemhlcG9kMjAwIiwic2FsZSI6IiIsImRlcGFydG1lbnRJZCI6MiwiZGVwYXJ0bWVudE5hbWUiOiLnrpflipvkupLogZQiLCJ0b3RhbENvbnRyYWN0QW1vdW50IjoxMDAwMywidG90YWxSZWNoYXJnZUFtb3VudCI6MTAwMDMsIm51bWJlciI6IlNMSEwyMDI0MDQwMzE1MTUxODg2MSIsInR5cGUiOjEsInN0YXR1cyI6MiwiZXhwaXJhdGlvbiI6MTgwMDAwMCwiYWNjb3VudFJlY2hhcmdlRGV0YWlsSW5mb0xpc3QiOlt7InF1YW50aXR5IjoxLCJkdXJhdGlvbiI6IjEwMCIsImNvbnRyYWN0VW5pdFByaWNlIjoxMDAsImNvbnRyYWN0QW1vdW50IjoxMDAwMCwic3RhbmRhcmRVbml0UHJpY2UiOjEwMCwic3RhbmRhcmRBbW91bnQiOjEwMDAwLCJyZXNvdXJjZUlkIjoxMTAwOCwicmVzb3VyY2VUeXBlSWQiOjEyLCJyZXNvdXJjZVR5cGVDYXRlZ29yeSI6Mn0seyJxdWFudGl0eSI6MSwiZHVyYXRpb24iOiIxIiwiY29udHJhY3RVbml0UHJpY2UiOjMsImNvbnRyYWN0QW1vdW50IjozLCJzdGFuZGFyZFVuaXRQcmljZSI6Mywic3RhbmRhcmRBbW91bnQiOjMsInJlc291cmNlSWQiOjYsInJlc291cmNlVHlwZUlkIjo1LCJyZXNvdXJjZVR5cGVDYXRlZ29yeSI6NX1dLCJkaWdlc3QiOiJVd3g3Nk55cCJ9"
}
摘要和信息体的获取方法
说明:入参时不带digest和body,通过特定方法追加digest和body,参考方法如下:
js
/**
* @description MD5 参数加密
* @param {Object} data 参数
* @param {String} domString 加密字符串
* @param {String} placeholder 占位符
* @return {Object}
*/
export function paramMD5(data, domString, placeholder) {
let param = {
...data,
digest: placeholder,
};
const body = JSON.stringify(param);
param.digest = domString;
param.digest = md5(JSON.stringify(param));
param.body = Base64.encode(body);
for (let i = 0; i < 12; i++) {
param.digest = md5(param.digest);
}
// digest 用MD5再加密12次
return param;
}
// 调用方法paramMD5
paramMD5(data,`1FhwI1oj${dayjs().format('YYYYMMDDHH')}`,'Uwx76Nyp');
/**
* @description 入参说明
* @param data 为示例json中不带digest和body的json体
* @param 1FhwI1oj 为固定字符串
* @param dayjs().format('YYYYMMDDHH') 为格式化的时间,精确到小时,如2024040112
* @param Uwx76Nyp 为固定字符串
*/
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
json
{
'code': 200,
'msg': null,
'data': null
}
2. 账单
说明:此接口需要 Token 调用,需要先调用登录接口换取 Token,只支持查询此 Token 所对应用户的账单数据。
接口路径
地址:https://console.casdao.com:9001/casdao/api/v1.0/expense/customer/bill/list
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 | 说明 |
---|---|
X-Auth-Token | Token 值 |
请求体
请求参数 | 选项 | 类型 | 说明 |
---|---|---|---|
chargePeriodStartTime | 可选 | 字符串 | 开始时间,格式:2024-03-25 00:00:00(与 year 和 month 二选一) |
chargePeriodEndTime | 可选 | 字符串 | 结束时间,格式:2024-03-25 23:59:59(与 year 和 month 二选一) |
pageNum | 必选 | 整数型 | 此接口为固定每页 20 条记录,此参数为第几页 |
keyword | 可选 | 字符串 | 用户名,支持模糊搜索 |
year | 可选 | 整数型 | 年份,格式:2024(与 chargePeriodStartTime 和 chargePeriodEndTime 二选一) |
month | 可选 | 整数型 | 月份,格式:1-12(与 chargePeriodStartTime 和 chargePeriodEndTime 二选一) |
示例
二选一查询方式
json
{
"chargePeriodStartTime": "2024-03-25 00:00:00",
"chargePeriodEndTime": "2024-03-25 23:59:59",
"keyword": "zhangsan",
"pageNum": 1
}
或
json
{
"year": 2024,
"month": 3,
"keyword": "zhangsan",
"pageNum": 1
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据 |
示例
json
{
"code": 200,
"msg": null,
"data": {
"records": [
{
"id": 1037868,
"standardUnitPrice": null, // 忽略
"standardAmountBill": null, // 忽略
"cpuStandardUnitPrice": 0.00000, // cpu标准单价(HPC共享或GPU云容器)
"cpuStandardAmountBill": 0.00000, // cpu使用标准金额(HPC共享或GPU云容器)
"cpuCore": "7", // cpu使用核心数(HPC共享或GPU云容器)
"memoryStandardUnitPrice": 0.00000, // 内存标准单价(HPC共享或GPU云容器)
"memoryStandardAmountBill": 0.00000, // 内存使用标准金额(HPC共享或GPU云容器)
"memory": "56", // 内存使用大小,单位为(GB)(HPC共享或GPU云容器)
"gpuStandardUnitPrice": 2.35000, // gpu标准单价(HPC共享或GPU云容器)
"gpuStandardAmountBill": 0.87406, // gpu使用标准金额(HPC共享或GPU云容器)
"gpuCore": "1", // gpu使用卡数(HPC共享或GPU云容器)
"gpuMemoryStandardUnitPrice": 0.00000, // gpu显存标准单价(HPC共享或GPU云容器)
"gpuMemoryStandardAmountBill": 0.00000, // gpu显存使用标准金额(HPC共享或GPU云容器)
"gpuMemory": "0", // gpu显存使用大小,单位为(GB)(HPC共享或GPU云容器)
"partition": "g102", // HPC队列名称或容器所在节点名称
"billTime": "2024-03-19 15:38:36", // 账单扣费时间
"accountResourceId": 2197,
"resourceId": 111000, // 资源id
"resourceName": "N-4090-24", // 资源名称
"resourceTypeId": 10, // 资源类型id
"resourceTypeName": "GPU容器云", // 资源类型名称
"specification": "GPU:NVIDIA GeForce RTX 4090(显存:24G)\nCPU:AMD EPYC 7542 2.9GHz\n数据盘:SSD(高性能存储)\n共享盘:文件系统(持久化存储)", // 资源规格
"quantity": null,
"resourceUnit": "TB/天",
"chargePeriodStartTime": "2024-03-19 15:16:17", // 资源开始时间
"chargePeriodEndTime": "2024-03-19 15:38:36", // 资源结束时间
"resourcePeriodEndTime": "2024-03-19 15:38:36",
"feeDeductionType": 1,
"jobId": "keen-island-9234-789c457494-ppfr4", // HPC作业名称或容器pod名称
"clusterAccountName": "sl-wuting"
}
"total": 1, // 账单总数量
"size": 20, // 每页记录数
"current": 1, // 当前页数
"pages": 1 // 总页数
}
}
3. 扣费
说明:此接口为容器扣费接口,调用此接口会立即出账单。
接口路径
地址:https://console.casdao.com:9001/casdao/api/v1.0/container/fee/addition
请求方式
POST 方式,请求参数为 JSON 格式
输入说明
请求头
请求头 |
---|
无 |
请求体
请求参数 | 选项 | 类型 | 说明 |
---|---|---|---|
username | 必选 | 字符串 | 用户名 |
type | 必选 | 字符串 | 固定值 DELETE |
status | 必选 | 整数型 | 固定值 1 |
namespace | 必选 | 字符串 | 名称空间 |
nodeName | 必选 | 字符串 | 节点名称 |
cpu | 必选 | 整数型 | CPU使用核心数 |
gpu | 必选 | 整数型 | GPU使用卡数 |
memory | 必选 | 整数型 | 内存使用大小,单位为(GB) |
uid | 必选 | 字符串 | Pod UID(metadata.uid) |
name | 必选 | 字符串 | Pod 名称 |
ownerUid | 可选 | 字符串 | Pod所属UID(metadata.ownerReferences.uid) |
ownerName | 可选 | 字符串 | Pod所属名称(metadata.ownerReferences.name) |
image | 必选 | 字符串 | 镜像全名称 |
startTime | 必选 | 字符串 | 开始时间,格式:2024-03-25 00:00:00 |
endTime | 必选 | 字符串 | 结束时间,格式:2024-03-25 23:59:59 |
departmentId | 必选 | 整数型 | 组织ID |
departmentName | 必选 | 字符串 | 组织名称 |
示例
json
{
'username': 'duxw1143',
'type': 'DELETE',
'status': 1,
'namespace': 'duxw1143',
'nodeName': 'g105',
'cpu': 14,
'gpu': 2,
'memory': 112,
'uid': '2b49762c-d4b0-4a4e-a1e5-434ab8c0f462',
'name': 'objective-lullaby-7994-7cbf8c8b74-hvgfq',
'ownerUid': null,
'ownerName': null,
'image': 'suzhou.harbor.com/userupload/ubuntu:12.1.0-devel-ubuntu22.04-v0.0.1',
'startTime': '2024-03-29 16:14:33',
'endTime': '2024-03-29 16:15:20',
'departmentId': 2,
'departmentName': '算力互联'
}
输出说明
请求参数 | 说明 |
---|---|
code | 响应码,成功为 200,非 200 状态码为失败,参考 msg 错误信息 |
msg | 响应信息,成功状态下为 null,失败状态下为具体错误信息 |
data | 响应数据**(提交参数)** |
示例
json
{
'code': 200,
'msg': null,
'data':
{
'username': 'duxw1143',
'type': 'DELETE',
'status': 1,
'namespace': 'duxw1143',
'nodeName': 'g105',
'cpu': 14,
'gpu': 2,
'memory': 112,
'uid': '2b49762c-d4b0-4a4e-a1e5-434ab8c0f462',
'name': 'objective-lullaby-7994-7cbf8c8b74-hvgfq',
'ownerUid': null,
'ownerName': null,
'image': 'suzhou.harbor.com/userupload/ubuntu:12.1.0-devel-ubuntu22.04-v0.0.1',
'startTime': '2024-03-29 16:14:33',
'endTime': '2024-03-29 16:15:20',
'departmentId': 2,
'departmentName': '算力互联',
'createTime': '2024-03-29 16:15:21',
'phase': null
}
}