From 3c6cbd0d536029403e3e753d618fb6304a503acd Mon Sep 17 00:00:00 2001 From: Pavel Boldyrev <627562+bpg@users.noreply.github.com> Date: Tue, 12 Aug 2025 01:01:41 -0400 Subject: [PATCH] fixes for edge cases Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com> --- fwprovider/test/resource_container_test.go | 1 + proxmoxtf/resource/container/container.go | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/fwprovider/test/resource_container_test.go b/fwprovider/test/resource_container_test.go index 9d251fb3..93510379 100644 --- a/fwprovider/test/resource_container_test.go +++ b/fwprovider/test/resource_container_test.go @@ -195,6 +195,7 @@ func TestAccResourceContainer(t *testing.T) { disk { datastore_id = "local-lvm" size = 4 + mount_options = [] } mount_point { volume = "local-lvm" diff --git a/proxmoxtf/resource/container/container.go b/proxmoxtf/resource/container/container.go index bd424299..f6d4cff4 100644 --- a/proxmoxtf/resource/container/container.go +++ b/proxmoxtf/resource/container/container.go @@ -2305,11 +2305,16 @@ func containerRead(ctx context.Context, d *schema.ResourceData, m interface{}) d disk[mkDiskQuota] = containerConfig.RootFS.Quota disk[mkDiskDatastoreID] = volumeParts[0] disk[mkDiskSize] = containerConfig.RootFS.Size.InGigabytes() - disk[mkDiskMountOptions] = containerConfig.RootFS.MountOptions + if containerConfig.RootFS.MountOptions != nil { + disk[mkDiskMountOptions] = *containerConfig.RootFS.MountOptions + } else { + disk[mkDiskMountOptions] = []string{} + } } else { // Default value of "storage" is "local" according to the API documentation. disk[mkDiskDatastoreID] = "local" disk[mkDiskSize] = dvDiskSize + disk[mkDiskMountOptions] = []string{} } currentDisk := d.Get(mkDisk).([]interface{}) @@ -3001,16 +3006,15 @@ func containerUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) rootFS.Replicate = &replicate rootFS.Size = size - if len(mountOptions) > 0 { - mountOptionsArray := make([]string, 0, len(mountOptions)) + mountOptionsStrings := make([]string, 0, len(mountOptions)) - for _, option := range mountOptions { - mountOptionsArray = append(mountOptionsArray, option.(string)) - } - - rootFS.MountOptions = &mountOptionsArray + for _, option := range mountOptions { + mountOptionsStrings = append(mountOptionsStrings, option.(string)) } + // Always set, including empty, to allow clearing mount options + rootFS.MountOptions = &mountOptionsStrings + updateBody.RootFS = rootFS rebootRequired = true