1 Commits

Author SHA1 Message Date
b2cb33e9a8 12.0.3 2026-08-11 11:52:11 +03:00
2 changed files with 19 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
# Список изменений в версии 12.0.2 # Список изменений в версии 12.0.3
## Добавлено ## Добавлено
@@ -8,4 +8,4 @@
### Модуль decort_vm ### Модуль decort_vm
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BANS-1331 | Модуль завершал работу ошибкой при передаче параметров `disks` и `boot` для существующей ВМ. | | BANS-1377 | Модуль завершал работу ошибкой при передаче параметров `disks.objects.pci_slot_num_hex` и `disks.objects.bus_num_hex` в формате hex. |

View File

@@ -49,7 +49,7 @@ class DecortController(object):
_api: sdk_types.API | None = None _api: sdk_types.API | None = None
_usermanager_whoami_result: None | dict = None _usermanager_whoami_result: None | dict = None
ANSIBLE_MODULES_VERSION = '12.0.2' ANSIBLE_MODULES_VERSION = '12.0.3'
COMPATIBLE_SDK_MINOR_VERSION = '1.5' COMPATIBLE_SDK_MINOR_VERSION = '1.5'
VM_RESIZE_NOT = 0 VM_RESIZE_NOT = 0
@@ -619,6 +619,12 @@ class DecortController(object):
return int(datetime(**datetime_args).timestamp()) return int(datetime(**datetime_args).timestamp())
@staticmethod
def _parse_hex(value: int | str) -> int:
if isinstance(value, int):
return value
return int(str(value).strip(), 16)
@staticmethod @staticmethod
def sec_to_dt_str(sec: float, str_format: str = '%Y-%m-%d_%H-%M-%S') -> str: def sec_to_dt_str(sec: float, str_format: str = '%Y-%m-%d_%H-%M-%S') -> str:
""" """
@@ -1144,12 +1150,16 @@ class DecortController(object):
if ( if (
( (
aparam_disk['pci_slot_num_hex'] is not None aparam_disk['pci_slot_num_hex'] is not None
and str(comp_disk['pci_slot']) and int(comp_disk['pci_slot'])
!= aparam_disk['pci_slot_num_hex'] != self._parse_hex(
aparam_disk['pci_slot_num_hex']
)
) or ( ) or (
aparam_disk['bus_num_hex'] is not None aparam_disk['bus_num_hex'] is not None
and str(comp_disk['bus_number']) and int(comp_disk['bus_number'])
!= aparam_disk['bus_num_hex'] != self._parse_hex(
aparam_disk['bus_num_hex']
)
) )
): ):
disks_to_detach.append(aparam_disk) disks_to_detach.append(aparam_disk)
@@ -1170,11 +1180,11 @@ class DecortController(object):
for disk in disks_to_attach: for disk in disks_to_attach:
pci_slot_num = disk['pci_slot_num_hex'] pci_slot_num = disk['pci_slot_num_hex']
if pci_slot_num is not None: if pci_slot_num is not None:
pci_slot_num = hex(int(pci_slot_num)) pci_slot_num = hex(self._parse_hex(pci_slot_num))
bus_num = disk['bus_num_hex'] bus_num = disk['bus_num_hex']
if bus_num is not None: if bus_num is not None:
bus_num = hex(int(bus_num)) bus_num = hex(self._parse_hex(bus_num))
api_params = { api_params = {
'computeId': comp_dict['id'], 'computeId': comp_dict['id'],