Skip to content

Commit

Permalink
Merge pull request #451 from mleone87/master
Browse files Browse the repository at this point in the history
fix for some issues occurred
  • Loading branch information
ggongaware authored Nov 23, 2021
2 parents eb7eda6 + d45c647 commit 2227197
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 87 deletions.
31 changes: 0 additions & 31 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,6 @@ github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugX
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ=
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo=
github.com/Telmate/proxmox-api-go v0.0.0-20211022153530-57ee1e4bd869 h1:IcMtti6HuXLZwUUkv+sEQSKwia+OCaeaBt5HFfDi668=
github.com/Telmate/proxmox-api-go v0.0.0-20211022153530-57ee1e4bd869/go.mod h1:keBhXWLa+UBajvf79xvKcfiqeIc7vZL9wOqxuy1CBGw=
github.com/Telmate/proxmox-api-go v0.0.0-20211023205737-5ce2d5fbf04e h1:cL8732QTN0+DqhOiHAL4aDSD1hwrIvOPl9c1mpCJbco=
github.com/Telmate/proxmox-api-go v0.0.0-20211023205737-5ce2d5fbf04e/go.mod h1:keBhXWLa+UBajvf79xvKcfiqeIc7vZL9wOqxuy1CBGw=
github.com/Telmate/proxmox-api-go v0.0.0-20211025150448-0cc61e17eed6 h1:NOMF/RS2IMr4ljhKUK0q8xi16a3K5tMi0mAwCzdfp90=
github.com/Telmate/proxmox-api-go v0.0.0-20211025150448-0cc61e17eed6/go.mod h1:keBhXWLa+UBajvf79xvKcfiqeIc7vZL9wOqxuy1CBGw=
github.com/Telmate/proxmox-api-go v0.0.0-20211101191122-8bbe30eb7171 h1:XHB+u94AWr9xDbQXqzCIeuGvq7devG5FS8OmAL3clQM=
github.com/Telmate/proxmox-api-go v0.0.0-20211101191122-8bbe30eb7171/go.mod h1:keBhXWLa+UBajvf79xvKcfiqeIc7vZL9wOqxuy1CBGw=
github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk=
Expand Down Expand Up @@ -235,8 +229,6 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.8.0 h1:GSumgrL6GGcRYU37YuF1CC59h
github.com/hashicorp/terraform-plugin-sdk/v2 v2.8.0/go.mod h1:6KbP09YzlB++S6XSUKYl83WyoHVN4MgeoCbPRsdfCtA=
github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=
github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=
github.com/hashicorp/yamux v0.0.0-20210826001029-26ff87cf9493 h1:brI5vBRUlAlM34VFmnLPwjnCL/FxAJp9XvOdX6Zt+XE=
github.com/hashicorp/yamux v0.0.0-20210826001029-26ff87cf9493/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87 h1:xixZ2bWeofWV68J+x6AzmKuVM/JWCQwkWm6GW/MUR6I=
github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
Expand Down Expand Up @@ -322,8 +314,6 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.25.0 h1:Rj7XygbUHKUlDPcVdoLyR91fJBsduXj5fRxyqIQj/II=
github.com/rs/zerolog v1.25.0/go.mod h1:7KHcEGe0QZPOm2IE4Kpb5rTh6n1h2hIgS5OOnu1rUaI=
github.com/rs/zerolog v1.26.0 h1:ORM4ibhEZeTeQlCojCK2kPz1ogAY4bGs4tD+SaAdGaE=
github.com/rs/zerolog v1.26.0/go.mod h1:yBiM87lvSqX8h0Ww4sdzNSkVYZ8dL2xjZJG1lAuGZEo=
github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4=
Expand Down Expand Up @@ -355,14 +345,11 @@ github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6e
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
github.com/zclconf/go-cty v1.8.4/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
github.com/zclconf/go-cty v1.9.1 h1:viqrgQwFl5UpSxc046qblj78wZXVDFnSOufaOTER+cc=
github.com/zclconf/go-cty v1.9.1/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
github.com/zclconf/go-cty v1.10.0 h1:mp9ZXQeIcN8kAwuqorjH+Q+njbJKjLrvB2yIh4q7U+0=
github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8=
Expand Down Expand Up @@ -449,8 +436,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211020060615-d418f374d309 h1:A0lJIi+hcTR6aajJH4YqKWwohY4aW9RO7oRMcdv+HKI=
golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211101193420-4a448f8816b3 h1:VrJZAjbekhoRn7n5FBujY31gboH+iB3pdLxn3gE9FjU=
golang.org/x/net v0.0.0-20211101193420-4a448f8816b3/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
Expand Down Expand Up @@ -508,14 +493,6 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211020174200-9d6173849985 h1:LOlKVhfDyahgmqa97awczplwkjzNaELFg3zRIJ13RYo=
golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211023085530-d6a326fbbf70 h1:SeSEfdIxyvwGJliREIJhRPPXvW6sDlLT+UQ3B0hD0NA=
golang.org/x/sys v0.0.0-20211023085530-d6a326fbbf70/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025112917-711f33c9992c h1:i4MLwL3EbCgobekQtkVW94UBSPLMadfEGtKq+CAFsEU=
golang.org/x/sys v0.0.0-20211025112917-711f33c9992c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 h1:2B5p2L5IfGiD7+b9BOoRMC6DgObAVZV+Fsp050NqXik=
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211102192858-4dd72447c267 h1:7zYaz3tjChtpayGDzu6H0hDAUM5zIGA2XW7kRNgQ0jc=
golang.org/x/sys v0.0.0-20211102192858-4dd72447c267/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
Expand Down Expand Up @@ -570,8 +547,6 @@ golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roY
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200713011307-fd294ab11aed/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ=
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
Expand Down Expand Up @@ -632,10 +607,6 @@ google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1m
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200711021454-869866162049/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20211021150943-2b146023228c h1:FqrtZMB5Wr+/RecOM3uPJNPfWR8Upb5hAPnt7PU6i4k=
google.golang.org/genproto v0.0.0-20211021150943-2b146023228c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211026145609-4688e4c4e024 h1:aePO4E0x+Urj9V5NQHjqOpaNG4oMeHQq0l2ob05z5tI=
google.golang.org/genproto v0.0.0-20211026145609-4688e4c4e024/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211102202547-e9cf271f7f2c h1:UQDUEuW1R2dcciOjiFmuzE4skW4n/zGGNMU0RhU3hQI=
google.golang.org/genproto v0.0.0-20211102202547-e9cf271f7f2c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
Expand All @@ -654,8 +625,6 @@ google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.41.0 h1:f+PlOh7QV4iIJkPrx5NQ7qaNGFQ3OTse67yaDHfju4E=
google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
google.golang.org/grpc v1.42.0 h1:XT2/MFpuPFsEX2fWh3YQtHkZ+WYZFQRfaUgLZYj/p6A=
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
Expand Down
5 changes: 2 additions & 3 deletions proxmox/resource_lxc.go
Original file line number Diff line number Diff line change
Expand Up @@ -655,14 +655,13 @@ func resourceLxcUpdate(d *schema.ResourceData, meta interface{}) error {
}

