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