diff --git a/CHANGELOG.md b/CHANGELOG.md index a4fc43f..bee0f79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,4 @@ -## Version 4.3.2 +## Version 4.3.3 ## Bugfixes -- Fixed bootdisk flattens -- Updated golang-decort-sdk version with fixed permamently field in cloudapi/cloudbroker/compute/diskDel \ No newline at end of file +- Fixed bootdisk flattens: porvider flattens first found disk with type "B" as boot_disk \ No newline at end of file diff --git a/Makefile b/Makefile index 0c24973..a6463bd 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.3.2 +VERSION=4.3.3 OS_ARCH=$(shell go env GOHOSTOS)_$(shell go env GOHOSTARCH) # OS_ARCH=darwin_arm64 # OS_ARCH=windows_amd64 diff --git a/internal/service/cloudapi/kvmvm/flattens.go b/internal/service/cloudapi/kvmvm/flattens.go index 418bd5b..5b007f8 100644 --- a/internal/service/cloudapi/kvmvm/flattens.go +++ b/internal/service/cloudapi/kvmvm/flattens.go @@ -36,7 +36,6 @@ import ( "encoding/json" "sort" "strconv" - "strings" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" log "github.com/sirupsen/logrus" @@ -237,10 +236,10 @@ func flattenBootDisk(bootDisk *compute.ItemComputeDisk) []map[string]interface{} return res } -func flattenComputeDisksDemo(disksList compute.ListComputeDisks, extraDisks []interface{}) []map[string]interface{} { +func flattenComputeDisksDemo(disksList compute.ListComputeDisks, extraDisks []interface{}, bootDiskId uint64) []map[string]interface{} { res := make([]map[string]interface{}, 0, len(disksList)) for _, disk := range disksList { - if strings.Contains(disk.Name, "bootdisk") || findInExtraDisks(uint(disk.ID), extraDisks) { //skip main bootdisk and extraDisks + if disk.ID == bootDiskId || findInExtraDisks(uint(disk.ID), extraDisks) { //skip main bootdisk and extraDisks continue } temp := map[string]interface{}{ @@ -281,7 +280,7 @@ func flattenNetwork(interfaces compute.ListInterfaces) []map[string]interface{} func findBootDisk(disks compute.ListComputeDisks) *compute.ItemComputeDisk { for _, disk := range disks { - if strings.Contains(disk.Name, "bootdisk") { + if disk.Type == "B" { return &disk } } @@ -321,7 +320,7 @@ func flattenCompute(d *schema.ResourceData, computeRec compute.RecordCompute) er d.Set("deleted_time", computeRec.DeletedTime) d.Set("description", computeRec.Description) d.Set("devices", string(devices)) - err := d.Set("disks", flattenComputeDisksDemo(computeRec.Disks, d.Get("extra_disks").(*schema.Set).List())) + err := d.Set("disks", flattenComputeDisksDemo(computeRec.Disks, d.Get("extra_disks").(*schema.Set).List(), bootDisk.ID)) if err != nil { return err } diff --git a/internal/service/cloudapi/kvmvm/resource_compute.go b/internal/service/cloudapi/kvmvm/resource_compute.go index 93d10ce..7665b39 100644 --- a/internal/service/cloudapi/kvmvm/resource_compute.go +++ b/internal/service/cloudapi/kvmvm/resource_compute.go @@ -772,7 +772,7 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf for _, disk := range deletedDisks { diskConv := disk.(map[string]interface{}) - if strings.Contains(diskConv["disk_name"].(string), "bootdisk") { + if diskConv["disk_type"].(string) == "B" { continue } @@ -800,7 +800,7 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf if len(addedDisks) > 0 { for _, disk := range addedDisks { diskConv := disk.(map[string]interface{}) - if strings.Contains(diskConv["disk_name"].(string), "bootdisk") { + if diskConv["disk_type"].(string) == "B" { continue } req := compute.DiskAddRequest{ @@ -832,7 +832,7 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf if len(updatedDisks) > 0 { for _, disk := range updatedDisks { diskConv := disk.(map[string]interface{}) - if strings.Contains(diskConv["disk_name"].(string), "bootdisk") { + if diskConv["disk_type"].(string) == "B" { continue } req := compute.DiskResizeRequest{