mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-08-26 13:25:43 +00:00
Add disk change detection
Signed-off-by: maidlover <117573165+maidl0ver@users.noreply.github.com>
This commit is contained in:
parent
c1141c4c54
commit
ad3beb7064
@ -52,7 +52,10 @@ const (
|
|||||||
dvCPUUnits = 1024
|
dvCPUUnits = 1024
|
||||||
dvDescription = ""
|
dvDescription = ""
|
||||||
dvDevicePassthroughMode = "0660"
|
dvDevicePassthroughMode = "0660"
|
||||||
|
dvDiskACL = false
|
||||||
dvDiskDatastoreID = "local"
|
dvDiskDatastoreID = "local"
|
||||||
|
dvDiskQuota = false
|
||||||
|
dvDiskReplicate = true
|
||||||
dvDiskSize = 4
|
dvDiskSize = 4
|
||||||
dvFeaturesNesting = false
|
dvFeaturesNesting = false
|
||||||
dvFeaturesKeyControl = false
|
dvFeaturesKeyControl = false
|
||||||
@ -107,8 +110,11 @@ const (
|
|||||||
mkCPUUnits = "units"
|
mkCPUUnits = "units"
|
||||||
mkDescription = "description"
|
mkDescription = "description"
|
||||||
mkDisk = "disk"
|
mkDisk = "disk"
|
||||||
|
mkDiskACL = "acl"
|
||||||
mkDiskDatastoreID = "datastore_id"
|
mkDiskDatastoreID = "datastore_id"
|
||||||
mkDiskMountOptions = "mount_options"
|
mkDiskMountOptions = "mount_options"
|
||||||
|
mkDiskQuota = "quota"
|
||||||
|
mkDiskReplicate = "replicate"
|
||||||
mkDiskSize = "size"
|
mkDiskSize = "size"
|
||||||
mkFeatures = "features"
|
mkFeatures = "features"
|
||||||
mkFeaturesNesting = "nesting"
|
mkFeaturesNesting = "nesting"
|
||||||
@ -2942,9 +2948,42 @@ func containerUpdate(ctx context.Context, d *schema.ResourceData, m interface{})
|
|||||||
updateBody.CPUUnits = &cpuUnits
|
updateBody.CPUUnits = &cpuUnits
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.HasChanges(mkDiskMountOptions) {
|
if d.HasChange(mkDisk) {
|
||||||
mountOptions := d.Get(mkDiskMountOptions).([]string)
|
diskBlock, err := structure.GetSchemaBlock(
|
||||||
updateBody.RootFS.MountOptions = &mountOptions
|
container,
|
||||||
|
d,
|
||||||
|
[]string{mkDisk},
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return diag.FromErr(err)
|
||||||
|
}
|
||||||
|
rootFS := &containers.CustomRootFS{}
|
||||||
|
rootFS.Volume = diskBlock[mkDiskDatastoreID].(string)
|
||||||
|
|
||||||
|
acl := types.CustomBool(diskBlock[mkDiskACL].(bool))
|
||||||
|
id := diskBlock[mkDiskDatastoreID].(string)
|
||||||
|
mountOptions := diskBlock[mkDiskMountOptions].([]interface{})
|
||||||
|
quota := types.CustomBool(diskBlock[mkDiskQuota].(bool))
|
||||||
|
replicate := types.CustomBool(diskBlock[mkDiskReplicate].(bool))
|
||||||
|
size := diskBlock[mkDiskSize].(string)
|
||||||
|
|
||||||
|
rootFS.ACL = &acl
|
||||||
|
rootFS.Volume = id // TODO: These aren't the same thing (?)
|
||||||
|
rootFS.Quota = "a
|
||||||
|
rootFS.Replicate = &replicate
|
||||||
|
rootFS.Size = size // TODO: Size is handled differently, can only grow
|
||||||
|
|
||||||
|
if len(mountOptions) > 0 {
|
||||||
|
mountOptionsArray := make([]string, 0, len(mountOptions))
|
||||||
|
|
||||||
|
for _, option := range mountOptions {
|
||||||
|
mountOptionsArray = append(mountOptionsArray, option.(string))
|
||||||
|
}
|
||||||
|
rootFS.MountOptions = &mountOptionsArray
|
||||||
|
}
|
||||||
|
updateBody.RootFS = rootFS
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.HasChange(mkFeatures) {
|
if d.HasChange(mkFeatures) {
|
||||||
|
Loading…
Reference in New Issue
Block a user