You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Dmitriy Smirnov 1703d1ed33
1.3.0
2 weeks ago
demo 1.0.1 6 months ago
src/dynamix_sdk 1.3.0 2 weeks ago
tests 1.3.0 2 weeks ago
.pre-commit-config.yaml 1.0.1 6 months ago
CHANGELOG.md 1.3.0 2 weeks ago
Makefile 1.0.0 9 months ago
README.md 1.3.0 2 weeks ago
pyproject.toml 1.3.0 2 weeks ago
requirements-dev.txt 1.0.1 6 months ago

README.md

Dynamix Python SDK

Описание

Dynamix Python SDK предоставляет удобный интерфейс для интеграции взаимодействия с API Dynamix Enterprise в программный код на языке Python.

Примечание: проект находится в стадии активной разработки, доступный функционал будет расширяться с каждой новой версией.

Системные требования

Соответствие версий платформы версиям SDK

Версия платформы Версия SDK
4.4.0 1.3.x
4.4.0 build 963 1.2.x
4.3.0 1.1.x
4.2.0 1.0.x

Зависимости

Зависимости указаны в конфигурационном файле проекта pyproject.toml:

  • версия Python: раздел [project], ключ requires-python
  • библиотеки: раздел [project], ключ dependencies

Важно: использование более поздних версий Python и/или библиотек допустимо, но работоспособность не гарантируется, так как зависит от обратной совместимости с указанными версиями.

Установка

Установка с помощью системы управления пакетами Python (pip), где version - тег с номером версии SDK (см. доступные теги в репозитории):

pip install git+https://repository.basistech.ru/BASIS/dynamix-python-sdk.git@version

Посмотреть версию установленного пакета:

pip show dynamix-sdk

Использование

Конфигурация

Для работы с SDK необходимо создать экземпляр класса Dynamix, конструктор которого принимает на вход параметры конфигурации SDK.

Авторизация с JWT
from dynamix_sdk import Dynamix


JWT = '...'

dx = Dynamix(
    url='https://...',
    auth=JWT,
)
Авторизация через DECS3O
from dynamix_sdk import Dynamix, DECS3OAuth


dx = Dynamix(
    url='https://...',
    auth=DECS3OAuth(
        url='https://...',
        client_id='...',
        client_secret='...',
    ),
)
Авторизация через BVS
from dynamix_sdk import Dynamix, BVSAuth


dx = Dynamix(
    url='https://...',
    auth=BVSAuth(
        url='https://...',
        domain='...',
        client_id='...',
        client_secret='...',
        username='...',
        password='...',
    ),
)
Задание декораторов для всех вызываемых функций
from dynamix_sdk import Dynamix


Dynamix(
    ...,
    f_decorators=[decorator_1, decorator_2],
)

Декораторы будут применяться к вызываемым функциям SDK в обратном порядке, то есть сначала будет применяться декоратор decorator_2, а потом decorator_1.

Важно: декораторы должны соответствовать аннотации параметра, то есть оставлять без изменений параметры и тип возвращаемого значения функции, иначе применение декораторов приведёт к некорректной работе SDK.

Настройка повторных попыток при 503

По умолчанию SDK при получении кода ответа 503 производит 10 повторных попыток с интервалом 5 секунд. Данное поведение можно скорректировать:

from dynamix_sdk import Dynamix, DECS3OAuth, BVSAuth

# Для HTTP-запросов к Dynamix
Dynamix(
    ...,
    http503_attempts = 10,  # количество повторных попыток при 503
    http503_attempts_interval = 5,  # интервал в секундах между повторными попытками
)

# Для HTTP-запросов к DECS3O
DECS3OAuth(
    ...,
    http503_attempts = 10,  # количество повторных попыток при 503
    http503_attempts_interval = 5,  # интервал в секундах между повторными попытками
)

# Для HTTP-запросов к BVS
BVSAuth(
    ...,
    http503_attempts = 10,  # количество повторных попыток при 503
    http503_attempts_interval = 5,  # интервал в секундах между повторными попытками
)

Отключение проверки сертификата SSL

Важно: отключение проверки сертификата SSL даёт возможность произвести атаку типа MitM, поэтому пользоваться данной возможостью допустимо только в защищённой среде.

