# terraform-provider-dynamix

## Особенности и изменения в terraform-provider-dynamix по сравнению с terraform-provider-decort

### Пользовательская группа API

Общее: значения незаданных пользователем блоков и атрибутов в terraform.tfstate сохраняюся как null.
Параметры permanently, restore в terraform-provider-decort имели дефолтное значение false, а в terraform-provider-dynamix true.

#### Аккаунты acconts

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_account_resource_consumption_list | consumed, reserved |
| data source dynamix_account_resource_consumption_get | consumed, reserved, resource_limits |
| data source dynamix_account_rg_list | computes, reserved, resource_limits, limits, reserved |
| resource dynamix_account | resource_limits, computes, machines |
| data source dynamix_disk_list_deleted | iotune |
| data source dynamix_disk_list_unattached | iotune |
| data source dynamix_disk_list | iotune |
| data source dynamix_disk_replication | iotune, replication |
| data source dynamix_disk | iotune |
| resource dynamix_disk_replication | iotune, replication |
| resource dynamix_disk | iotune |

#### Ресурсная группа bservice

Удалено поле `service_id` для импорта `resource dynamix_bservice`, теперь необходимо передавать `service_id`, при импорте например `terraform import dynamix_bservice.bs 5`

Удалено поле `compgroup_id` для импорта `resource dynamix_bservice`, теперь необходимо использовать связку `bservice_id#compgroup_id`, например `terraform import dynamix_bservice_group.bsg 5#10`

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Set:

| Название ресурса | Поля схемы |
|------------------|------------|
| resource dynamix_bservice | snapshots |

#### Ресурсная группа disks

| Название ресурса | Поля схемы | Изменение по сравнению с terraform-provider-decort | Комментарий |
|------------------|------------|---------------------------------------------------|-------------|
| resource dynamix_disk | iotune, shareable | Если при создании ресурса диска операция настроки лимитов (поле iotune) и/или операция поделиться диском (поле shareable) выполняются некорректно, теперь ресурс создается с предупреждениями (Warnings). Ранее ресурс создавался с ошибками (Errors). | Данное изменение касается только создания ресурса. Обновление ресурса проходит также: если операция изменения iotune и/или shareable выполняется некорректно, возвращаются ошибки (Errors). |
| resource dynamix_disk | - | Операция автоматического восстановления диска (для диска, находящегося в корзине) теперь происходит при чтении ресурса. Ранее она происходила при обновлении ресурса. | |
| data source dynamix_disk_list_unattached | ckey, meta | Изменилось названия поля с "_ckey" на "ckey" и с "_meta" на "meta". | |

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_disk_list_unattached | iotune |
| data source dynamix_disk | iotune |
| data source dynamix_disk_list | iotune |
| data source dynamix_disk_list_deleted | iotune |
| resource dynamix_disk | iotune |

#### Ресурсная группа rg

| Название ресурса | Поля схемы | Изменение по сравнению с terraform-provider-decort | Комментарий |
|------------------|------------|---------------------------------------------------|-------------|
| resource dynamix_resgroup | def_net_type | Поле def_net_type теперь только Optional (не Computed). Если не задан блок def_net, оно отображает текущий статус def_net_type. В случае если задан блок def_net, то текущий тип сети по умолчанию находится в поле def_net.net_type. | При другой реализации возникают ошибки, т.к. к вычисляемому полю def_net_type обращаются сразу две разные структуры, и фреймворк выдает ошибку при несовпадении плана и платформы, что неизбежно, когда к полю обращаются две разные структуры. |
| resource dynamix_resgroup | def_net, access, quota | Блоки def_net, access, quota стали атрибутами. При конфигурации ресурса задаются как атрибуты (через знак равно).<br/>Стало: def_net = {}.<br/>Было: def_net {}. | |
| resource dynamix_resgroup | force, permanently | Новые дефолтные значения: true.<br/>Старые дефолтные значения: false. | |
| resource dynamix_resgroup | restore | Новое дефолтное значение: true. | |
| data source dynamix_rg_usage | seps | Изменилась внутренняя структура списка seps<br/>Было: sep_id (string), map (map[string]string).<br/>Стало: sed_id (string), data_name (string), disk_size (float64), disk_size_max (float64) | Теперь структура seps аналогична таковой для data sources dynamix_rg_get_resource-consumption, dynamix_rg_resource_consumption_list. |
| data source dynamix_rg_list_lb | acl | Удалено вычисляемое поле acl. | Причина: несоответствие типов acl в terraform-provider-decort и ACL в sdk. |

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_rg_resource_consumption_list | consumed, reserved, resource_limits |
| data source dynamix_rg | resource_limits |
| data source dynamix_rg_get_resource_consumption | consumed, reserved, resource_limits |
| data source dynamix_rg_list | resource_limits |
| data source dynamix_rg_list_deleted | resource_limits |
| data source dynamix_rg_list_lb | server_default_settings, server_settings, primary_node, secondary_node |
| resource dynamix_resgroup | quota, def_net |

#### Внешние сети extnet

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_extnet | default_qos, vnfs |

#### Кластеры k8s

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_k8s | acl, masters |
| data source dynamix_k8s_list | service_account |
| data source dynamix_k8s_list_deleted | service_account |
| resource dynamix_k8s_cp | acl |

#### Образы image

Параметр permanently в terraform-provider-decort имел дефолтное значение false, а в terraform-provider-dynamix true.

#### Внутренние сети vins

| Название ресурса | Поля схемы | Изменение по сравнению с terraform-provider-decort | Комментарий |
|------------------|------------|---------------------------------------------------|-------------|
| data source dynamix_vins | ckey | Название вычисляемых полей изменено с "_ckey" на "ckey". | Переименование связано с ограничениями terraform framework. |
| resource dynamix_vins | ckey | Название вычисляемых полей изменено с "_ckey" на "ckey". | Переименование связано с ограничениями terraform framework. |
| resource dynamix_vins | ext_net_id, ext_ip_addr | Удалены вычисляемые поля ext_net_id и ext_ip_addr. | При создании и изменении внешних сетей используется блок ext_net {ext_net_id int; ext_net_ip string}. |
| resource dynamix_vins | force, permanently | Новые дефолтные значения: true.<br/>Старые дефолтные значения: false. | |
| resource dynamix_vins | restore | Новое дефолтное значение: true. | |
| resource dynamix_vins | - | Если при обновлении ресурса vins какая-либо операция (изменение полей/блоков enable, ext_net, ip, nat_rule, vnfdev_restart, vnfdev_redeploy) не может быть выполнена, возвращаются ошибки (Errors). | Ранее ресурс изменялся с предупреждениями (Warnings). |
| resource dynamix_vins | nat_rule | В блоке nat_rule поля int_ip и ext_port_start стали обязательными. Ранее были опциональными. | |

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_vins | vnf_dev, config, mgmt, resources, qos, default_qos, vnfs, dhcp, devices, primary, gw, nat,libvirt_settings |
| resource dynamix_vins | ext_net, vnf_dev, config, mgmt, resources, qos, default_qos, vnfs, dhcp, devices, primary, gw, nat, libvirt_settings |

#### Виртуальные машины KVM KVMVM

| Название ресурса | Поля схемы | Изменение по сравнению с terraform-provider-decort | Комментарий |
|------------------|------------|---------------------------------------------------|-------------|
| resource dynamix_kvmvm | disks | Поле удалено | Исключено дублирование работы с дисками, которое можно производить при помощи ресурса dynamix_disk |
| resource dynamix_kvmvm | affinity_rules, anti_affinity_rules | Изменен тип с List на Set | |
| resource dynamix_kvmvm | force, permanently | Новые дефолтные значения: true.<br/>Старые дефолтные значения: false. | |
| resource dynamix_kvmvm | restore | Новое дефолтное значение: true. | |
| resource dynamix_kvmvm | acl | Добавлен новый атрибут с вложенной | |
| resource dynamix_kvmvm | image_name | Добавлен новый атрибут | |
| resource dynamix_kvmvm | user_data | Добавлен новый атрибут | |
| resource dynamix_kvmvm | - | Операция автоматического восстановления диска (для диска, находящегося в корзине) теперь происходит при чтении ресурса. Ранее она происходила при обновлении ресурса. | |

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_kvmvm | acl, iotune, replication, qos, libvirt_settings |
| data source dynamix_kvmvm_list | qos, libvirt_settings |
| data source dynamix_kvmvm_list_deleted | qos, libvirt_settings |
| data source dynamix_kvmvm_user_list | items |
| resource dynamix_kvmvm | rollback, cd, boot_disk, acl, qos, iotune, replication, libvirt_settings |

#### Балансировщики нагрузок lb

Параметры permanently и restore в terraform-provider-decort имел дефолтное значение false, а в terraform-provider-dynamix true.

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_lb | server_default_settings, server_settings, primary_node, secondary_node |
| data source dynamix_lb_list | server_default_settings, server_settings, primary_node, secondary_node |
| data source dynamix_lb_list_deleted | server_default_settings, server_settings, primary_node, secondary_node |
| resource dynamix_lb | server_default_settings, server_settings, primary_node, secondary_node |
| resource dynamix_lb_backend | server_settings |

### Административная группа API

#### Аккаунты accounts

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_cb_account_resource_consumption_list | consumed, reserved |
| data source dynamix_cb_account_resource_consumption_get | consumed, reserved, resource_limits |
| data source dynamix_cb_account_rg_list | computes, reserved, resource_limits, limits, reserved |
| resource dynamix_cb_account | resource_limits, computes, machines |
| data source dynamix_cb_disk_list_deleted | iotune |
| data source dynamix_cb_disk_list_unattached | iotune |
| data source dynamix_cb_disk_list | iotune |
| data source dynamix_cb_disk_replication | iotune, replication |
| data source dynamix_cb_disk | iotune |
| resource dynamix_cb_disk_replication | iotune, replication |
| resource dynamix_cb_disk | iotune |

#### Диски disks

| Название ресурса | Поля схемы | Изменение по сравнению с terraform-provider-decort | Комментарий |
|------------------|------------|---------------------------------------------------|-------------|
| resource dynamix_cb_disk | iotune, shareable | Если при создании ресурса диска операция настроки лимитов (поле iotune) и/или операция поделиться диском (поле shareable) выполняются некорректно, теперь ресурс создается с предупреждениями (Warnings). Ранее ресурс создавался с ошибками (Errors). | Данное изменение касается только создания ресурса. Обновление ресурса проходит также: если операция изменения iotune и/или shareable выполняется некорректно, возвращаются ошибки (Errors). |
| resource dynamix_cb_disk | - | Операция автоматического восстановления диска (для диска, находящегося в корзине) теперь происходит при чтении ресурса. Ранее она происходила при обновлении ресурса. | |
| data source dynamix_cb_disk_list_unattached | ckey, meta | Изменилось названия поля с "_ckey" на "ckey" и с "_meta" на "meta". | |

Следующие поля в terraform-provider-decort имели тип списка (List), а в terraform-provider-dynamix имеют тип Single (единичная структура):

| Название ресурса | Поля схемы |
|------------------|------------|
| data source dynamix_cb_disk_list_unattached | iotune |
| data source dynamix_cb_disk | iotune |
| data source dynamix_cb_disk_list | iotune |
| data source dynamix_cb_disk_list_deleted | iotune |
| resource dynamix_cb_disk | iotune |