func resourceLxcRead(d *schema.ResourceData, meta interface{}) error {
pconf := meta.(*providerConfiguration)
lock := pmParallelBegin(pconf)
defer lock.unlock()
return _resourceLxcRead(d, meta)
}

func _resourceLxcRead(d *schema.ResourceData, meta interface{}) error {
pconf := meta.(*providerConfiguration)
lock := pmParallelBegin(pconf)
defer lock.unlock()
client := pconf.Client
_, _, vmID, err := parseResourceId(d.Id())
if err != nil {
Expand Down
96 changes: 43 additions & 53 deletions proxmox/resource_vm_qemu.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ func resourceVmQemu() *schema.Resource {
Description: "VM autostart on boot",
},
"oncreate": {
Type: schema.TypeBool,
Optional: true,
Default: true,
Description: "VM autostart on create",
Type: schema.TypeBool,
Optional: true,
Default: true,
Description: "VM autostart on create",
},
"tablet": {
Type: schema.TypeBool,
Expand Down Expand Up @@ -669,7 +669,7 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {

pconf := meta.(*providerConfiguration)
lock := pmParallelBegin(pconf)
defer lock.unlock()
//defer lock.unlock()
client := pconf.Client
vmName := d.Get("name").(string)
vga := d.Get("vga").(*schema.Set)
Expand Down Expand Up @@ -790,36 +790,12 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {

log.Print("[DEBUG][QemuVmCreate] cloning VM")
err = config.CloneVm(sourceVmr, vmr, client)

if err != nil {
return err
}
//CLONE VM SHOULD RETURN ONLY IF THE TASK ENDED!
// Waiting for the clone to become ready and
// read back all the current disk configurations from proxmox
// this allows us to receive updates on the post-clone state of the vm we're building
log.Print("[DEBUG][QemuVmCreate] Waiting for clone becoming ready")
var config_post_clone *pxapi.ConfigQemu
cloneTimeout := d.Timeout(schema.TimeoutCreate)
cloneWaitEnd := time.Now().Add(time.Duration(cloneTimeout))
log.Printf("[DEBUG][clone] retrying for at most %v minutes before giving up\n", cloneTimeout)
log.Printf("[DEBUG][clone] retries will end at %s\n", cloneWaitEnd)

for time.Now().Before(cloneWaitEnd) {
// // Wait until we can actually retrieve the config from the cloned machine
config_post_clone, err = pxapi.NewConfigQemuFromApi(vmr, client)
if config_post_clone != nil {
break
// to prevent an infinite loop we check for any other error
// this error is actually fine because the clone is not ready yet
} else if err.Error() != "[DEBUG][clone] vm locked, could not obtain config" {
return err
}
time.Sleep(5 * time.Second)
log.Print("[DEBUG][clone] Clone still not ready, checking again")
}
time.Sleep(30 * time.Second)

config_post_clone, err = pxapi.NewConfigQemuFromApi(vmr, client)
config_post_clone, err := pxapi.NewConfigQemuFromApi(vmr, client)
if err != nil {
return err
}
Expand Down Expand Up @@ -854,6 +830,7 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {

err = prepareDiskSize(client, vmr, qemuDisks)
if err != nil {
d.SetId(resourceId(targetNode, "qemu", vmr.VmId()))
return err
}

Expand Down Expand Up @@ -918,23 +895,23 @@ func resourceVmQemuCreate(d *schema.ResourceData, meta interface{}) error {
log.Print("[DEBUG][QemuVmCreate] oncreate = false, not starting VM")
}

err := initConnInfo(d, pconf, client, vmr, &config, lock)
if err != nil {
return err
}

return _resourceVmQemuRead(d, meta)
// err := initConnInfo(d, pconf, client, vmr, &config, lock)
// if err != nil {
// return err
// }
log.Print("[DEBUG][QemuVmCreate] vm creation done!")
lock.unlock()
return resourceVmQemuRead(d, meta)
}

func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error {
pconf := meta.(*providerConfiguration)
lock := pmParallelBegin(pconf)
//defer lock.unlock()

// create a logger for this function
logger, _ := CreateSubLogger("resource_vm_update")

lock := pmParallelBegin(pconf)
defer lock.unlock()

client := pconf.Client
_, _, vmID, err := parseResourceId(d.Id())
if err != nil {
Expand Down Expand Up @@ -1205,31 +1182,29 @@ func resourceVmQemuUpdate(d *schema.ResourceData, meta interface{}) error {
} else if err != nil {
return err
}

return _resourceVmQemuRead(d, meta)
lock.unlock()
return resourceVmQemuRead(d, meta)
}

func resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error {
pconf := meta.(*providerConfiguration)
lock := pmParallelBegin(pconf)
defer lock.unlock()
return _resourceVmQemuRead(d, meta)
}

func _resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error {
pconf := meta.(*providerConfiguration)
lock := pmParallelBegin(pconf)
defer lock.unlock()
client := pconf.Client
// create a logger for this function
logger, _ := CreateSubLogger("resource_vm_read")

_, _, vmID, err := parseResourceId(d.Id())
if err != nil {
d.SetId("")
return fmt.Errorf("unexpected error when trying to read and parse the resource: %v", err)
}

// create a logger for this function
logger, _ := CreateSubLogger("resource_vm_read")
logger.Info().Int("vmid", vmID).Msg("Reading configuration for vmid")

vmr := pxapi.NewVmRef(vmID)

// Try to get information on the vm. If this call err's out
Expand All @@ -1240,12 +1215,24 @@ func _resourceVmQemuRead(d *schema.ResourceData, meta interface{}) error {
d.SetId("")
return nil
}

config, err := pxapi.NewConfigQemuFromApi(vmr, client)
if err != nil {
return err
}

vmState, err := client.GetVmState(vmr)
log.Printf("[DEBUG] VM status: %s", vmState["status"])
if err == nil && vmState["status"] == "started" {
log.Printf("[DEBUG] VM is running, cheking the IP")
err = initConnInfo(d, pconf, client, vmr, config, lock)
if err != nil {
return err
}
}
if err != nil {
return err
}

logger.Debug().Int("vmid", vmID).Msgf("[READ] Received Config from Proxmox API: %+v", config)

d.SetId(resourceId(vmr.Node(), "qemu", vmr.VmId()))
Expand Down Expand Up @@ -1480,9 +1467,12 @@ func prepareDiskSize(
logger.Debug().Int("diskId", diskID).Msgf("Checking disk sizing. Original '%+v', New '%+v'", diskSize, clonedDiskSize)
if diskSize > clonedDiskSize {
logger.Debug().Int("diskId", diskID).Msgf("Resizing disk. Original '%+v', New '%+v'", diskSize, clonedDiskSize)
_, err = client.ResizeQemuDiskRaw(vmr, diskName, diskConf["size"].(string))
if err != nil {
return err
for ii := 0; ii < 5; ii++ {
_, err = client.ResizeQemuDisk(vmr, diskName, int(diskSize-clonedDiskSize))
if err == nil {
break
}
time.Sleep(time.Duration(10) * time.Second)
}
} else if diskSize == clonedDiskSize || diskSize <= 0 {
logger.Debug().Int("diskId", diskID).Msgf("Disk is same size as before, skipping resize. Original '%+v', New '%+v'", diskSize, clonedDiskSize)
Expand Down Expand Up @@ -1764,7 +1754,7 @@ func initConnInfo(
// }

// Done with proxmox API, end parallel and do the SSH things
lock.unlock()
//lock.unlock()
if sshHost == "" {
return fmt.Errorf("cannot find any IP address")
}
Expand Down

0 comments on commit 2227197

Please sign in to comment.