1 Commits
1.5.1 ... 1.4.2

Author SHA1 Message Date
b08d8e672a 1.4.2 2026-06-17 17:54:22 +07:00
40 changed files with 180 additions and 123 deletions

View File

@@ -1,14 +1,11 @@
# Список изменений в версии 1.5.1
# Список изменений в версии 1.4.2
## Добавлено
| Идентификатор<br>задачи | Описание |
| --- | --- |
## Удалено
| Идентификатор<br>задачи | Описание |
| --- | --- |
## Исправлено
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BPYS-1534 | Функция `cloudapi.k8s.get`: данные для поля `node_groups.master` возвращались в виде dict. В моделе результата у типа поля `node_groups.master` добавлена возможность возвращать модель в приоритете. |
| BPYS-1572 | Функция `cloudapi.rg.list_deleted`: вызов функции завершался ошибкой валидации полей `data.access_seps_pools`, `data.dirty` и `data.uniqPools`. Исправлена ошибка в таблице соответствия названий в файле `name_mapping.yml`. В модель результата добавлено поле `data.dirty`. |
| BPYS-1531 | Функция `cloudapi.k8s.get`: вызов функции завершался ошибками валидации вложенных полей `k8sGroups.masters` для удалённого объекта. |

View File

@@ -35,7 +35,6 @@
| Версия платформы | Версия SDK |
| --- | --- |
| 4.6.0 | 1.5.x |
| 4.5.0 | 1.4.x |
| 4.4.0 | 1.3.x |
| 4.4.0 build 963 | 1.2.x |
@@ -610,6 +609,7 @@ class RequestException(Exception):
- /cloudapi/bservice/groupParentAdd
- /cloudapi/bservice/groupParentRemove
- /cloudapi/bservice/groupRemove
- /cloudapi/bservice/groupResize
- /cloudapi/bservice/groupStart
- /cloudapi/bservice/groupStop
- /cloudapi/bservice/groupUpdate
@@ -651,6 +651,7 @@ class RequestException(Exception):
- /cloudapi/compute/changeIp
- /cloudapi/compute/changeLinkState
- /cloudapi/compute/clone
- /cloudapi/compute/clone_abort
- /cloudapi/compute/createTemplate
- /cloudapi/compute/delete
- /cloudapi/compute/deleteCustomFields
@@ -715,6 +716,7 @@ class RequestException(Exception):
- /cloudapi/disks/limitIO
- /cloudapi/disks/list
- /cloudapi/disks/listDeleted
- /cloudapi/disks/listTypes
- /cloudapi/disks/listUnattached
- /cloudapi/disks/rename
- /cloudapi/disks/resize2
@@ -795,6 +797,7 @@ class RequestException(Exception):
- /cloudapi/k8s/stop
- /cloudapi/k8s/update
- /cloudapi/k8s/updateWorkerNodesMetaData
- /cloudapi/k8s/workerAdd
- /cloudapi/k8s/workerReset
- /cloudapi/k8s/workerRestart
- /cloudapi/k8s/workersGroupAdd
@@ -1017,6 +1020,7 @@ class RequestException(Exception):
- /cloudbroker/compute/change_read_only
- /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
@@ -1041,9 +1045,9 @@ class RequestException(Exception):
<details><summary>node</summary>
- /cloudbroker/node/add_ssh_identity
- /cloudbroker/node/get_ssh_identity
- /cloudbroker/node/update_description
- cloudbroker/node/add_ssh_identity
- cloudbroker/node/get_ssh_identity
- cloudbroker/node/update_description
</details>

View File

@@ -5,7 +5,7 @@ authors = [
{name = "Vladislav Nesterov"},
{name = "Stanislav Karimov"},
]
version = "1.5.1"
version = "1.4.2"
readme = "README.md"

View File

@@ -184,6 +184,11 @@ class VMTechStatus(str, _AutoNameEnum):
STOPPING = _enum_auto()
class DiskType(str, _AutoNameEnum):
BOOT = 'B'
DATA = 'D'
class AccountStatus(str, _AutoNameEnum):
CONFIRMED = _enum_auto()
DISABLED = _enum_auto()
@@ -216,7 +221,6 @@ class ImageStatus(str, _AutoNameEnum):
class ImageType(str, _AutoNameEnum):
CDROM = 'cdrom'
LINUX = 'linux'
MULTI = 'multi'
UNKNOWN = 'unknown'
VIRTUAL = 'virtual'
WINDOWS = 'windows'
@@ -553,7 +557,6 @@ class TrunkStatus(str, _AutoNameEnum):
class StoragePolicyStatus(str, _AutoNameEnum):
DESTROYED = _enum_auto()
DISABLED = _enum_auto()
ENABLED = _enum_auto()
@@ -621,25 +624,3 @@ class SEPTechStatus(str, _AutoNameEnum):
class DiskCacheMode(str, _AutoNameEnum):
NONE = 'none'
WRITETHROUGH = 'writethrough'
class DiskBlockSize(str, _AutoNameEnum):
VAL_512 = '512'
VAL_512E = '512e'
VAL_4K = '4k'
class CPUAllocationParam(str, _AutoNameEnum):
STRICT = 'strict'
LOOSE = 'loose'
NONE = ''
class DiskProvisionType(str, _AutoNameEnum):
THICK = 'thick'
THIN = 'thin'
class DRSDXSSOType(str, _AutoNameEnum):
BVS = 'bvs'
DECS3O = 'decs3o'

