2 Commits

Author SHA1 Message Date
a5f23d09da 10.0.2 2026-05-14 14:45:06 +03:00
8c554c8edd 10.0.1 2025-12-02 15:31:36 +03:00
5 changed files with 36 additions and 202 deletions

View File

@@ -1,30 +0,0 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: end-of-file-fixer
- id: no-commit-to-branch
name: no-commit-to-branch (main, master, dev_*)
args:
- --pattern
- dev_.*
- repo: https://github.com/pycqa/flake8
rev: 7.2.0
hooks:
- id: flake8
exclude: |
(?x)^(
module_utils/decort_utils.py |
library/decort_bservice.py |
library/decort_disk.py |
library/decort_group.py |
library/decort_k8s.py |
library/decort_kvmvm.py |
library/decort_lb.py |
library/decort_osimage.py |
library/decort_pfw.py |
library/decort_rg.py |
library/decort_vins.py
)$
args:
- --extend-ignore=E402

View File

@@ -1,174 +1,11 @@
# Список изменений в версии 10.0.0
# Список изменений в версии 10.0.2
## Добавлено
### Модуль decort_vm_snapshot
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-807 | Модуль переименован из `decort_snapshot` в `decort_vm_snapshot`. |
### Модуль decort_kvmvm
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-723 | Добавлен параметр `cdrom` и возвращаемое значение `cd_image_id`. |
| BANS-727 | Добавлен параметр `boot.from_cdrom`. |
| BANS-728 | Добавлен параметр `boot.order` и возвращаемое значение `boot_order`. |
| BANS-871 | Добавлен параметр `storage_policy_id`. |
| BANS-729 | Добавлен параметр `boot.disk_redeploy`. |
| BANS-693 | Добавлена проверка при подключении сетей к запущенной ВМ. |
| BANS-881 | Добавлены параметры `networks.security_group_mode` и `networks.security_group_ids` и возвращаемые значения `interfaces.security_group_mode` и `interfaces.security_group_ids`. |
| BANS-895 | Добавлен возможный тип данных `null` для возвращаемого значения `image_id`. |
| BANS-894 | Добавлен параметр `os_version` и возвращаемое значение `os_version`. |
| BANS-890 | Добавлен параметр `networks.enabled` и возвращаемое значение `interfaces.enabled`. |
| BANS-902 | Добавлено возвращаемое значение `boot_loader_metaiso`. |
| BANS-904 | Добавлены параметры `clone_from.sep_pool_name`, `clone_from.sep_id`, `clone_from.storage_policy_id`. |
| BANS-905 | Добавлены параметры `abort_cloning`, `get_cloning_status` и возвращаемое значение `cloning_status`. |
### Модуль decort_group
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-865 | Добавлен параметр `storage_policy_id`. |
### Модуль decort_disk
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-867 | Добавлен параметр `storage_policy_id` и возвращаемое значение `storage_policy_id`. |
| BANS-866 | Добавлена возможность изменять `storage_policy_id` диска. |
| BANS-897 | Добавлено возвращаемое значение `to_clean`. |
| BANS-898 | Добавлены параметры `disks.objects`, `disks.objects.pci_slot_num_hex`, `disks.objects.bus_num_hex`. |
### Модуль decort_osimage
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-868 | Добавлен параметр `storage_policy_id` и возвращаемое значение `storage_policy_id`. |
| BANS-885 | Добавлена возможность изменять `storage_policy_id` шаблонного образа. |
| BANS-914 | Добавлено возвращаемое значение `to_clean`. |
### Модуль decort_k8s
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-869 | Добавлен параметр `storage_policy_id`. |
| BANS-234 | Добавлена возможность переименования кластера. |
### Модуль decort_rg
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-877 | Добавлено возвращаемое значение `storage_policy_ids`. |
| BANS-882 | Добавлен параметр `quotas.storage_policies`. |
### Модуль decort_account
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-875 | Добавлены возвращаемые значения `storage_policy_ids` и `resourceLimits.storage_policies`. |
### Модуль decort_account_info
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-876 | Добавлены возвращаемые значения `storage_policy_ids` и `resourceLimits.storage_policies`. |
| BANS-911 | У параметра `computes.filter.tech_status` добавлены значения `MIGRATING_IN` и `MIGRATING_OUT`. |
| BANS-903 | Добавлены новые возвращаемые значения в `audits`. |
### Модуль decort_storage_policy
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-878 | Добавлен модуль `decort_storage_policy`. |
### Модуль decort_user_info
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-879 | Добавлен параметр `storage_policies` и возвращаемое значение `storage_policies`. |
| BANS-889 | Добавлен параметр `accounts.filter.zone_id`. |
| BANS-892 | Добавлено возвращаемое значение `accounts.zone_ids`. |
| BANS-891 | Добавлен параметр `security_groups` и возвращаемое значение `security_groups`. |
### Модуль decort_security_group
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-883 | Добавлен модуль `decort_security_group`. |
### Модуль decort_vins
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-147 | Добавлен параметр `permanently` для удаления внутренней сети в корзину или безвозвратно. |
## Удалено
### Модуль decort_osimage
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-862 | Удален параметр `drivers`. |
| BANS-292 | Удален неиспользуемый параметр `gid`. |
### Модуль decort_kvmvm
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-730 | Удалён параметр `image_name`. |
| BANS-893 | Удалена необходимость указывать параметр `networks.mac` при подключении сети `SDN`. |
### Модуль decort_disk
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-867 | Удалён параметр `iops`. |
| BANS-898 | Удалён параметр `disks.ids`. |
### Модуль decort_lb
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-320 | Удалён неиспользуемый параметр `ext_ip_addr`. |
## Исправлено
### Модуль decort_k8s
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-199 | Удалён неиспользуемый параметр `quotas`. |
### Модуль decort_group
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-388 | Удалён неиспользуемый параметр `image_name`. |
## Исправлено
### Модуль decort_bservice
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-851 | Скорректирована логика параметра целевого состояния `present`. Теперь состояние `present` соответствует тому, что базовая служба существует, и не приводит к изменению состояния существующей базовой службы. Также для параметра `state` значение по умолчанию `present` теперь только при создании базовой службы. |
| BANS-873 | Указание параметров `account_id`/`account_name`, `rg_name`, `name` могло найти базовую службу с таким же именем, но принадлежащей другому аккаунту.|
### Модуль decort_kvmvm
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-685 | Исправлена ошибка, приводящая к отображению неактуальной информации о виртуальной машине после её удаления. |
| BANS-699 | Исправлена логика удаления ВМ в статусе DISABLED, приводящая к возникновению ошибок. |
| BANS-748 | Исправлена логика работы с несуществующей ВМ, по которой получение информации о ВМ приводило к возникновению ошибок. |
| BANS-697 | Исправлена логика, приводящая к ошибке при указании идентификатора несуществующего образа. |
| BANS-122 | Исправлена логика, приводящая к изменению `affinity rules`, `anti-affinity rules`, `anti-affinity rules` и ` tags` в режиме `check_mode`. |
### Модуль decort_disk
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-742 | Исправлена ошибка, приводящая к отображению неактуальной информации о статусе диска после его удаления. |
| BANS-743 | Исправлена логика работы с несуществующим диском, по которой получение информации о диске приводило к возникновению ошибок. |
| BANS-247 | Модуль завершал свою работу ошибкой запроса API при создании/изменении диска с указанием параметра `size` меньше 1. |
### Модуль decort_lb
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-752 | Исправлена ошибка, приводящая к отображению неактуальной информации о статусе балансировщика после его удаления. |
| BANS-754 | Исправлена логика работы с несуществующими объектами, по которой получение информации об объектах приводило к возникновению ошибок. |
| BANS-753 | Исправлена логика работы с несуществующим балансировщиком, по которой получение информации о балансировщике приводило к возникновению ошибок. |
### Модуль decort_group
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-648 | Исправлена логика передачи параметров, приводящая к ошибке при передаче параметра `name` без параметра `id`. |
| BANS-418 | Исправлена логика обновления сетей у группы базовой службы, из-за которой не происходило обновление внешних сетей. |
| BANS-646 | Исправлена логика повторного удаления группы базовой службы, которая приводила к возникновению ошибок. |
| BANS-559 | При создании группы с указанием параметра `timeoutStart` модуль производил попытку запустить группу после её создания. |
### Модуль decort_osimage
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-653 | Исправлена ошибка, приводящая к отображению неактуальной информации об образе после его удаления. |
### Модуль decort_vins
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BANS-663 | Исправлена ошибка передачи параметра `description` при создании внутренней сети. |
| BANS-174 | Исправлена логика, приводящая к невозможности задать внешнюю сеть для внутренней сети без внешней сети. |
| BANS-1173 | Модуль завершал работу ошибкой запроса к API при попытке добавить группу worker-узлов к существующему кластеру. |

View File

@@ -115,10 +115,7 @@ class decort_group(DecortController):
driver=driver,
)
if (
self.amodule.params['state'] in ('started','present')
and self.amodule.params['timeoutStart'] is None
):
if self.amodule.params['state'] in ('started','present'):
self.group_state(self.bservice_id,self.group_id,self.amodule.params['state'])
self.group_should_exist = True

View File

@@ -215,6 +215,9 @@ class decort_k8s(DecortController):
self.k8s_workers_modify(
arg_k8swg=self.k8s_info,
arg_modwg=target_wgs,
master_node_storage_policy_id=(
self.aparams['storage_policy_id']
),
)
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
return
@@ -257,7 +260,10 @@ class decort_k8s(DecortController):
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
#check groups and modify if needed
if self.aparams['workers'] is not None:
self.k8s_workers_modify(self.k8s_info, self.amodule.params['workers'])
self.k8s_workers_modify(
arg_k8swg=self.k8s_info,
arg_modwg=self.amodule.params['workers'],
)
aparam_zone_id = self.aparams['zone_id']
if aparam_zone_id is not None and aparam_zone_id != self.k8s_info['zoneId']:

View File

@@ -6472,7 +6472,12 @@ class DecortController(object):
self.result['changed'] = False
return
def k8s_workers_modify(self,arg_k8swg,arg_modwg):
def k8s_workers_modify(
self,
arg_k8swg,
arg_modwg,
master_node_storage_policy_id: int | None = None,
):
self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "k8s_workers_modify")
@@ -6586,6 +6591,12 @@ class DecortController(object):
'annotations': wg_to_create['annotations'],
'userData': json.dumps(wg_to_create['ci_user_data']),
'chipset': wg_to_create['chipset'],
'storage_policy_id': (
master_node_storage_policy_id
or self.k8s_get_master_node_storage_policy_id(
k8s_info=arg_k8swg,
)
),
}
wg_add_response = self.decort_api_call(
arg_req_function=requests.post,
@@ -6742,6 +6753,19 @@ class DecortController(object):
self.set_changed()
return api_response.json()
def k8s_get_master_node_storage_policy_id(self, k8s_info: dict) -> int:
master_nodes_info = k8s_info['k8sGroups']['masters'][
'detailedInfo'
]
if not master_nodes_info:
raise ValueError(
f'No master nodes found in K8s cluster ID {k8s_info['id']}'
)
_, master_node_info, _ = self._compute_get_by_id(
comp_id=master_nodes_info[0]['id']
)
return master_node_info['disks'][0]['storage_policy_id']
##############################
#
# Bservice management