import urllib3

from dynamix_sdk import Dynamix, DECS3OAuth, BVSAuth


urllib3.disable_warnings()  # отключение вывода предупреждений безопасности SSL


# Для HTTP-запросов к Dynamix
Dynamix(
    ...,
    verify_ssl=False, # отключение проверки сертификата SSL
)

# Для HTTP-запросов к DECS3O
DECS3OAuth(
    ...,
    verify_ssl=False,  # отключение проверки сертификата SSL
)

# Для HTTP-запросов к BVS
BVSAuth(
    ...,
    verify_ssl=False,  # отключение проверки сертификата SSL
)

Игнорирование проверки совместимости с API

Важно: игнорирование проверки совместимости с API может вызвать непредвиденные ошибки в работе SDK, поэтому использование данного функционала допустимо только принимая на себя всю ответственность за возможные последствия.

При игнорирование выводится только сообщение с предупреждением о несовместимости.

from dynamix_sdk import Dynamix


Dynamix(
    ...,
    ignore_api_compatibility=True,
)

Функциональный интерфейс

Функциональный интерфейс предоставляет функции, соответствующие функциям API платформы.

Вызов функции

Выбор функции, передача параметров и сохранение результата

Передача вложенных параметров
from dynamix_sdk import Dynamix, types


dx = Dynamix(...)

data_disk_1 = types.DiskAPIParamsNM(name='data_disk_1', size_gb=10)

# /cloudapi/kvmx86/create
new_vm_id = dx.api.cloudapi.kvmx86.create(
    rg_id=123,
    name='new_vm',
    cpu_count=1,
    ram_size_mb=1024,
    image_id=456,
    data_disks=[data_disk_1],
)
Передача параметров перечисляемого типа (enum)
from dynamix_sdk import Dynamix, types


dx = Dynamix(...)

# /cloudapi/kvmx86/create
new_vm_id = dx.api.cloudapi.kvmx86.create(
    rg_id=123,
    name='new_vm',
    cpu_count=1,
    ram_size_mb=1024,
    image_id=456,
    chipset=types.Chipset.Q35, # enum
    numa_affinity=types.NumaAffinity.none,  # enum
)

Результат выполнения функции

Тип данных, возвращаемый функцией API SDK зависит от типа данных, возвращаемого соответствующей функцией API платформы.

Если функция API платформы возвращает структуру данных в виде набора пар ключ/значение (с заранее известными ключами), то функция API SDK возвращает модель Pydantic, которая описывает эту структуру.

Модель
import pydantic
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/get
get_result = dx.api.cloudapi.compute.get(vm_id=1)

print(type(get_result))  # <class '....CloudapiComputeGetResultModel'>

print(isinstance(get_result, pydantic.BaseModel))  # True

Обращение к полю модели
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/get
vm_name = dx.api.cloudapi.compute.get(vm_id=1).name

Вложенные структуры данных также представлены в виде моделей Pydantic:

Вложенная модель
import pydantic
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/get
vm_disk1 = dx.api.cloudapi.compute.get(vm_id=1).disks[0]

print(type(vm_disk1))  # <class '....DiskAPIResultNM'>

print(isinstance(vm_disk1, pydantic.BaseModel))  # True

Обращение к полю вложенной модели
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/get
vm_disk1_id = dx.api.cloudapi.compute.get(vm_id=1).disks[0].id

Некоторые поля моделей автоматически генерируются на основе полученных данных от API платформы.
Например, при наличии в модели поля, содержащего временную метку (timestamp), для удобства генерируется поле, содержащее дату и время в виде datetime.

Генерируемое поле
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/get
get_result = dx.api.cloudapi.compute.get(vm_id=1)

# Поле, возвращаемое платформой
print(type(get_result.created_timestamp))  # <class 'int'>

# Генерируемое поле
print(type(get_result.created_datetime))  # <class 'datetime.datetime'>

Если функция API платформы возвращает примитивный тип данных (строка, число), то функция API SDK возвращает экземпляр класса, наследуемый от класса этого типа данных.