View File

@@ -15,7 +15,6 @@ class AccessAPIResultNM(_base.BaseAPIResultNestedModel):
user_name: str
can_be_deleted: None | bool = None
user_email: str | None = None
user_emails: list[str] | None = None
@@ -199,7 +198,6 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
account_id: int
acl: dict
blkdiscard: bool
block_size: _enums.DiskBlockSize
boot_partition: int
bus_num: int
cache_mode: _enums.DiskCacheMode
@@ -217,7 +215,6 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
id: int
image_id: int
image_ids: list[int]
independent: bool
io_tune: IOTuneAPIResultNM
iqn: str
login: str
@@ -228,7 +225,6 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
password: str
pci_slot_num: int
present_to: dict[str, int]
provision: _enums.DiskProvisionType
purge_timestamp: int
reality_device_number: int
replication: ReplicationAPIResultNM | dict
@@ -245,6 +241,7 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
storage_policy_id: int
tech_status: _enums.DiskTechStatus
to_clean: bool
type: _enums.DiskType
updated_by: str
updated_by: str
updated_timestamp: int = 0
@@ -275,7 +272,6 @@ class DiskForListAndListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
account_name: str
acl: dict
blkdiscard: bool
block_size: _enums.DiskBlockSize
cache_mode: _enums.DiskCacheMode
created_by: str
created_timestamp: int
@@ -288,14 +284,12 @@ class DiskForListAndListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
id: int
image_id: int
image_ids: list[int]
independent: bool
io_tune: IOTuneAPIResultNM
milestones: int
name: str
params: str
parent_id: int
present_to: dict[str, int]
provision: _enums.DiskProvisionType
purge_timestamp: int
replication: ReplicationAPIResultNM | dict
res_id: str
@@ -313,6 +307,7 @@ class DiskForListAndListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
storage_policy_id: int
tech_status: _enums.DiskTechStatus
to_clean: bool
type: _enums.DiskType
updated_by: str
vm_id: int | None
vm_name: str | None
@@ -346,7 +341,6 @@ class DiskForListUnattachedAPIResultNM(_base.BaseAPIResultNestedModel):
acl: dict
blkdiscard: bool
boot_partition: int
block_size: _enums.DiskBlockSize
created_timestamp: int
deleted_timestamp: int
description: str
@@ -355,7 +349,6 @@ class DiskForListUnattachedAPIResultNM(_base.BaseAPIResultNestedModel):
cache_mode: _enums.DiskCacheMode
grid_id: int
guid: int
independent: bool
id: int
image_id: int
image_ids: list[int]
@@ -368,7 +361,6 @@ class DiskForListUnattachedAPIResultNM(_base.BaseAPIResultNestedModel):
parent_id: int
password: str
present_to: dict[str, int]
provision: _enums.DiskProvisionType
purge_attempt_count: int
purge_timestamp: int
reality_device_number: int
@@ -388,6 +380,7 @@ class DiskForListUnattachedAPIResultNM(_base.BaseAPIResultNestedModel):
storage_policy_id: int
tech_status: _enums.DiskTechStatus
to_clean: bool
type: _enums.DiskType
updated_timestamp: int = 0
@_base.computed_field
@@ -476,13 +469,11 @@ class ResourceGroupAPIResultNM(_base.BaseAPIResultNestedModel):
class AccountForCAAPIResultNM(_base.BaseAPIResultNestedModel):
acl: list[AccessAPIResultNM]
created_timestamp: int
deleted_by: str
deleted_timestamp: int
description: str
id: int
name: str
status: _enums.AccountStatus
updated_by: str
updated_timestamp: int
vm_features: list[_enums.VMFeature]
zone_ids: list[int]
@@ -617,7 +608,6 @@ class VMAPIResultNM(_base.BaseAPIResultNestedModel):
vins_count: int
vm_ci_id: int
guest_agent: GuestAgentAPIResultNM
weight: int
zone_id: int
@_base.computed_field
@@ -1160,6 +1150,12 @@ class SEPPoolAPIResultNM(_base.BaseAPIResultNestedModel):
system: str | bool
class SEPAPIResultNM(_base.BaseAPIResultNestedModel):
sep_id: int
sep_name: str
pools: list[SEPPoolAPIResultNM]
class LocationAPIResultNM(_base.BaseAPIResultNestedModel):
auth_broker: list[_enums.AuthBroker]
flag: str
@@ -1170,8 +1166,6 @@ class LocationAPIResultNM(_base.BaseAPIResultNestedModel):
name: str
network_modes: list[str]
sdn_support: bool
zero_access_enabled: bool
bro_enabled: bool
class AffinityRelationsAPIResultNM(_base.BaseAPIResultNestedModel):
@@ -1395,23 +1389,12 @@ class ZoneForListAPIResultNM(_base.BaseAPIResultNestedModel):
created_timestamp: int
deletable: bool
description: str
drs_broadcast_ip_addr: str
drs_bvs_domain: str
drs_dx_app_id: str
drs_dx_ssl_skip_verify: bool
drs_dx_sso_type: _enums.DRSDXSSOType
drs_dx_sso_url: str
drs_dx_url: str
drs_name: str
drs_uid: str
drs: bool
grid_id: int
guid: int
id: int
name: str
node_auto_start: bool
node_ids: list[int]
drs_ping_ip_addr: str
status: _enums.ZoneStatus
updated_timestamp: int
@@ -1475,7 +1458,7 @@ class SEPPoolsAPIResultNM(_base.BaseAPIResultNestedModel):
pool_names: list[str]
sep_id: int
sep_name: str | None = None
sep_tech_status: _enums.SEPTechStatus
sep_tech_status: _enums.SEPTechStatus | None = None
class TenantIDsAPIResultNM(_base.BaseAPIResultNestedModel):
@@ -1691,6 +1674,8 @@ class ResourceGroupForListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
vins_ids: list[int]
vm_ids: list[int]
dirty: bool | None = None
@_base.computed_field
def created_datetime(self) -> _base.datetime | None:
return self._get_datetime_from_timestamp(self.created_timestamp)
@@ -1739,7 +1724,6 @@ class AccountForCBAPIResultNM(_base.BaseAPIResultNestedModel):
status: _enums.AccountStatus
storage_policy_ids: list[int]
sep_pools: list[str]
updated_by: str
updated_timestamp: int
version: int
vm_features: list[_enums.VMFeature]

