From 5b8ca4302a21851dda206bcc53e4877289b7c83b Mon Sep 17 00:00:00 2001 From: imjoey Date: Wed, 31 Jul 2019 13:18:23 +0800 Subject: [PATCH] Do not change VM status when updating VM Signed-off-by: imjoey --- ovirt/resource_ovirt_vm.go | 19 ------------------- ovirt/resource_ovirt_vm_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/ovirt/resource_ovirt_vm.go b/ovirt/resource_ovirt_vm.go index adefed10..f3bae3eb 100644 --- a/ovirt/resource_ovirt_vm.go +++ b/ovirt/resource_ovirt_vm.go @@ -447,25 +447,6 @@ func resourceOvirtVMUpdate(d *schema.ResourceData, meta interface{}) error { } } - // Any way, ensure the VM is UP - - // Currently only support cloud-init for Linux VMs - _, useCloudInit := d.GetOk("initialization") - vmService.Start().UseCloudInit(useCloudInit).Send() - - upStateConf := &resource.StateChangeConf{ - Target: []string{string(ovirtsdk4.VMSTATUS_DOWN)}, - Refresh: VMStateRefreshFunc(conn, d.Id()), - Timeout: d.Timeout(schema.TimeoutUpdate), - Delay: 10 * time.Second, - MinTimeout: 3 * time.Second, - } - _, err := upStateConf.WaitForState() - if err != nil { - log.Printf("[DEBUG] Failed to wait for VM (%s) to become down: %s", d.Id(), err) - return fmt.Errorf("Error starting vm: %s", err) - } - d.Partial(false) return resourceOvirtVMRead(d, meta) } diff --git a/ovirt/resource_ovirt_vm_test.go b/ovirt/resource_ovirt_vm_test.go index 25a4feea..82d4ad9b 100644 --- a/ovirt/resource_ovirt_vm_test.go +++ b/ovirt/resource_ovirt_vm_test.go @@ -30,6 +30,17 @@ func TestAccOvirtVM_basic(t *testing.T) { resource.TestCheckResourceAttr("ovirt_vm.vm", "name", "testAccVMBasic"), resource.TestCheckResourceAttr("ovirt_vm.vm", "status", "up"), resource.TestCheckResourceAttr("ovirt_vm.vm", "memory", "2048"), + resource.TestCheckResourceAttr("ovirt_vm.vm", "initialization.0.dns_servers", "8.8.8.8 8.8.4.4"), + ), + }, + { + Config: testAccVMBasicUpdate(clusterID, templateID), + Check: resource.ComposeTestCheckFunc( + testAccCheckOvirtVMExists("ovirt_vm.vm", &vm), + resource.TestCheckResourceAttr("ovirt_vm.vm", "name", "testAccVMBasic"), + resource.TestCheckResourceAttr("ovirt_vm.vm", "status", "up"), + resource.TestCheckResourceAttr("ovirt_vm.vm", "memory", "2048"), + resource.TestCheckResourceAttr("ovirt_vm.vm", "initialization.0.dns_servers", "114.114.114.114"), ), }, }, @@ -287,6 +298,25 @@ resource "ovirt_vm" "vm" { `, clusterID, templateID) } +func testAccVMBasicUpdate(clusterID, templateID string) string { + return fmt.Sprintf(` +resource "ovirt_vm" "vm" { + name = "testAccVMBasic" + cluster_id = "%s" + template_id = "%s" + memory = 2048 + initialization { + host_name = "vm-basic-1" + timezone = "Asia/Shanghai" + user_name = "root" + custom_script = "echo hello" + dns_search = "university.edu" + dns_servers = "114.114.114.114" + } + } +`, clusterID, templateID) +} + const testAccVMBlockDevice = ` resource "ovirt_vm" "vm" { name = "testAccVMBlockDevice"