Skip to content

Commit

Permalink
Merge pull request #162 from imjoey/fix_importing_disk_attachment
Browse files Browse the repository at this point in the history
resource/ovirt_disk_attachment: Correct checking if a disk attachment has been destroyed
  • Loading branch information
imjoey authored Jul 11, 2019
2 parents 02583d0 + 6cb6735 commit f8d2bb0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
10 changes: 5 additions & 5 deletions ovirt/resource_ovirt_disk_attachment.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -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")
}
Expand Down
23 changes: 18 additions & 5 deletions ovirt/resource_ovirt_disk_attachment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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)
}
}
Expand All @@ -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 {
Expand Down

0 comments on commit f8d2bb0

Please sign in to comment.