Класс, наследуемый от примитивного типа данных
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/kvmx86/create
new_vm_id = dx.api.cloudapi.kvmx86.create(...)

print(type(new_vm_id))  # <class '....CloudapiKvmx86CreateResultInt'>

print(isinstance(new_vm_id, int))  # True

Исключением является булев тип данных. Так как наследование от класса bool в Python недопустимо, функция API SDK возвращает экземпляр класса, который обладает функциональностью для использования в булевых выражениях (реализован метод __bool__), но само булево значение хранится в атрибуте value:

Класс с булевым значением
from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/delete
delete_result = dx.api.cloudapi.compute.delete(vm_id=1)

print(type(delete_result))  # <class '....CloudapiComputeDeleteResultBool'>
print(type(delete_result.value))  # <class 'bool'>

Использование в булевом выражении:

from dynamix_sdk import Dynamix


dx = Dynamix(...)

# /cloudapi/compute/delete
if dx.api.cloudapi.compute.delete(vm_id=1):
    print('The VM has been deleted.')

Все объекты, возвращаемые функциями API SDK, обладают общими специальными атрибутами:

Атрибут Описание
_api_params Модель Pydantic, описывающая параметры, переданные в функцию.
_http_response HTTP-ответ API платформы в виде экземпляра класса requests.Response.

Соответствие названий

В SDK названия из API платформы приведены к стилю "snake_case", принятому в Python, а в некоторых случаях имеют иные отличия, при этом сохраняя смысл исходного названия в API платформы.

Для соответствия названий в SDK используются таблицы соответствия, с помощью которых можно узнать исходное название в API платформы.
Каждая такая таблица хранится в виде словаря в файле YAML:

  • api/path_mapping.yml - таблица соответствия названий частей маршрута (URL path) к функции API.
    Данная таблица содержит только те названия, которые отличаются от названий в API платформы.

  • api/name_mapping.yml - таблица соответствия названий параметров функций и полей возвращаемых данных.
    Данная таблица содержит все названия, в том числе и те, которые совпадают с названиями в API платформы.
    Кроме общих соответствий, данная таблица также содержит индивидуальные соответствия, которые применяются только к классу модели, указанному в формате sdk_name__model_class_name.

Типы данных SDK

Все типы данных (классы) SDK, которые могут пригодиться при разработке ПО с использованием SDK, доступны через модуль dynamix_sdk.types.

Ошибки и исключения (exceptions)

SDK может вызывать исключения, которые должны быть обработаны в соответствии с требованиями к разрабатываемому вами ПО.

Ошибки валидации данных

SDK производит валидацию параметров функций API с помощью библиотеки Pydantic.
Поэтому, при ошибке валидации, будет вызвано исключение pydantic.ValidationError.

Таким же образом валидируются данные HTTP-ответов API платформы. Причиной ошибки валидации данных HTTP-ответа API платформы может быть:

  1. Несоответствие версии SDK и версии платформы.
  2. Программная ошибка, допущенная при разработке SDK или платформы. Получить подтверждение наличия такой ошибки, а также ускорить её устранение, можно сообщив о ней.

Получить подробную информацию об исключении pydantic.ValidationError можно в соответствующем разделе официальной документации Pydantic (ссылка ведёт на документацию для последней версии, поэтому важно выбрать версию, соответствующую используемой в SDK).

Ошибки HTTP

SDK для выполнения HTTP-запросов использует библиотеку Requests.
Поэтому, при ошибке HTTP-подключения, будет вызвано соответствующее исключение библиотеки Requests.

Для проверки соответствует ли код ответа успешному выполнению запроса, SDK вызывает метод requests.Response.raise_for_status(), поэтому при неуспешном HTTP-запросе также будет вызвано исключение библиотеки Requests.

Примечание: если код ответа 503, то SDK предпримет несколько повторных попыток. Подробнее в разделе Конфигурация.

Обработка ошибок HTTP
from requests.exceptions import RequestException, HTTPError
from dynamix_sdk import Dynamix


dx = Dynamix(...)

vm_id = 1

try:
    get_result = dx.api.cloudapi.compute.get(vm_id=vm_id)