View File

@@ -27,7 +27,6 @@ class CloudapiAccountGetResultModel(_base.BaseAPIResultModel):
status: _nested.AccountStatus
storage_policy_ids: list[int]
sep_pools: list[str]
updated_by: str
updated_timestamp: int
version: int
vins_count: int

View File

@@ -10,6 +10,7 @@ from .group_get import *
from .group_parent_add import *
from .group_parent_remove import *
from .group_remove import *
from .group_resize import *
from .group_start import *
from .group_stop import *
from .group_update import *
@@ -40,6 +41,7 @@ class CloudapiBserviceAPI(
CloudapiBserviceGroupParentAddProtocol,
CloudapiBserviceGroupParentRemoveProtocol,
CloudapiBserviceGroupRemoveProtocol,
CloudapiBserviceGroupResizeProtocol,
CloudapiBserviceGroupStartProtocol,
CloudapiBserviceGroupStopProtocol,
CloudapiBserviceGroupUpdateExtnetProtocol,

View File

@@ -0,0 +1,23 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceGroupResizeResultInt(_base.BaseAPIResultInt):
pass
class CloudapiBserviceGroupResizeProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_resize(
self,
*,
bservice_id: int,
bsgroup_id: int,
chipset: _nested.Chipset = _nested.Chipset.Q35,
count_change_mode: _nested.CountChangeMode = (
_nested.CountChangeMode.RELATIVE
),
vm_count: int,
) -> CloudapiBserviceGroupResizeResultInt:
...

View File

@@ -20,6 +20,7 @@ from .change_mac import *
from .change_mtu import *
from .change_security_groups import *
from .clone import *
from .clone_abort import *
from .create_template import *
from .delete import *
from .delete_custom_fields import *
@@ -95,6 +96,7 @@ class CloudapiComputeAPI(
CloudapiComputeChangeMacProtocol,
CloudapiComputeChangeMtuProtocol,
CloudapiComputeChangeSecurityGroupsProtocol,
CloudapiComputeCloneAbortProtocol,
CloudapiComputeCloneProtocol,
CloudapiComputeCreateTemplateProtocol,
CloudapiComputeDeleteCustomFieldsProtocol,

View File

@@ -1,8 +1,8 @@
import dynamix_sdk.base as _base
class CloudapiComputeAbortSharedSnapshotMergeResultStr(
_base.BaseAPIResultStr,
class CloudapiComputeAbortSharedSnapshotMergeResultBool(
_base.BaseAPIResultBool,
):
pass
@@ -15,5 +15,5 @@ class CloudapiComputeAbortSharedSnapshotMergeProtocol(
*,
vm_id: int,
label: str,
) -> CloudapiComputeAbortSharedSnapshotMergeResultStr:
) -> CloudapiComputeAbortSharedSnapshotMergeResultBool:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiComputeCloneAbortResultBool(
_base.BaseAPIResultBool,
):
pass
class CloudapiComputeCloneAbortProtocol(
_base.BasePostAPIFunctionProtocol
):
def clone_abort(
self,
*,
vm_id: int,
) -> CloudapiComputeCloneAbortResultBool:
...

View File

@@ -1,4 +1,5 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeDiskAddResultInt(_base.BaseAPIResultInt):
@@ -13,6 +14,7 @@ class CloudapiComputeDiskAddProtocol(_base.BasePostAPIFunctionProtocol):
name: str,
disk_size_gb: int,
storage_policy_id: int,
disk_type: _nested.DiskType = _nested.DiskType.DATA,
sep_id: int | None = None,
sep_pool_name: str | None = None,
description: str | None = None,

View File

@@ -1,4 +1,5 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeDiskAttachResultBool(_base.BaseAPIResultBool):
@@ -11,6 +12,7 @@ class CloudapiComputeDiskAttachProtocol(_base.BasePostAPIFunctionProtocol):
*,
vm_id: int,
disk_id: int,
disk_type: _nested.DiskType = _nested.DiskType.DATA,
pci_slot_num_hex: str | None = None,
bus_num_hex: str | None = None,
) -> CloudapiComputeDiskAttachResultBool:

View File

@@ -31,7 +31,7 @@ class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
deleted_by: str
deleted_timestamp: int
description: str
pci_devices: dict[str, int]
devices: dict
disks: list[_nested.DiskForCAComputeGetAPIResultNM]
driver: _nested.Driver
grid_id: int
@@ -77,7 +77,6 @@ class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
vm_ci_id: int
vnc_password: str
guest_agent: _nested.GuestAgentAPIResultNM
weight: int
zone_id: int
natable_vins_id: int = 0

View File

@@ -7,6 +7,7 @@ from .get import *
from .limit_io import *
from .list import *
from .list_deleted import *
from .list_types import *
from .list_unattached import *
from .rename import *
from .resize2 import *
@@ -27,6 +28,7 @@ class CloudapiDisksAPI(
CloudapiDisksLimitIOProtocol,
CloudapiDisksListDeletedProtocol,
CloudapiDisksListProtocol,
CloudapiDisksListTypesProtocol,
CloudapiDisksListUnattachedProtocol,
CloudapiDisksRenameProtocol,
CloudapiDisksResize2Protocol,

View File

@@ -7,7 +7,6 @@ class CloudapiDisksGetResultModel(_base.BaseAPIResultModel):
account_name: str
acl: dict
blkdiscard: bool
block_size: _nested.DiskBlockSize
cache_mode: _nested.DiskCacheMode
created_by: str
created_timestamp: int
@@ -20,14 +19,12 @@ class CloudapiDisksGetResultModel(_base.BaseAPIResultModel):
id: int
image_id: int
image_ids: list[int]
independent: bool
io_tune: _nested.IOTuneAPIResultNM
milestones: int
name: str
params: str
parent_id: int
present_to: dict[str, int]
provision: _nested.DiskProvisionType
purge_timestamp: int
replication: _nested.ReplicationAPIResultNM | dict
res_id: str
@@ -45,6 +42,7 @@ class CloudapiDisksGetResultModel(_base.BaseAPIResultModel):
storage_policy_id: int
tech_status: _nested.DiskTechStatus
to_clean: bool
type: _nested.DiskType
updated_by: str
vm_id: int | None
vm_name: str | None

View File

@@ -24,7 +24,6 @@ class CloudapiDisksListProtocol(_base.BasePostAPIFunctionProtocol):
sort_by: str | None = None,
status: _nested.DiskStatus | None = None,
storage_policy_id: int | None = None,
rg_id: int | None = None,
vm_id: int | None = None,
type: _nested.DiskType | None = None,
) -> CloudapiDisksListResultModel:
...

View File

@@ -20,5 +20,6 @@ class CloudapiDisksListDeletedProtocol(_base.BasePostAPIFunctionProtocol):
page_size: int | None = None,
shared: bool | None = None,
sort_by: str | None = None,
type: _nested.DiskType | None = None,
) -> CloudapiDisksListDeletedResultModel:
...

