From 1b81a71504f569569ad30e228b7ba71bcbf8db32 Mon Sep 17 00:00:00 2001 From: asteam Date: Fri, 18 Jul 2025 16:54:16 +0300 Subject: [PATCH] 4.9.2 --- CHANGELOG.md | 29 ++++--------------- Makefile | 2 +- docs/resources/cb_image.md | 3 +- go.mod | 2 +- go.sum | 4 +-- .../service/cloudapi/kvmvm/utility_compute.go | 9 ++---- .../cloudbroker/image/resource_image.go | 19 +----------- internal/service/cloudbroker/image/schema.go | 8 +---- .../cloudbroker/kvmvm/utility_compute.go | 9 ++---- .../cloudbroker/image/resource_image/main.tf | 10 +------ 10 files changed, 20 insertions(+), 75 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55c9674..883bb2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,40 +1,23 @@ -## Version 4.9.1 +## Version 4.9.2 ### Добавлено ### Исправлено -#### account -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-823 | Ошибка удаления resource 'decort_cb_account' в cloudbroker/account | -| BATF-832 | Ошибка отлючения resource 'decort_account' в cloudapi/account и resource 'decort_cb_account' в cloudbroker/account | - -#### k8s +#### image | Идентификатор
задачи | Описание | | --- | --- | -| BATF-955 | Ошибка редактирования resource 'decort_cb_k8s_cp' в cloudbroker/k8s | +| BATF-999 | Изменен тип поля `url` с optional на required в resource `decort_cb_image` в cloudbroker/image | -#### sep +#### kvmvm | Идентификатор
задачи | Описание | | --- | --- | -| BATF-823 | Ошибка при получении данных при заданном поле `rg_id` в datasource `decort_cb_available_sep_and_pools_list` в cloudbroker/sep и в datasource `decort_available_sep_and_pools_list` в cloudapi/sep | +| BATF-1002 | Ошибка при смене `ip_address` в блоке `network` приводящаяя к смене MAC адрес сети в resource `decort_compute` и `decort_cb_compute` в cloupapi/kvmvm и cloudbroker/kvmvm | ### Удалено #### image | Идентификатор
задачи | Описание | | --- | --- | -| BATF-835 | Вычисляемое поле `meta` в resources `decort_cb_cdrom_image`, `decort_cb_virtual_image` и data source `decort_cb_image_list_stacks` в cloudbroker/image | -| BATF-825 | Опциональное поле `accounts` в resources `decort_cb_image`, `decort_cb_image_from_blank_compute` `decort_cb_image_from_platform_disk` в cloudbroker/image | - -#### kvmvm -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-962 | Поле `stateless` в resource `decort_kvmvm` в cloudapi/kvmvm| - -#### vins -| Идентификатор
задачи | Описание | -| --- | --- | -| BATF-881 | Значение по умолчанию в поле `pre_reservations_num` в resource `decort_vins` в cloudapi/vins и в resource `decort_cb_vins` в cloudbroker/vins | +| BATF-999 | Опциональное поле `file_path` в resource `decort_cb_image` в cloudbroker/image | diff --git a/Makefile b/Makefile index 25b45f3..90ca8ac 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.9.1 +VERSION=4.9.2 OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH) FILES = ${BINARY}_${VERSION}_darwin_amd64\ diff --git a/docs/resources/cb_image.md b/docs/resources/cb_image.md index d6ad011..a3fddfb 100644 --- a/docs/resources/cb_image.md +++ b/docs/resources/cb_image.md @@ -20,6 +20,7 @@ description: |- - `boot_type` (String) Boot type of image bios or uefi - `image_type` (String) Image type linux, windows or other - `name` (String) Name of the rescue disk +- `url` (String) URL where to download media from ### Optional @@ -30,7 +31,6 @@ description: |- - `drivers` (List of String) List of types of compute suitable for image. Example: [ "KVM_X86" ] - `enabled` (Boolean) - `enabled_stacks` (List of Number) -- `file_path` (String) path to image file - `hot_resize` (Boolean) Does this machine supports hot resize - `network_interface_naming` (String) select a network interface naming pattern for your Linux machine. eth - onboard, ens - pci slot naming - `password` (String) Optional password for the image @@ -40,7 +40,6 @@ description: |- - `shared_with` (List of Number) - `sync_mode` (Boolean) Create image from a media identified by URL (in synchronous mode) - `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) -- `url` (String) URL where to download media from - `username` (String) Optional username for the image - `username_dl` (String) username for upload binary media diff --git a/go.mod b/go.mod index 9dc9b01..a5eb68c 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 github.com/sirupsen/logrus v1.9.0 golang.org/x/net v0.23.0 - repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4 + repository.basistech.ru/BASIS/decort-golang-sdk v1.11.6 ) require ( diff --git a/go.sum b/go.sum index 346bc97..5c66ff3 100644 --- a/go.sum +++ b/go.sum @@ -273,5 +273,5 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4 h1:OEFgSEGjzut+vVMGeNgoNq3dtk63FbXB6yGLTywtAas= -repository.basistech.ru/BASIS/decort-golang-sdk v1.11.4/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo= +repository.basistech.ru/BASIS/decort-golang-sdk v1.11.6 h1:CTcMkUJgwDsUA+Az8FI5iLpZDk4ubOO4JnAfbOwDnM0= +repository.basistech.ru/BASIS/decort-golang-sdk v1.11.6/go.mod h1:OaUynHHuSjWMzpfyoL4au6oLcUogqUkPPBKA15pbHWo= diff --git a/internal/service/cloudapi/kvmvm/utility_compute.go b/internal/service/cloudapi/kvmvm/utility_compute.go index 6b20898..acd4c8a 100644 --- a/internal/service/cloudapi/kvmvm/utility_compute.go +++ b/internal/service/cloudapi/kvmvm/utility_compute.go @@ -397,15 +397,12 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap, newMap := newNetwork.(map[string]interface{}) if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) { found = true - switch { - case (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != ""): + if (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") { changeIpMap = append(changeIpMap, newMap) - found = true - fallthrough - case newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "": + } + if newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "" { newMap["old_mac"] = oldMap["mac"] changeMacMap = append(changeMacMap, newMap) - found = true } } if found { diff --git a/internal/service/cloudbroker/image/resource_image.go b/internal/service/cloudbroker/image/resource_image.go index 76617cf..53b28c0 100644 --- a/internal/service/cloudbroker/image/resource_image.go +++ b/internal/service/cloudbroker/image/resource_image.go @@ -49,30 +49,13 @@ import ( func resourceImageCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceImageCreate: called for image %s", d.Get("name").(string)) - url, urlOk := d.GetOk("url") - filePath, fileImageOk := d.GetOk("file_path") - - if !urlOk && !fileImageOk { - return diag.Errorf("resourceImageCreate: no valid url or file_path specified") - } - - if urlOk && fileImageOk { - return diag.Errorf("resourceImageCreate: either url or resource file_path should be specified") - } + url, _ := d.GetOk("url") c := m.(*controller.ControllerCfg) syncMode := d.Get("sync_mode").(bool) var imageId uint64 - if fileImageOk { - var err error - url, err = c.CloudBroker().Image().UploadImageFile(ctx, filePath.(string)) - if err != nil { - return diag.FromErr(err) - } - } - if syncMode { req, err := SyncCreateRequest(ctx, d, m, url.(string)) if err != nil { diff --git a/internal/service/cloudbroker/image/schema.go b/internal/service/cloudbroker/image/schema.go index 08ee101..fbc026e 100644 --- a/internal/service/cloudbroker/image/schema.go +++ b/internal/service/cloudbroker/image/schema.go @@ -1174,15 +1174,9 @@ func resourceImageSchemaMake() map[string]*schema.Schema { }, "url": { Type: schema.TypeString, - Optional: true, - Computed: true, + Required: true, Description: "URL where to download media from", }, - "file_path": { - Type: schema.TypeString, - Optional: true, - Description: "path to image file", - }, "boot_type": { Type: schema.TypeString, Required: true, diff --git a/internal/service/cloudbroker/kvmvm/utility_compute.go b/internal/service/cloudbroker/kvmvm/utility_compute.go index 8e3b3ac..ded3dcc 100644 --- a/internal/service/cloudbroker/kvmvm/utility_compute.go +++ b/internal/service/cloudbroker/kvmvm/utility_compute.go @@ -764,15 +764,12 @@ func differenceNetwork(oldList, newList []interface{}) (detachMap, changeIpMap, newMap := newNetwork.(map[string]interface{}) if newMap["net_type"] == oldMap["net_type"] && newMap["net_id"] == oldMap["net_id"] && newMap["weight"] == oldMap["weight"] && (newMap["mtu"] == oldMap["mtu"] || newMap["mtu"].(int) == 0) { found = true - switch { - case (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != ""): + if (newMap["net_type"].(string) == "EXTNET" || newMap["net_type"].(string) == "VINS") && (newMap["ip_address"] != oldMap["ip_address"] && newMap["ip_address"].(string) != "") { changeIpMap = append(changeIpMap, newMap) - found = true - fallthrough - case newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "": + } + if newMap["mac"] != oldMap["mac"] && newMap["mac"].(string) != "" { newMap["old_mac"] = oldMap["mac"] changeMacMap = append(changeMacMap, newMap) - found = true } } if found { diff --git a/samples/cloudbroker/image/resource_image/main.tf b/samples/cloudbroker/image/resource_image/main.tf index 6cf9e5a..898b7c7 100644 --- a/samples/cloudbroker/image/resource_image/main.tf +++ b/samples/cloudbroker/image/resource_image/main.tf @@ -38,19 +38,11 @@ resource "decort_cb_image" "my_image" { name = "test_image_rename" #адрес образа - #опциональный параметр - #внимание, для создания ресурса обязательно должен быть указан или url, или file_path + #обязательный параметр #тип - строка #используется при создании url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download" - #путь к образу для загрузки - #опциональный параметр - #внимание, для создания ресурса обязательно должен быть указан или url, или file_path - #тип - строка - #используется при создании - file_path = "img.iso" - #тип загрузки образа #обязательный параметр #тип - строка