except HTTPError as e:
    resp = e.response
    if resp.status_code == 404:
        print(f'The VM ID={vm_id} not found.')
    else:
        print(f'{e}: {resp.text}')
except RequestException as e:
    print(e)

Подробную информацию об исключениях библиотеки Requests можно получить в соответствующем разделе официальной документации Requests.

Использование исключения SDK

Для возможности получать дополнительную информацию о функциях SDK при ошибках HTTP-запросов, в SDK есть возможность оборачивать все исключения requests.exceptions.RequestException в исключение dynamix_sdk.exceptions.RequestException:

class RequestException(Exception):
    orig_exception: requests.exceptions.RequestException
    func_name: str
    func_kwargs: None | dict = None

Чтобы включить использование исключения dynamix_sdk.exceptions.RequestException, необходимо передать в конструкторы классов Dynamix, DECS3OAuth, BVSAuth параметр wrap_request_exceptions=True

Ошибка несовместимости с API

SDK производит проверку совместимости с API. При несовместимости будет вызвано исключение exceptions.IncompatibleAPIError.

Доступный функционал

Способы авторизации

  • с JWT
  • через DECS3O
  • через BVS

Подробнее в разделе Конфигурация.

Функции API

Cloudapi

account
  • /cloudapi/account/addUser
  • /cloudapi/account/delete
  • /cloudapi/account/deleteUser
  • /cloudapi/account/disable
  • /cloudapi/account/enable
  • /cloudapi/account/get
  • /cloudapi/account/getResourceConsumption
  • /cloudapi/account/list
  • /cloudapi/account/listDeleted
  • /cloudapi/account/restore
  • /cloudapi/account/update
  • /cloudapi/account/updateUser
audit
  • /cloudapi/audit/get
  • /cloudapi/audit/list
bservice
  • /cloudapi/bservice/create
  • /cloudapi/bservice/delete
  • /cloudapi/bservice/disable
  • /cloudapi/bservice/enable
  • /cloudapi/bservice/get
  • /cloudapi/bservice/groupAdd
  • /cloudapi/bservice/groupComputeRemove
  • /cloudapi/bservice/groupGet
  • /cloudapi/bservice/groupParentAdd
  • /cloudapi/bservice/groupParentRemove
  • /cloudapi/bservice/groupRemove
  • /cloudapi/bservice/groupResize
  • /cloudapi/bservice/groupStart
  • /cloudapi/bservice/groupStop
  • /cloudapi/bservice/groupUpdate
  • /cloudapi/bservice/groupUpdateExtnet
  • /cloudapi/bservice/groupUpdateVins
  • /cloudapi/bservice/list
  • /cloudapi/bservice/listDeleted
  • /cloudapi/bservice/migrateToZone
  • /cloudapi/bservice/restore
  • /cloudapi/bservice/snapshotCreate
  • /cloudapi/bservice/snapshotDelete
  • /cloudapi/bservice/snapshotList
  • /cloudapi/bservice/snapshotRollback
  • /cloudapi/bservice/start
  • /cloudapi/bservice/stop