View File

@@ -0,0 +1,19 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiDisksListTypesResultModel(_base.BaseAPIResultModel):
data: list[_nested.SEPAPIResultNM | _nested.PoolDiskType]
entry_count: int
class CloudapiDisksListTypesProtocol(_base.BasePostAPIFunctionProtocol):
def list_types(
self,
*,
detailed: bool = False,
page_number: int | None = None,
page_size: int | None = None,
sort_by: str | None = None,
) -> CloudapiDisksListTypesResultModel:
...

View File

@@ -22,5 +22,6 @@ class CloudapiDisksListUnattachedProtocol(_base.BasePostAPIFunctionProtocol):
storage_policy_id: int | None = None,
sort_by: str | None = None,
status: _nested.DiskStatus | None = None,
type: _nested.DiskType | None = None,
) -> CloudapiDisksListUnattachedResultModel:
...

View File

@@ -21,10 +21,8 @@ class CloudapiImageGetResultModel(_base.BaseAPIResultModel):
history: list[_nested.ImageHistoryRecordAPIResultNM]
hot_resize: bool
id: int
independent: bool
last_modified: int
link_to: int
links_to: list[int] | None = None
milestones: int
name: str
network_interface_naming: _nested.NetIfaceNamingTemplate

View File

@@ -18,6 +18,7 @@ from .start import *
from .stop import *
from .update import *
from .update_worker_nodes_meta_data import *
from .worker_add import *
from .worker_reset import *
from .worker_restart import *
from .workers_group_add import *
@@ -46,6 +47,7 @@ class CloudapiK8sAPI(
CloudapiK8sStopProtocol,
CloudapiK8sUpdateProtocol,
CloudapiK8sUpdateWorkerNodesMetaDataProtocol,
CloudapiK8sWorkerAddProtocol,
CloudapiK8sWorkerResetProtocol,
CloudapiK8sWorkerRestartProtocol,
CloudapiK8sWorkersGroupAddProtocol,

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiK8sWorkerAddResultBool(_base.BaseAPIResultBool):
pass
class CloudapiK8sWorkerAddProtocol(_base.BasePostAPIFunctionProtocol):
def worker_add(
self,
*,
k8s_id: int,
worker_group_id: int,
node_count: int = 1,
chipset: _nested.Chipset = _nested.Chipset.Q35,
) -> CloudapiK8sWorkerAddResultBool:
...

View File

@@ -25,11 +25,13 @@ class CloudapiKvmx86CreateProtocol(_base.BasePostAPIFunctionProtocol):
hp_backed: bool = False,
image_id: None | int = None,
interfaces: None | list[_nested.InterfaceAPIParamsNM] = None,
ipa_type: None | str = None,
numa_affinity: _nested.NumaAffinity = _nested.NumaAffinity.NONE,
preferred_cpu_cores: None | list[int] = None,
sep_id: None | int = None,
sep_pool_name: None | str = None,
start: bool = True,
system_name: None | str = None,
without_boot_disk: bool = False,
zone_id: None | int = None,
os_version: None | str = None,

View File

@@ -1,7 +1,7 @@
import dynamix_sdk.base as _base
class CloudapiLbMakeHighlyAvailableResultBool(_base.BaseAPIResultBool):
class CloudapiLbMakeHighlyAvailableResultInt(_base.BaseAPIResultInt):
pass
@@ -10,5 +10,5 @@ class CloudapiLbMakeHighlyAvailableProtocol(_base.BasePostAPIFunctionProtocol):
self,
*,
lb_id: int,
) -> CloudapiLbMakeHighlyAvailableResultBool:
) -> CloudapiLbMakeHighlyAvailableResultInt:
...

