mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-03 20:12:59 +00:00
Initial fix for datastore path detection issue
This commit is contained in:
parent
1efe8019e4
commit
877506a0b4
@ -1573,7 +1573,13 @@ func resourceVirtualEnvironmentVMCreateCustomDisks(d *schema.ResourceData, m int
|
|||||||
commands = append(
|
commands = append(
|
||||||
commands,
|
commands,
|
||||||
`set -e`,
|
`set -e`,
|
||||||
fmt.Sprintf(`cp "$(grep -Pzo ': %s\s+path\s+[^\s]+' /etc/pve/storage.cfg | grep -Pzo '/[^\s]*' | tr -d '\000')%s" %s`, fileIDParts[0], filePath, filePathTmp),
|
`export nr='^[A-Za-z0-9_]+: ([A-Za-z0-9_]+)$'`,
|
||||||
|
`export pr='^[[:space:]]+path[[:space:]]+([^[:space:]]+)$'`,
|
||||||
|
`export dn=""`,
|
||||||
|
`export dp=""`,
|
||||||
|
fmt.Sprintf(`while IFS='' read -r l || [[ -n "$l" ]]; do if [[ "$l" =~ $nr ]]; then export dn="${BASH_REMATCH[1]}"; elif [[ "$l" =~ $pr ]] && [[ "$dn" == "%s" ]]; then export dp="${BASH_REMATCH[1]}"; break; fi; done < /etc/pve/storage.cfg`, fileIDParts[0]),
|
||||||
|
`if [[ -z "$dp" ]]; then echo "Failed to determine the datastore path"; exit 1; fi`,
|
||||||
|
fmt.Sprintf(`cp "${dp}%s" %s`, filePath, filePathTmp),
|
||||||
fmt.Sprintf(`qemu-img resize %s %dG`, filePathTmp, size),
|
fmt.Sprintf(`qemu-img resize %s %dG`, filePathTmp, size),
|
||||||
fmt.Sprintf(`qm importdisk %d %s %s -format qcow2`, vmID, filePathTmp, datastoreID),
|
fmt.Sprintf(`qm importdisk %d %s %s -format qcow2`, vmID, filePathTmp, datastoreID),
|
||||||
fmt.Sprintf(`qm set %d -scsi%d %s:vm-%d-disk-%d%s`, vmID, i, datastoreID, vmID, diskCount+importedDiskCount, diskOptions),
|
fmt.Sprintf(`qm set %d -scsi%d %s:vm-%d-disk-%d%s`, vmID, i, datastoreID, vmID, diskCount+importedDiskCount, diskOptions),
|
||||||
@ -2675,41 +2681,39 @@ func resourceVirtualEnvironmentVMReadNetworkValues(d *schema.ResourceData, m int
|
|||||||
nodeName := d.Get(mkResourceVirtualEnvironmentVMNodeName).(string)
|
nodeName := d.Get(mkResourceVirtualEnvironmentVMNodeName).(string)
|
||||||
started := d.Get(mkResourceVirtualEnvironmentVMStarted).(bool)
|
started := d.Get(mkResourceVirtualEnvironmentVMStarted).(bool)
|
||||||
|
|
||||||
if !started {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
ipv4Addresses := []interface{}{}
|
ipv4Addresses := []interface{}{}
|
||||||
ipv6Addresses := []interface{}{}
|
ipv6Addresses := []interface{}{}
|
||||||
macAddresses := []interface{}{}
|
macAddresses := []interface{}{}
|
||||||
networkInterfaceNames := []interface{}{}
|
networkInterfaceNames := []interface{}{}
|
||||||
|
|
||||||
if vmConfig.Agent != nil && vmConfig.Agent.Enabled != nil && *vmConfig.Agent.Enabled {
|
if started {
|
||||||
networkInterfaces, err := veClient.WaitForNetworkInterfacesFromVMAgent(nodeName, vmID, 1800, 5)
|
if vmConfig.Agent != nil && vmConfig.Agent.Enabled != nil && *vmConfig.Agent.Enabled {
|
||||||
|
networkInterfaces, err := veClient.WaitForNetworkInterfacesFromVMAgent(nodeName, vmID, 1800, 5)
|
||||||
|
|
||||||
if err == nil && networkInterfaces.Result != nil {
|
if err == nil && networkInterfaces.Result != nil {
|
||||||
ipv4Addresses = make([]interface{}, len(*networkInterfaces.Result))
|
ipv4Addresses = make([]interface{}, len(*networkInterfaces.Result))
|
||||||
ipv6Addresses = make([]interface{}, len(*networkInterfaces.Result))
|
ipv6Addresses = make([]interface{}, len(*networkInterfaces.Result))
|
||||||
macAddresses = make([]interface{}, len(*networkInterfaces.Result))
|
macAddresses = make([]interface{}, len(*networkInterfaces.Result))
|
||||||
networkInterfaceNames = make([]interface{}, len(*networkInterfaces.Result))
|
networkInterfaceNames = make([]interface{}, len(*networkInterfaces.Result))
|
||||||
|
|
||||||
for ri, rv := range *networkInterfaces.Result {
|
for ri, rv := range *networkInterfaces.Result {
|
||||||
rvIPv4Addresses := []interface{}{}
|
rvIPv4Addresses := []interface{}{}
|
||||||
rvIPv6Addresses := []interface{}{}
|
rvIPv6Addresses := []interface{}{}
|
||||||
|
|
||||||
for _, ip := range *rv.IPAddresses {
|
for _, ip := range *rv.IPAddresses {
|
||||||
switch ip.Type {
|
switch ip.Type {
|
||||||
case "ipv4":
|
case "ipv4":
|
||||||
rvIPv4Addresses = append(rvIPv4Addresses, ip.Address)
|
rvIPv4Addresses = append(rvIPv4Addresses, ip.Address)
|
||||||
case "ipv6":
|
case "ipv6":
|
||||||
rvIPv6Addresses = append(rvIPv6Addresses, ip.Address)
|
rvIPv6Addresses = append(rvIPv6Addresses, ip.Address)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
ipv4Addresses[ri] = rvIPv4Addresses
|
ipv4Addresses[ri] = rvIPv4Addresses
|
||||||
ipv6Addresses[ri] = rvIPv6Addresses
|
ipv6Addresses[ri] = rvIPv6Addresses
|
||||||
macAddresses[ri] = strings.ToUpper(rv.MACAddress)
|
macAddresses[ri] = strings.ToUpper(rv.MACAddress)
|
||||||
networkInterfaceNames[ri] = rv.Name
|
networkInterfaceNames[ri] = rv.Name
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2871,10 +2875,8 @@ func resourceVirtualEnvironmentVMUpdate(d *schema.ResourceData, m interface{}) e
|
|||||||
rebootRequired = true
|
rebootRequired = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.HasChange(mkResourceVirtualEnvironmentVMName) {
|
name := d.Get(mkResourceVirtualEnvironmentVMName).(string)
|
||||||
name := d.Get(mkResourceVirtualEnvironmentVMName).(string)
|
updateBody.Name = &name
|
||||||
updateBody.Name = &name
|
|
||||||
}
|
|
||||||
|
|
||||||
if d.HasChange(mkResourceVirtualEnvironmentVMTabletDevice) {
|
if d.HasChange(mkResourceVirtualEnvironmentVMTabletDevice) {
|
||||||
tabletDevice := proxmox.CustomBool(d.Get(mkResourceVirtualEnvironmentVMTabletDevice).(bool))
|
tabletDevice := proxmox.CustomBool(d.Get(mkResourceVirtualEnvironmentVMTabletDevice).(bool))
|
||||||
|
Loading…
Reference in New Issue
Block a user