compute
  • /cloudapi/compute/abort_shared_snapshot_merge
  • /cloudapi/compute/affinityLabelRemove
  • /cloudapi/compute/affinityLabelSet
  • /cloudapi/compute/affinityRelations
  • /cloudapi/compute/affinityRuleAdd
  • /cloudapi/compute/affinityRuleRemove
  • /cloudapi/compute/affinityRulesClear
  • /cloudapi/compute/antiAffinityRuleAdd
  • /cloudapi/compute/antiAffinityRuleRemove
  • /cloudapi/compute/antiAffinityRulesClear
  • /cloudapi/compute/attachGpu
  • /cloudapi/compute/attachPciDevice
  • /cloudapi/compute/bootDiskSet
  • /cloudapi/compute/cdEject
  • /cloudapi/compute/cdInsert
  • /cloudapi/compute/changeMac
  • /cloudapi/compute/change_mtu
  • /cloudapi/compute/change_security_groups
  • /cloudapi/compute/changeIp
  • /cloudapi/compute/changeLinkState
  • /cloudapi/compute/clone
  • /cloudapi/compute/clone_abort
  • /cloudapi/compute/createTemplate
  • /cloudapi/compute/delete
  • /cloudapi/compute/deleteCustomFields
  • /cloudapi/compute/detachGpu
  • /cloudapi/compute/detachPciDevice
  • /cloudapi/compute/disable
  • /cloudapi/compute/diskAdd
  • /cloudapi/compute/diskAttach
  • /cloudapi/compute/diskDel
  • /cloudapi/compute/diskDetach
  • /cloudapi/compute/diskMigrate
  • /cloudapi/compute/diskSwitchToReplication
  • /cloudapi/compute/enable
  • /cloudapi/compute/get
  • /cloudapi/compute/getConsoleUrl
  • /cloudapi/compute/guest_agent_disable
  • /cloudapi/compute/guest_agent_enable
  • /cloudapi/compute/guest_agent_execute
  • /cloudapi/compute/guest_agent_feature_update
  • /cloudapi/compute/list
  • /cloudapi/compute/listDeleted
  • /cloudapi/compute/migrateToZone
  • /cloudapi/compute/moveToRg
  • /cloudapi/compute/netAttach
  • /cloudapi/compute/netDetach
  • /cloudapi/compute/pause
  • /cloudapi/compute/pfwAdd
  • /cloudapi/compute/pfwDel
  • /cloudapi/compute/pfwList
  • /cloudapi/compute/pinToStack
  • /cloudapi/compute/powerCycle
  • /cloudapi/compute/reboot
  • /cloudapi/compute/redeploy
  • /cloudapi/compute/reset
  • /cloudapi/compute/resize
  • /cloudapi/compute/restore
  • /cloudapi/compute/resume
  • /cloudapi/compute/setCustomFields
  • /cloudapi/compute/snapshotCreate
  • /cloudapi/compute/snapshotList
  • /cloudapi/compute/snapshotRollback
  • /cloudapi/compute/start
  • /cloudapi/compute/stop
  • /cloudapi/compute/tagAdd
  • /cloudapi/compute/tagRemove
  • /cloudapi/compute/unpinFromStack
  • /cloudapi/compute/update
  • /cloudapi/compute/userGrant
  • /cloudapi/compute/userList
  • /cloudapi/compute/userRevoke
  • /cloudapi/compute/userUpdate
disks
  • /cloudapi/disks/change_disk_storage_policy
  • /cloudapi/disks/create
  • /cloudapi/disks/delete
  • /cloudapi/disks/deleteDisks
  • /cloudapi/disks/get
  • /cloudapi/disks/limitIO
  • /cloudapi/disks/list
  • /cloudapi/disks/listDeleted
  • /cloudapi/disks/listTypes
  • /cloudapi/disks/listUnattached
  • /cloudapi/disks/rename
  • /cloudapi/disks/resize2
  • /cloudapi/disks/restore
  • /cloudapi/disks/share
  • /cloudapi/disks/snapshotDelete
  • /cloudapi/disks/snapshotRollback
  • /cloudapi/disks/unshare
dpdknet
  • /cloudapi/dpdknet/get
  • /cloudapi/dpdknet/list
extnet
  • /cloudapi/extnet/get
  • /cloudapi/extnet/getDefault
  • /cloudapi/extnet/list
flipgroup
  • /cloudapi/flipgroup/computeAdd
  • /cloudapi/flipgroup/computeRemove
  • /cloudapi/flipgroup/create
  • /cloudapi/flipgroup/delete
  • /cloudapi/flipgroup/edit
  • /cloudapi/flipgroup/get
  • /cloudapi/flipgroup/list
image
  • /cloudapi/image/change_storage_policy
  • /cloudapi/image/create
  • /cloudapi/image/createVirtual
  • /cloudapi/image/delete
  • /cloudapi/image/get
  • /cloudapi/image/link
  • /cloudapi/image/list
  • /cloudapi/image/rename
k8ci
  • /cloudapi/k8ci/get
  • /cloudapi/k8ci/list
  • /cloudapi/k8ci/listDeleted
k8s
  • /cloudapi/k8s/create
  • /cloudapi/k8s/delete
  • /cloudapi/k8s/deleteMasterFromGroup
  • /cloudapi/k8s/deleteWorkerFromGroup
  • /cloudapi/k8s/disable
  • /cloudapi/k8s/enable
  • /cloudapi/k8s/get
  • /cloudapi/k8s/getConfig
  • /cloudapi/k8s/getNodeAnnotations
  • /cloudapi/k8s/getNodeLabels
  • /cloudapi/k8s/getNodeTaints
  • /cloudapi/k8s/list
  • /cloudapi/k8s/listDeleted
  • /cloudapi/k8s/migrateToZone
  • /cloudapi/k8s/restore
  • /cloudapi/k8s/start
  • /cloudapi/k8s/stop
  • /cloudapi/k8s/update
  • /cloudapi/k8s/updateWorkerNodesMetaData
  • /cloudapi/k8s/workerAdd
  • /cloudapi/k8s/workerReset
  • /cloudapi/k8s/workerRestart
  • /cloudapi/k8s/workersGroupAdd
  • /cloudapi/k8s/workersGroupDelete
  • /cloudapi/k8s/workersGroupGetByName
kvmx86
  • /cloudapi/kvmx86/create
  • /cloudapi/kvmx86/createBlank
lb
  • /cloudapi/lb/backendCreate
  • /cloudapi/lb/backendDelete
  • /cloudapi/lb/backendServerAdd
  • /cloudapi/lb/backendServerDelete
  • /cloudapi/lb/backendServerUpdate
  • /cloudapi/lb/backendUpdate
  • /cloudapi/lb/configReset
  • /cloudapi/lb/create
  • /cloudapi/lb/delete
  • /cloudapi/lb/disable
  • /cloudapi/lb/enable
  • /cloudapi/lb/frontendBind
  • /cloudapi/lb/frontendBindDelete
  • /cloudapi/lb/frontendBindingUpdate
  • /cloudapi/lb/frontendCreate
  • /cloudapi/lb/frontendDelete
  • /cloudapi/lb/get
  • /cloudapi/lb/list
  • /cloudapi/lb/listDeleted
  • /cloudapi/lb/makeHighlyAvailable
  • /cloudapi/lb/migrateToZone
  • /cloudapi/lb/restart
  • /cloudapi/lb/restore
  • /cloudapi/lb/start
  • /cloudapi/lb/stop
  • /cloudapi/lb/update
  • /cloudapi/lb/updateSysctlParams
locations
  • /cloudapi/locations/getUrl
  • /cloudapi/locations/list
pcidevice
  • /cloudapi/pcidevice/list
rg
  • /cloudapi/rg/accessGrant
  • /cloudapi/rg/accessRevoke
  • /cloudapi/rg/add_storage_policy
  • /cloudapi/rg/create
  • /cloudapi/rg/del_storage_policy
  • /cloudapi/rg/delete
  • /cloudapi/rg/disable
  • /cloudapi/rg/enable
  • /cloudapi/rg/get
  • /cloudapi/rg/getResourceConsumption
  • /cloudapi/rg/list
  • /cloudapi/rg/listDeleted
  • /cloudapi/rg/removeDefNet
  • /cloudapi/rg/restore
  • /cloudapi/rg/setDefNet
  • /cloudapi/rg/update
security_group
  • /cloudapi/security_group/get
  • /cloudapi/security_group/create
  • /cloudapi/security_group/create_rule
  • /cloudapi/security_group/delete
  • /cloudapi/security_group/delete_rule
  • /cloudapi/security_group/list
  • /cloudapi/security_group/update
sep
  • /cloudapi/sep/listAvailableSepAndPools
stack
  • /cloudapi/stack/get
  • /cloudapi/stack/list
storage_policy
  • /cloudapi/storage_policy/get
  • /cloudapi/storage_policy/list
tasks
  • /cloudapi/tasks/get
  • /cloudapi/tasks/list
trunk
  • /cloudapi/trunk/get
  • /cloudapi/trunk/list
user
  • /cloudapi/user/apiList
  • /cloudapi/user/brief
  • /cloudapi/user/get
  • /cloudapi/user/getResourceConsumption
  • /cloudapi/user/setData
vfpool
  • /cloudapi/vfpool/get
  • /cloudapi/vfpool/list
vgpu
  • /cloudapi/vgpu/list
vins
  • /cloudapi/vins/createInAccount
  • /cloudapi/vins/createInRG
  • /cloudapi/vins/delete
  • /cloudapi/vins/disable
  • /cloudapi/vins/dnsApply
  • /cloudapi/vins/enable
  • /cloudapi/vins/extNetConnect
  • /cloudapi/vins/extNetDisconnect
  • /cloudapi/vins/extNetList
  • /cloudapi/vins/get
  • /cloudapi/vins/ipList
  • /cloudapi/vins/ipRelease
  • /cloudapi/vins/ipReserve
  • /cloudapi/vins/list
  • /cloudapi/vins/listDeleted
  • /cloudapi/vins/migrateToZone
  • /cloudapi/vins/natRuleAdd
  • /cloudapi/vins/natRuleDel
  • /cloudapi/vins/natRuleList
  • /cloudapi/vins/restore
  • /cloudapi/vins/staticRouteAdd
  • /cloudapi/vins/staticRouteDel
  • /cloudapi/vins/staticRouteList
  • /cloudapi/vins/vnfdevRedeploy
  • /cloudapi/vins/vnfdevRestart
zone
  • /cloudapi/zone/get
  • /cloudapi/zone/list

Cloudbroker

account
  • /cloudbroker/account/add_storage_policy
  • /cloudbroker/account/addUser
  • /cloudbroker/account/addZone
  • /cloudbroker/account/create
  • /cloudbroker/account/del_storage_policy
  • /cloudbroker/account/delete
  • /cloudbroker/account/deleteAccounts
  • /cloudbroker/account/deleteUser
  • /cloudbroker/account/disable
  • /cloudbroker/account/disableAccounts
  • /cloudbroker/account/enable
  • /cloudbroker/account/enableAccounts
  • /cloudbroker/account/get
  • /cloudbroker/account/getResourceConsumption
  • /cloudbroker/account/list
  • /cloudbroker/account/listDeleted
  • /cloudbroker/account/removeZone
  • /cloudbroker/account/restore
audit
  • /cloudbroker/audit/list
compute
  • /cloudbroker/compute/change_security_groups
  • /cloudbroker/compute/clone
  • /cloudbroker/compute/clone_abort
  • /cloudbroker/compute/migrate_storage_list
  • /cloudbroker/compute/start_migration_in
  • /cloudbroker/compute/start_migration_out
  • /cloudbroker/compute/stop_migration_in
  • /cloudbroker/compute/stop_migration_out
disks
  • /cloudbroker/disks/migrate
  • /cloudbroker/disks/migrate_abort
  • /cloudbroker/disks/migrate_status
image
  • /cloudbroker/image/change_storage_policy
node
  • cloudbroker/node/add_ssh_identity
  • cloudbroker/node/get_ssh_identity
  • cloudbroker/node/update_description
rg
  • /cloudbroker/rg/add_storage_policy
  • /cloudbroker/rg/del_storage_policy
security_group
  • /cloudbroker/security_group/create
  • /cloudbroker/security_group/create_rule
  • /cloudbroker/security_group/delete
  • /cloudbroker/security_group/delete_rule
  • /cloudbroker/security_group/get
  • /cloudbroker/security_group/list
  • /cloudbroker/security_group/update
storage_policy
  • /cloudbroker/storage_policy/add_pool
  • /cloudbroker/storage_policy/create
  • /cloudbroker/storage_policy/delete
  • /cloudbroker/storage_policy/delete_pool
  • /cloudbroker/storage_policy/disable
  • /cloudbroker/storage_policy/enable
  • /cloudbroker/storage_policy/get
  • /cloudbroker/storage_policy/list
  • /cloudbroker/storage_policy/update
user
  • /cloudbroker/user/block
  • /cloudbroker/user/create
  • /cloudbroker/user/get
  • /cloudbroker/user/list
  • /cloudbroker/user/unblock
vins
  • /cloudbroker/vins/update
vnfdev
  • /cloudbroker/vnfdev/migrate_abort

System

info
  • /system/info/version
usermanager
  • /system/usermanager/whoami