View File

@@ -19,6 +19,5 @@ class CloudapiVinsCreateInAccountProtocol(_base.BasePostAPIFunctionProtocol):
pre_reservation_count: int = 32,
routes: None | list[_nested.RouteAPIParamsNM] = None,
zone_id: None | int = None,
security_group_mode: bool = False,
) -> CloudapiVinsCreateInAccountResultInt:
...

View File

@@ -20,6 +20,5 @@ class CloudapiVinsCreateInRGProtocol(_base.BasePostAPIFunctionProtocol):
pre_reservation_count: None | int = None,
routes: None | list[_nested.RouteAPIParamsNM] = None,
zone_id: None | int = None,
security_group_mode: bool = False,
) -> CloudapiVinsCreateInRGResultInt:
...

View File

@@ -8,17 +8,6 @@ class CloudapiZoneGetResultModel(_base.BaseAPIResultModel):
created_timestamp: int
deletable: bool
description: str
drs_broadcast_ip_addr: str
drs_bvs_domain: str
drs_dx_app_id: str
drs_dx_ssl_skip_verify: bool
drs_dx_sso_type: _nested.DRSDXSSOType
drs_dx_sso_url: str
drs_dx_url: str
drs_name: str
drs_ping_ip_addr: str
drs_uid: str
drs: bool
extnet_ids: list[int]
grid_id: int
guid: int

View File

