3.Плата
1. Запрос платы
Адрес интерфейса: /v1/arm/card/apply/add
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.18.0
callbackUrl предоставляется версией v1.19.0
Описание интерфейса:
Запрос ресурсов плат в системе
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | string | |
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| name | Название платы | body | true | string | Название не должно повторяться [ при пакетном создании правило именования: {name}-1,{name}-2 и так далее ] |
| createType | Тип | body | true | integer | 1:плата&Контейнер 2:голая плата |
| armCardOfferingUuid | uuid спецификации платы | body | true | string | Пройдено Получить вычислительную спецификацию платы Получить через интерфейс |
| num | Количество запрашиваемых плат | body | true | integer | За один раз не более 10000. Можно через Получить доступное количество плат Получить через интерфейс максимальное доступное для заявки количество |
| snList | Список SN плат | body | false | list | Длина списка не может превышать 200 |
| armServerUuids | Список uuid серверов | body | false | list | Список uuid серверов |
| os | Операционная система | body | false | string | В настоящее время поддерживаются только Android、debian |
| osVersion | Версия операционной системы | body | false | string | Номер версии операционной системы |
| tagIds | id тега | body | false | Set<Long> | |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса
POST "/openapi/v1/arm/card/apply/add"
body:
{
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"projectId":"7b5a664173f526309e43faf775f09d1d",
"name":"test-api",s
"createType":1,
"armCardOfferingUuid":"f64a987692a711ef9b070242ac12000d",
"num":1,
"snList":["ORG2M32QC2J231400077"],
"armServerUuids":["s-08f5fb859a9d9161c2727bf57e586f02"],
"os":"Android",
"osVersion":"13",
"tagIds":[200,257],
"callbackUrl": "http://127.0.0.1/notice"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| jobs | Результат задачи | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid платы | string | |
| sn | SN платы | string | |
| projectId | Id проекта | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"jobs": [
{
"jobId": "b183d73346ca4b6685b76fae0f0d64e5",
"code": 200,
"sn": "OR65T31QC2D221000072",
"message": "success",
"uuid": "0b4294e92763a79283def0e83bb9303a",
"projectId": "7b5a664173f526309e43faf775f09d1d"
}
]
},
"timestamp": 1733917959524,
"traceId": "E20241211195239510262"
}
2. Отписать плату
Адрес интерфейса: /v1/arm/card/apply/unsubscribe
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v2.8.0
Описание интерфейса:
Отписать плату
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | string | |
| uuids | Список uuid плат | body | true | List<String> | |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса
POST "/openapi/v1/arm/card/apply/unsubscribe"
body:
{
"uuids": ["e123de61c90d0abbd503c48c769bb38a"],
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"callbackUrl": "http://127.0.0.1/notice"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| jobs | Результат задачи | list<object> | |
| jobId | id задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid платы | string | |
| sn | SN платы | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"jobs": [
{
"jobId": "c5ebec444805454c97f8884804796dde",
"code": 200,
"sn": "OR65Q61QC2D240403252",
"message": "success",
"uuid": "ef8f33d103ffc9b79af8709397e3d559"
}
]
},
"timestamp": 1742985329522,
"traceId": "E20250326183529385229"
}
3. Постраничный список плат
Адрес интерфейса: /v2/card/page/list
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.2.0
Описание интерфейса:
Постраничный запрос списка запрошенных плат
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuids | Список uuid узлов | body | false | List |
Условия фильтрации |
| armCardSns | SN платы | body | false | List |
Условия фильтрации, запрос по указанному SN платы, максимум 200 |
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| hardwareModels | Вычислительная модель | body | false | List |
Условия фильтрации |
| levels | Количество запусков | body | false | List |
Условия фильтрации ,1 - 6 число открытий |
| tagIds | Id тега | body | false | string | Условия фильтрации, несколько значений разделяются запятыми |
| tagNames | Название тега | body | false | string | Условия фильтрации, несколько значений разделяются запятыми |
| instanceLimits | Количество контейнеров превышает квоту (0:не превышает, 1:превышает, -1:плата без созданного контейнера или голая плата) | body | false | List |
Если значение превышения равно “-1”, это означает плату с несозданным контейнером или голую плату; если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате>Количество запусков; когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате = количество запусков |
| pageNum | Номер текущей страницы | body | false | integer | По умолчанию 1 |
| pageSize | Количество данных на текущей странице | body | false | integer | По умолчанию 10 |
Пример запроса, в фактическом запросе замените значения параметров:
POST "/openapi/v2/card/page/list?time=1720774436&sign=3bbf04e6c524bc028d543148ea55447cad066f896431980e01d80488d1212807"
body:
{
"pageNum": 1,
"pageSize": 10,
"projectId": "project_admin"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | IPage<object> | |
| records | Список данных текущей страницы | list<object> | |
| uuid | uuid платы | string | |
| sn | SN платы | string | |
| ip | IP платы | string | |
| name | Название платы | string | |
| status | Статус платы | integer | 1нормально、3аномалия、30NMS офлайн、40выключено |
| areaUuid | uuid региона | string | |
| areaName | Название региона | string | |
| nodeUuid | uuid узла | string | |
| nodeName | Название узла | string | |
| armServerUuid | uuid сервера | string | |
| position | Аппаратное расположение платы | string | |
| sortIndex | Аппаратная сортировка платы | integer | |
| level | Количество запусков | integer | 1 - 6 экземпляров |
| hardwareModel | Модель оборудования | String | Orion865;Orion8G2;Cruise10 |
| hardwareCode | Вычислительная спецификация контейнера | string | Orion865_8C_12G;Cruise10_4C_4G |
| rom | версия rom | string | |
| tagNames | Тег | list | |
| createType | Тип платы | integer | Тип платы: 1 - плата с контейнерами, 2 - голая плата |
| armCardOfferingUuid | uuid вычислительной спецификации платы | String | |
| createTime | Время создания | string | |
| instanceNum | Количество контейнеров | integer | Количество контейнеров, фактическое количество контейнеров на плате |
| instanceLimit | Количество контейнеров превышает квоту | integer | Если значение превышения равно “-1”, это означает плату с несозданным контейнером или голую плату; если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате>Количество запусков; когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате = количество запусков |
| total | Общее количество записей | integer | |
| current | Номер текущей страницы | integer | |
| pages | Общее количество страниц | integer | |
| size | Количество строк на странице | integer | |
| traceId | ID обработки запроса | string | |
| timestamp | Временная метка | integer(int64) |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"total": 10,
"current": 1,
"pages": 10,
"size": 1,
"records": [
{
"uuid": "03d0b1e9f4a90e067a3b92b338d586b9",
"sn": "OR65M62QC2D242406627",
"ip": "172.30.0.67",
"armServerUuid": "s-8c2c9cca5853789031ac60d332a2bdfd",
"status": 1,
"createTime": "2025-01-11 14:04:02",
"level": 4,
"position": "1-8",
"sortIndex": "7",
"areaUuid": "f2a584df5e91724a94a31a4a68b5dcd0",
"areaName": "华南",
"nodeUuid": "beb95a81559b894a92c9f1bb13c7aeba",
"nodeName": "qs-fs-pre",
"hardwareCode": "Orion865_2C_4G",
"name": "hf_auto_test-1",
"rom": "OR65L10CDA_V2.2.55_20250715_1708",
"tagNames": [
"HF自动化测试专用-勿动"
],
"createType": 1,
"armCardOfferingUuid": "f64a987692a711ef9b070242ac12000d",
"hardwareModel": "Orion865",
"status": 1,
"instanceNum": 4,
"instanceLimit": 0
}
]
},
"timestamp": 1755765049212,
"traceId": "C20250821163049212129"
}
4. Детали платы
Адрес интерфейса: /v2/card/details/{uuid}
Метод запроса: GET
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.7.6
Описание интерфейса:
Запрос ресурсов плат в системе
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuid | uuid платы | path | true | string |
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| uuid | uuid платы | string | |
| name | Название платы | string | |
| sn | SN платы | string | SN платы |
| cloudVirtualIp | IP платы | string | IP платы |
| createType | Тип платы | integer | Тип платы: 1 - плата с контейнерами, 2 - голая плата |
| refreshRate | Частота обновления | integer | |
| onlineStatus | Онлайн-статус | integer | |
| status | Статус платы | integer | 1нормально、3аномалия、30NMS офлайн、40выключено |
| tagNames | Название тега | List |
|
| armCardOfferingUuid | uuid вычислительной спецификации платы | string | |
| nodeName | Название узла | string | |
| nodeUuid | uuid узла | string | |
| areaUuid | uuid региона | string | |
| areaName | Название региона | string | |
| instanceNum | Количество контейнеров, созданных под платой | integer | |
| instanceOffering | Вычислительная спецификация контейнера | list<object> | Если количество контейнеров равно 0, то пусто |
| uuid | uuid вычислительной спецификации | string | |
| name | Название вычислительной спецификации | string | |
| level | Количество запусков | integer | |
| cpu | количество cpu | integer | |
| memory | Память | integer | |
| instances | Коллекция контейнеров | list<object> | |
| uuid | uuid контейнера | string | |
| name | Название контейнера | string | |
| ip | IP контейнера | string | |
| cceStatus | статус контейнера cce | string | исходный статус контейнера, видимый командой docker ps |
| cceImage | образ cce | string | |
| mounts | Информация монтирования облачного диска | object | |
| cloudDriveUuid | uuid облачного диска | string | |
| mountPath | Каталог монтирования | string | |
| instanceLimit | Количество контейнеров превышает квоту | integer | Если значение превышения равно “-1”, это означает плату с несозданным контейнером или голую плату; если значение превышения равно “1”, это означает общее количество контейнеров, созданных на плате>Количество запусков; когда превышение равно “0”, это означает, что общее количество контейнеров, созданных на плате = количество запусков |
| ssh | информация ssh-подключения | list<object> | |
| password | Пароль | string | |
| expired | Время истечения срока действия | string | |
| port | Порт | integer | |
| ip | ip | string | |
| username | Учетная запись | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"nodeName": "office",
"instanceNum": 3,
"cloudVirtualIp": "172.31.1.18",
"createType": 1,
"nodeUuid": "91a07b982a616b5e5141247b1f6149bc",
"uuid": "c-054154bc2a86f4a1a9464f3fd7675356",
"refreshRate": 30,
"onlineStatus": 1,
"areaName": "TEST",
"name": "TEST-2",
"areaUuid": "1938e94db546063f258e4c8ecfb48871",
"sn": "OR65M22QC1E223700085",
"tagNames": [
"HF自动化测试专用-勿动"
],
"armCardOfferingUuid": "f64a987692a711ef9b070242ac12000d",
"instanceOffering": {
"uuid": "f06fba679ff711eea4070242ac120002",
"name": "Orion865",
"level": 3,
"memory": 4,
"cpu": 3
},
"instances": [
{
"cceStatus": "Up",
"ip": "10.255.0.5",
"name": "TEST-2-i1",
"cceImage": "172.31.0.5:3735/android10:1.0.143",
"uuid": "i-7685f9c1b819484bf15ddbaf643a6ae1"
}
],
"mounts": [
{
"mountPath": "/data/mount/mi802",
"cloudDriveUuid": "3e25ec2f7103483b8abc8e3cde49ebca"
},
{
"mountPath": "/data/mount/mi8029",
"cloudDriveUuid": "088234e7fbd149b0945d6428913577be"
}
],
"ssh": {
"password": "eyJtZXRhIjoiZXlKdVlXMWxJam9pZW5GNUlpd2lkSGx3WlNJNklqSXdJbjA9Iiwic2lnbiI6InBFZGZLaUhQQUpoRE9qWDFhbDM3TFE9PSJ9",
"expired": "2026-04-23 18:41:11",
"port": 2226,
"ip": "192.168.40.86",
"username": "172.31.1.54_22_32_1776940871987"
},
"status": 1,
"instanceLimit": 0
},
"timestamp": 1716969633383,
"traceId": "E20240529160033383074"
}
5. Перезагрузка платы
Адрес интерфейса: /v2/card/powerReset
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.7.4
Описание интерфейса:
Пакетная перезагрузка указанной платы
Примечание:перезагрузка платы приведет к недоступности контейнеров под этой платой
Пример запроса, в фактическом запросе замените значения параметров:
Параметры запроса
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuids | Набор uuid плат | body | true | list |
Пакетная операция |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid платы | string | |
| nodeUuid | uuid платы | string | |
| sn | SN платы | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"code": 0,
"message": "操作成功",
"result": [
{
"jobId": "b59b5f35f7d743d3ad740b8df05277bf",
"code": 200,
"message": "success",
"nodeUuid": "91a07b982a616b5e5141247b1f6149bc",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"sn": "OR65T31QC2D221000025"
}
],
"timestamp": 0,
"traceId": "20220708171922A029"
}
6. Мягкая перезагрузка платы
Адрес интерфейса: /v2/card/reboot
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.19.0
Описание интерфейса:
Пакетная мягкая перезагрузка указанной платы
Примечание:перезагрузка платы приведет к недоступности контейнеров под этой платой
Параметры запроса
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuids | Набор uuid плат | body | true | list |
Пакетная операция |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса, в фактическом запросе замените значения параметров:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | list<object> | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid платы | string | |
| nodeUuid | uuid узла | string | |
| sn | SN платы | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"code": 0,
"message": "操作成功",
"result": [
{
"jobId": "b59b5f35f7d743d3ad740b8df05277bf",
"code": 200,
"message": "success",
"nodeUuid": "91a07b982a616b5e5141247b1f6149bc",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"sn": "OR65T31QC2D221000025"
}
],
"timestamp": 0,
"traceId": "20220708171922A029"
}
7. Доступное количество плат (используется при заявке на плату)
Адрес интерфейса: /v1/arm/card/apply/available/num
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.18.0
Описание интерфейса:
Получить доступное количество плат
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | string | |
| armServerUuid | uuid сервера | body | false | string | Необязательно. Можно через Получить список серверов BMC Получить через интерфейс |
| offeringUuid | uuid спецификации платы | body | true | string | Пройдено Получить вычислительную спецификацию платы Получить через интерфейс |
| snList | Список SN плат | body | false | list | |
| armServerUuids | Список uuid серверов | body | false | list | Список uuid серверов |
| os | Операционная система | body | false | string | В настоящее время поддерживаются только Android、debian |
| osVersion | Версия операционной системы | body | false | string | Номер версии операционной системы |
Пример запроса
POST "/openapi/v1/arm/card/apply/available/num"
body:
{
"offeringUuid":"f64a987692a711ef9b070242ac12000d",
"nodeUuid":"81f62329436eed8f36d0595bf81b63db",
"armServerUuid":"s-08f5fb859a9d9161c2727bf57e586f02"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| armCardNum | Количество доступных плат | integer(int32) | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": {
"armCardNum": 5
},
"timestamp": 1730201010116,
"traceId": "E20241029192330116567"
}
8. Список BMC-серверов(используется для запроса платы)
Адрес интерфейса: /v1/arm/card/apply/ip/list
Метод запроса: POST
Тип данных запроса: application/json
Тип данных ответа: */*,application/json
Поддерживаемая версия: v1.18.0
Описание интерфейса:
Получить список серверов BMC
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | string |
Пример запроса
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | object | |
| ipList | список ip | list<object> | |
| ip | ip | string | |
| uuid | uuid сервера | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа: