# 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 |

#### Ресурсная группа 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          |
| resource dynamix_vins    | ext_net, vnf_dev, config, mgmt, resources, qos, default_qos, vnfs, dhcp, devices, primary, gw, nat |

#### Виртуальные машины 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 | -                                   | Операция автоматического восстановления диска (для диска, находящегося в корзине) теперь происходит при чтении ресурса. Ранее она происходила при обновлении ресурса. |                                                                                                    |

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

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

#### Балансировщики нагрузок 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     |