@@ -27,7 +27,6 @@ class CloudbrokerAccountGetResultModel(_base.BaseAPIResultModel):
status: _nested.AccountStatus
storage_policy_ids: list[int]
sep_pools: list[str]
updated_by: str
updated_timestamp: int
version: int
vm_features: list[_nested.VMFeature]

View File

@@ -23,6 +23,5 @@ class CloudbrokerAccountUpdateProtocol(_base.BasePostAPIFunctionProtocol):
clear_sep_pools: bool = False,
default_zone_id: int | None = None,
storage_policies_quotas: list[_nested.StoragePolicyQuotasAPIParamsNM] | None = None, # noqa: E501
cpu_allocation_parameter: _nested.CPUAllocationParam | None = None,
) -> CloudbrokerAccountUpdateResultBool:
...

View File

@@ -2,6 +2,7 @@ import dynamix_sdk.base as _base
from .change_read_only import *
from .change_security_groups import *
from .clone import *
from .clone_abort import *
from .migrate_storage_list import *
from .start_migration_in import *
from .start_migration_out import *
@@ -14,6 +15,7 @@ class CloudbrokerComputeAPI(
CloudbrokerComputeChangeReadOnlyProtocol,
CloudbrokerComputeChangeSecurityGroupsProtocol,
CloudbrokerComputeCloneProtocol,
CloudbrokerComputeCloneAbortProtocol,
CloudbrokerComputeMigrateStorageListProtocol,
CloudbrokerComputeStartMigrationInProtocol,
CloudbrokerComputeStartMigrationOutProtocol,

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudbrokerComputeCloneAbortResultBool(
_base.BaseAPIResultBool,
):
pass
class CloudbrokerComputeCloneAbortProtocol(
_base.BasePostAPIFunctionProtocol
):
def clone_abort(
self,
*,
vm_id: int,
) -> CloudbrokerComputeCloneAbortResultBool:
...

View File

@@ -10,7 +10,6 @@ class CloudbrokerStoragePolicyAddPoolResultModel(_base.BaseAPIResultModel):
name: str
sep_pools: list[_nested.SEPPoolsAPIResultNM]
status: _nested.StoragePolicyStatus
usage: _nested.TenantIDsAPIResultNM
class CloudbrokerStoragePolicyAddPoolProtocol(

View File

@@ -10,7 +10,6 @@ class CloudbrokerStoragePolicyDeletePoolResultModel(_base.BaseAPIResultModel):
name: str
sep_pools: list[_nested.SEPPoolsAPIResultNM]
status: _nested.StoragePolicyStatus
usage: _nested.TenantIDsAPIResultNM
class CloudbrokerStoragePolicyDeletePoolProtocol(

View File

@@ -10,7 +10,6 @@ class CloudbrokerStoragePolicyUpdateResultModel(_base.BaseAPIResultModel):
name: str
sep_pools: list[_nested.SEPPoolsAPIResultNM]
status: _nested.StoragePolicyStatus
usage: _nested.TenantIDsAPIResultNM
class CloudbrokerStoragePolicyUpdateProtocol(

View File

@@ -88,7 +88,6 @@ base_domain: baseDomain
binding_name: bindingName
bindings: bindings
blkdiscard: blkdiscard
block_size: block_size
blocked: blocked
boot_cdrom_image_id: altBootId
boot_disk_size_gb: bootdiskSize
@@ -110,8 +109,6 @@ boot_mode__CloudapiImageCreateParamsModel: boottype
boot_order: bootOrder
boot_partition: bootPartition
bootable: bootable
bro_enabled: bro_enabled
bro_jwt: bro_jwt
bservice_id: serviceId
bservice_id__AuditAPIResultNM: service_id
bservice_id__CloudapiAuditListParamsModel: service_id
@@ -174,6 +171,7 @@ conn_type: connType
consistency: consistency
consumed: Consumed
correlation_id: correlation_id
count_change_mode__CloudapiBserviceGroupResizeParamsModel: mode
cpu_allocation_mode__CloudbrokerAccountSetCpuAllocationParameterParamsModel: strict_loose
cpu_allocation_parameter: cpu_allocation_parameter
cpu_allocation_ratio: cpu_allocation_ratio
@@ -258,6 +256,7 @@ description__ZoneForListAPIResultNM: description
destruction_timestamp: destructionTime
detach: detach
detach_disks: detachDisks
detailed: detailed
device_id: devId
device_name: devicename
devices: devices
@@ -280,6 +279,8 @@ disk_size_gb: CU_D
disk_size_gb__CloudapiComputeDiskAddParamsModel: size
disk_size_gb__CloudapiDisksResize2ParamsModel: size
disk_size_total_gb__CloudapiBserviceGetResultModel: diskTotal
disk_type__CloudapiComputeDiskAddParamsModel: diskType
disk_type__CloudapiComputeDiskAttachParamsModel: diskType
disks: disks
display_name: displayname
dns_servers: dns
@@ -298,18 +299,6 @@ dp_api_user: dpApiUser
dpdk_net_id: dpdkId
driver: driver
drivers: drivers
drs: drs
drs_broadcast_ip_addr: broadcast_addr
drs_bvs_domain__CloudapiZoneGetResultModel: domain
drs_bvs_domain__ZoneForListAPIResultNM: domain
drs_dx_app_id: app_id
drs_dx_ssl_skip_verify: ssl_skip_verify
drs_dx_sso_type: sso_type
drs_dx_sso_url: sso_url
drs_dx_url: decort_url
drs_name: drs_name
drs_ping_ip_addr: ping_addr
drs_uid: drs_uid
dst_net_ip: destination
dst_net_mask__CloudapiVinsStaticRouteAddParamsModel: netmask
dst_net_mask__RouteAPIParamsNM: netmask
@@ -440,7 +429,6 @@ include_deleted: includedeleted
include_deleted__CloudapiK8sListParamsModel: includedeleted
include_deleted__CloudapiVinsListParamsModel: includeDeleted
include_disabled: includeDisabled
independent: independent
ingress_burst: inBurst
ingress_rate: inRate
init_config: initConfiguration
@@ -479,6 +467,7 @@ ip_addresses: ipAddresses
ip_cidr: ipcidr
ip_pool_end: ip_end
ip_pool_start: ip_start
ipa_type: ipaType
iqn: iqn
join_config: joinConfiguration
json_data__CloudapiUserSetDataParamsModel: data
@@ -509,12 +498,11 @@ lb_id: lbId
lb_id__AuditAPIResultNM: lb_id
lb_id__CloudapiAuditListParamsModel: lb_id
lb_id__CloudbrokerAuditListParamsModel: lb_id
lb_ids: lbsIds
lb_ids: lbIds
lb_sysctl_params: lbSysctlParams
lease_time: lease
libvirt_settings: libvirtSettings
link_to: linkTo
links_to: linksTo
listen_ssh: listenSsh
live_migration_job_id: live_migration_job_id
local_ip: localIp
@@ -603,6 +591,7 @@ node_auto_start__CloudapiZoneGetResultModel: autostart
node_auto_start__ZoneForListAPIResultNM: autostart
node_boot_disk_size_gb__CloudapiK8sWorkersGroupGetByNameResultModel: disk
node_boot_disk_size_gb__K8sNodeGroupAPIResultNM: disk
node_count__CloudapiK8sWorkerAddParamsModel: num
node_count__CloudapiK8sWorkersGroupAddParamsModel: workerNum
node_count__CloudapiK8sWorkersGroupGetByNameResultModel: num
node_count__K8sNodeGroupAPIResultNM: num
@@ -660,7 +649,6 @@ password__DiskForListUnattachedAPIResultNM: passwd
password__UserAPIResultNM: passwd
path: path
pci_device_id: deviceId
pci_devices__CloudapiComputeGetResultModel: devices
pci_devices__VMAPIResultNM: devices
pci_slot_num: pciSlot
pci_slot_num__DiskForCAComputeGetAPIResultNM: pci_slot
@@ -699,7 +687,6 @@ protocol__CloudapiComputePfwAddParamsModel: proto
protocol__CloudapiComputePfwDelParamsModel: proto
protocol__CloudapiVinsNatRuleAddParamsModel: proto
provider_name: provider_name
provision: provision
public: public
public_keys: public_keys
public_port_end: publicPortEnd
@@ -752,7 +739,6 @@ rg__K8sACLAPIResultNM: rgAcl
rg_id: rgId
rg_id__AuditAPIResultNM: resgroup_id
rg_id__CloudapiAuditListParamsModel: resgroup_id
rg_id__CloudapiDisksListParamsModel: rg_id
rg_id__CloudapiRgAddStoragePolicyParamsModel: resgroup_id
rg_id__CloudapiRgDelStoragePolicyParamsModel: resgroup_id
rg_id__CloudapiSepListAvailableSepAndPoolsParamsModel: rg_id
@@ -835,6 +821,7 @@ sep_pools__CloudbrokerAccountGetResultModel: uniqPools
sep_pools__CloudbrokerAccountUpdateParamsModel: uniqPools
sep_pools__ResourceCountersAPIResultNM: seps
sep_pools__ResourceGroupAPIResultNM: uniqPools
sep_pools__ResourceGroupForListDeletedAPIResultNM: uniqPools
sep_pools__StoragePolicyCountersAPIResultNM: seps
sep_tech_status: sep_tech_status
sep_type: sepType
@@ -925,6 +912,7 @@ storage_size_quota_gb: maxVDiskCapacity
storage_size_quota_gb__StoragePolicyCountersAPIResultNM: limit
sysctl_params: sysctlParams
system: system
system_name: IS
system_name__PCIDeviceAPIResultNM: systemName
tags: tags
taints: taints
@@ -964,7 +952,6 @@ updated_timestamp__SecurityGroupAPIResultNM: updated_at
updated_timestamp__TrunkAPIResultNM: updated_at
usage: usage
use_unsafe: use_unsafe
user_email__AccessAPIResultNM: email
user_emails__AccessAPIResultNM: emails
user_managed: userManaged
user_name: username
@@ -1019,6 +1006,7 @@ vm: computeACL
vm_ci_id: computeciId
vm_count__BServiceGroupAPIResultNM: computes
vm_count__CloudapiBserviceGroupAddParamsModel: count
vm_count__CloudapiBserviceGroupResizeParamsModel: count
vm_counts: computes
vm_features: computeFeatures
vm_id: computeId
@@ -1029,15 +1017,16 @@ vm_id__CloudapiComputeChangeIpParamsModel: compute_id
vm_id__CloudapiComputeChangeMacParamsModel: compute_id
vm_id__CloudapiComputeChangeMtuParamsModel: compute_id
vm_id__CloudapiComputeChangeSecurityGroupsParamsModel: compute_id
vm_id__CloudapiComputeCloneAbortParamsModel: compute_id
vm_id__CloudapiComputeGuestAgentDisableParamsModel: compute_id
vm_id__CloudapiComputeGuestAgentEnableParamsModel: compute_id
vm_id__CloudapiComputeGuestAgentExecuteParamsModel: compute_id
vm_id__CloudapiComputeGuestAgentFeatureUpdateParamsModel: compute_id
vm_id__CloudapiDisksGetResultModel: machineId
vm_id__CloudapiDisksListParamsModel: compute_id
vm_id__CloudbrokerAuditListParamsModel: compute_id
vm_id__CloudbrokerComputeChangeReadOnlyParamsModel: compute_id
vm_id__CloudbrokerComputeChangeSecurityGroupsParamsModel: compute_id
vm_id__CloudbrokerComputeCloneAbortParamsModel: compute_id
vm_id__CloudbrokerComputeStartMigrationOutParamsModel: compute_id
vm_id__DHCPReservationAPIResultNM: vmId
vm_id__DiskForListAndListDeletedAPIResultNM: machineId
@@ -1090,7 +1079,6 @@ write_bytes_sec_max: write_bytes_sec_max
write_iops_sec: write_iops_sec
write_iops_sec_max: write_iops_sec_max
xmpp: xmpp
zero_access_enabled: zeroaccess_enabled
zone_id: zoneId
zone_id__CloudapiAccountListParamsModel: zone_id
zone_id__CloudapiBserviceListParamsModel: zone_id

View File

@@ -74,6 +74,7 @@ group_get: groupGet
group_parent_add: groupParentAdd
group_parent_remove: groupParentRemove
group_remove: groupRemove
group_resize: groupResize
group_start: groupStart
group_stop: groupStop
group_update: groupUpdate
@@ -85,6 +86,7 @@ ip_reserve: ipReserve
limit_io: limitIO
list_available_sep_and_pools: listAvailableSepAndPools
list_deleted: listDeleted
list_types: listTypes
list_unattached: listUnattached
make_highly_available: makeHighlyAvailable
migrate_to_zone: migrateToZone
@@ -126,6 +128,7 @@ user_revoke: userRevoke
user_update: userUpdate
vnfdev_redeploy: vnfdevRedeploy
vnfdev_restart: vnfdevRestart
worker_add: workerAdd
worker_reset: workerReset
worker_restart: workerRestart
workers_group_add: workersGroupAdd

View File

@@ -3,7 +3,6 @@ import dynamix_sdk.base as _base
class SystemUsermanagerWhoamiResultModel(_base.BaseAPIResultModel):
admin: bool
bro_jwt: str
name: str
roles: list[str]

View File

@@ -8,8 +8,8 @@ from .api import API
class Dynamix:
_config: config.ConfigWithAuth
_COMPATIBLE_DX_MINOR_VERSION: str = '4.6'
_COMPATIBLE_DX_BUILD: int = 1524
_COMPATIBLE_DX_MINOR_VERSION: str = '4.5'
_COMPATIBLE_DX_BUILD: int = 1269
_COMPATIBILITY_WITH_NEWER_DX_BUILDS: bool = True
_dx_version: str
_dx_build: int

View File

@@ -68,3 +68,15 @@ def get_nested_value(
f'The key {key} found, but its value is not a dictionary.'
)
return value
def camel_to_snake(name: str) -> str:
result = []
for i, ch in enumerate(name):
if ch.isupper():
if i > 0 and not name[i - 1].isupper():
result.append('_')
result.append(ch.lower())
else:
result.append(ch)
return ''.join(result)