diff --git a/CHANGELOG.md b/CHANGELOG.md index 98f093a5..97cf61c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,38 +1,8 @@ -## Version 4.11.3 +## Version 4.11.4 ### Добавлено -#### kvmvm +#### vins | Идентификатор
задачи | Описание | | --- | --- | -| BATF-1276 | Добавлено опциональное поле `create_blank` в resource `decort_kvmvm` в cloudapi/kvmvm и в resource `decort_cb_kvmvm` в cloudbroker/kvmvm | -| BATF-1276 | Опциональное поле `alt_boot_id` в resource `decort_kvmvm` в cloudapi/kvmvm | - -### Изменено -#### kvmvm -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-1276 | Тип поля `disk_type` с опционального на вычисляемый в resource `decort_kvmvm` в cloudapi/kvmvm и в resource `decort_cb_kvmvm` в cloudbroker/kvmvm | - -### Исправлено - -#### flipgroup -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-1283 | Установка поля `desc` с платформы в ресурсе `decort_cb_flipgroup` в cloudbroker/flipgroup | - -#### kvmvm -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-1276 | Ошибка при старте ВМ с указанием поля `alt_boot_id` в resource `decort_cb_kvmvm` в cloudbroker/kvmvm | - -#### trunk -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-1285 | Установка полей `account_ids`, `ovs_bridge`, `native_vlan_id`, `trunk_tags` с платформы в ресурсе `decort_cb_trunk ` в cloudbroker/trunk | - -#### vfpool -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-1289 | Разрешено создавать пул виртуальных функций с блоком `config` при значении поля `enable` равным `false` в resource `decort_cb_vfpool` в cloudbroker/vfpool | -| BATF-1289 | Разрешено обновлять поля `name`, `description`, `account_access` и `rg_access` без блока `config` в resource `decort_cb_vfpool` в cloudbroker/vfpool | +| BATF-1424 | Возможность задать поле `vnfdev_start` при создании resource `decort_cb_vins` в cloudbroker/vins | \ No newline at end of file diff --git a/Makefile b/Makefile index 362ae4b4..078c058d 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ ZIPDIR = ./zip BINARY=${NAME} WORKPATH= ./examples/terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAMESPACE}/${VERSION}/${OS_ARCH} MAINPATH = ./cmd/decort/ -VERSION=4.11.3 +VERSION=4.11.4 OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH) FILES = ${BINARY}_${VERSION}_darwin_amd64\ diff --git a/internal/service/cloudbroker/vins/resource_vins.go b/internal/service/cloudbroker/vins/resource_vins.go index 2920d97a..1ee48fdc 100644 --- a/internal/service/cloudbroker/vins/resource_vins.go +++ b/internal/service/cloudbroker/vins/resource_vins.go @@ -121,6 +121,12 @@ func resourceVinsCreate(ctx context.Context, d *schema.ResourceData, m interface } } + if start, ok := d.GetOkExists("vnfdev_start"); ok && !start.(bool) { + if err := resourceVinsVnfDevStop(ctx, m, vinsID); err != nil { + warnings.Add(err) + } + } + return append(warnings.Get(), resourceVinsRead(ctx, d, m)...) } @@ -786,20 +792,27 @@ func resourceVinsChangeVnfReset(ctx context.Context, d *schema.ResourceData, m i } func resourceVinsChangeVnfStartStop(ctx context.Context, d *schema.ResourceData, m interface{}) error { - c := m.(*controller.ControllerCfg) - vinsId := uint64(d.Get("vins_id").(int)) - _, newStart := d.GetChange("vnfdev_start") - if newStart.(bool) { - req := vins.VNFDevStartRequest{VINSID: vinsId} - - _, err := c.CloudBroker().VINS().VNFDevStart(ctx, req) - if err != nil { - return err - } + if d.Get("vnfdev_start").(bool) { + return resourceVinsVnfDevStart(ctx, m, vinsId) } + return resourceVinsVnfDevStop(ctx, m, vinsId) +} + +func resourceVinsVnfDevStart(ctx context.Context, m interface{}, vinsId uint64) error { + c := m.(*controller.ControllerCfg) + + req := vins.VNFDevStartRequest{VINSID: vinsId} + + _, err := c.CloudBroker().VINS().VNFDevStart(ctx, req) + return err +} + +func resourceVinsVnfDevStop(ctx context.Context, m interface{}, vinsId uint64) error { + c := m.(*controller.ControllerCfg) + req := vins.VNFDevStopRequest{VINSID: vinsId} _, err := c.CloudBroker().VINS().VNFDevStop(ctx, req) diff --git a/internal/service/cloudbroker/vins/schema.go b/internal/service/cloudbroker/vins/schema.go index b1324032..336736b5 100644 --- a/internal/service/cloudbroker/vins/schema.go +++ b/internal/service/cloudbroker/vins/schema.go @@ -2177,7 +2177,6 @@ func resourceVinsSchemaMake() map[string]*schema.Schema { "vnfdev_start": { Type: schema.TypeBool, Optional: true, - Default: false, Description: "true to start vnfdev, false to stop vnfdev", }, "vnfdev_reset": { diff --git a/samples/cloudbroker/vins/resource_vins/main.tf b/samples/cloudbroker/vins/resource_vins/main.tf index 5240334f..2389a20e 100644 --- a/samples/cloudbroker/vins/resource_vins/main.tf +++ b/samples/cloudbroker/vins/resource_vins/main.tf @@ -8,7 +8,7 @@ 4. Добавлять и убирать подключение к внешней сети 5. Резервировать и освобождать ip для vins 6. Добавлять и удалять natrule -7. Перезапускать и редеплоить vnfdev +7. Запускать, останавливать, перезапускать и редеплоить vnfdev */ #Раскомментируйте этот код, @@ -213,7 +213,7 @@ resource "decort_cb_vins" "vins" { #опциональный параметр #true: старт vnfDev; false: стоп vnfDev #тип - булев - #используется при обновлении + #используется при создании и обновлении #vnfdev_start = true #перезапуск vnfDev