diff --git a/ovirt/resource_ovirt_disk_attachment.go b/ovirt/resource_ovirt_disk_attachment.go index e20c112c..57961db3 100644 --- a/ovirt/resource_ovirt_disk_attachment.go +++ b/ovirt/resource_ovirt_disk_attachment.go @@ -134,7 +134,7 @@ func resourceOvirtDiskAttachmentCreate(d *schema.ResourceData, meta interface{}) func resourceOvirtDiskAttachmentUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*ovirtsdk4.Connection) - vmID, diskID, err := getVMIDAndDiskID(d, meta) + vmID, diskID, err := getVMIDAndDiskID(d.Id()) if err != nil { return err } @@ -173,7 +173,7 @@ func resourceOvirtDiskAttachmentRead(d *schema.ResourceData, meta interface{}) e conn := meta.(*ovirtsdk4.Connection) // Disk ID is equals to its relevant Disk Attachment ID // Sess: https://github.com/oVirt/ovirt-engine/blob/68753f46f09419ddcdbb632453501273697d1a20/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DiskAttachmentMapper.java - vmID, diskID, err := getVMIDAndDiskID(d, meta) + vmID, diskID, err := getVMIDAndDiskID(d.Id()) if err != nil { return err } @@ -211,7 +211,7 @@ func resourceOvirtDiskAttachmentRead(d *schema.ResourceData, meta interface{}) e func resourceOvirtDiskAttachmentDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*ovirtsdk4.Connection) - vmID, diskID, err := getVMIDAndDiskID(d, meta) + vmID, diskID, err := getVMIDAndDiskID(d.Id()) if err != nil { return err } @@ -267,8 +267,8 @@ func resourceOvirtDiskAttachmentDelete(d *schema.ResourceData, meta interface{}) return nil } -func getVMIDAndDiskID(d *schema.ResourceData, meta interface{}) (string, string, error) { - parts := strings.Split(d.Id(), ":") +func getVMIDAndDiskID(rsID string) (string, string, error) { + parts := strings.Split(rsID, ":") if len(parts) != 2 { return "", "", fmt.Errorf("Invalid resource id") } diff --git a/ovirt/resource_ovirt_disk_attachment_test.go b/ovirt/resource_ovirt_disk_attachment_test.go index 0d5882f8..61f8a16f 100644 --- a/ovirt/resource_ovirt_disk_attachment_test.go +++ b/ovirt/resource_ovirt_disk_attachment_test.go @@ -54,8 +54,16 @@ func testAccCheckDiskAttachmentDestroy(s *terraform.State) error { if rs.Type != "ovirt_disk_attachment" { continue } - getResp, err := conn.SystemService().DisksService(). - DiskService(rs.Primary.ID). + + vmID, diskID, err := getVMIDAndDiskID(rs.Primary.ID) + if err != nil { + return err + } + + getResp, err := conn.SystemService().VmsService(). + VmService(vmID). + DiskAttachmentsService(). + AttachmentService(diskID). Get(). Send() if err != nil { @@ -64,7 +72,7 @@ func testAccCheckDiskAttachmentDestroy(s *terraform.State) error { } return err } - if _, ok := getResp.Disk(); ok { + if _, ok := getResp.Attachment(); ok { return fmt.Errorf("Disk attachment %s still exist", rs.Primary.ID) } } @@ -81,11 +89,16 @@ func testAccCheckOvirtDiskAttachmentExists(n string, diskAttachment *ovirtsdk4.D return fmt.Errorf("No Disk attachment ID is set") } + vmID, diskID, err := getVMIDAndDiskID(rs.Primary.ID) + if err != nil { + return err + } + conn := testAccProvider.Meta().(*ovirtsdk4.Connection) getResp, err := conn.SystemService().VmsService(). - VmService(rs.Primary.Attributes["vm_id"]). + VmService(vmID). DiskAttachmentsService(). - AttachmentService(rs.Primary.Attributes["disk_id"]). + AttachmentService(diskID). Get(). Send() if err != nil {