ImageService v2: Collect all properties of images (#376)

* ImageService v2: Add VirtualSize field

* ImageService v2: Have Images.Properties collect all remaining fields

Related-PROD: PROD-28126

Change-Id: Ib6311d3bafc1e5e6e6a2c6d043d2a63a1eaa96cf
diff --git a/openstack/imageservice/v2/images/testing/fixtures.go b/openstack/imageservice/v2/images/testing/fixtures.go
index 0f74929..ca0987d 100644
--- a/openstack/imageservice/v2/images/testing/fixtures.go
+++ b/openstack/imageservice/v2/images/testing/fixtures.go
@@ -43,7 +43,10 @@
             "owner": "cba624273b8344e59dd1fd18685183b0",
             "virtual_size": null,
             "min_ram": 0,
-            "schema": "/v2/schemas/image"
+            "schema": "/v2/schemas/image",
+            "hw_disk_bus": "scsi",
+            "hw_disk_bus_model": "virtio-scsi",
+            "hw_scsi_model": "virtio-scsi"
         }`}
 	images[1] = imageEntry{"cirros-0.3.4-x86_64-uec-ramdisk",
 		`{
@@ -65,7 +68,10 @@
             "owner": "cba624273b8344e59dd1fd18685183b0",
             "virtual_size": null,
             "min_ram": 0,
-            "schema": "/v2/schemas/image"
+            "schema": "/v2/schemas/image",
+            "hw_disk_bus": "scsi",
+            "hw_disk_bus_model": "virtio-scsi",
+            "hw_scsi_model": "virtio-scsi"
         }`}
 	images[2] = imageEntry{"cirros-0.3.4-x86_64-uec-kernel",
 		`{
@@ -87,7 +93,10 @@
             "owner": "cba624273b8344e59dd1fd18685183b0",
             "virtual_size": null,
             "min_ram": 0,
-            "schema": "/v2/schemas/image"
+            "schema": "/v2/schemas/image",
+            "hw_disk_bus": "scsi",
+            "hw_disk_bus_model": "virtio-scsi",
+            "hw_scsi_model": "virtio-scsi"
         }`}
 
 	th.Mux.HandleFunc("/images", func(w http.ResponseWriter, r *http.Request) {
@@ -187,7 +196,10 @@
 			"schema": "/v2/schemas/image",
 			"size": 0,
 			"checksum": "",
-			"virtual_size": 0
+			"virtual_size": 0,
+			"hw_disk_bus": "scsi",
+			"hw_disk_bus_model": "virtio-scsi",
+			"hw_scsi_model": "virtio-scsi"
 		}`)
 	})
 }
@@ -261,7 +273,10 @@
 			"size": 13167616,
 			"min_ram": 0,
 			"schema": "/v2/schemas/image",
-			"virtual_size": "None"
+			"virtual_size": null,
+			"hw_disk_bus": "scsi",
+			"hw_disk_bus_model": "virtio-scsi",
+			"hw_scsi_model": "virtio-scsi"
 		}`)
 	})
 }
@@ -323,7 +338,10 @@
 			"min_disk": 0,
 			"disk_format": "",
 			"virtual_size": 0,
-			"container_format": ""
+			"container_format": "",
+			"hw_disk_bus": "scsi",
+			"hw_disk_bus_model": "virtio-scsi",
+			"hw_scsi_model": "virtio-scsi"
 		}`)
 	})
 }
diff --git a/openstack/imageservice/v2/images/testing/requests_test.go b/openstack/imageservice/v2/images/testing/requests_test.go
index e8f7d6a..ad4b88b 100644
--- a/openstack/imageservice/v2/images/testing/requests_test.go
+++ b/openstack/imageservice/v2/images/testing/requests_test.go
@@ -102,11 +102,17 @@
 
 		Owner: owner,
 
-		Visibility: images.ImageVisibilityPrivate,
-		File:       file,
-		CreatedAt:  createdDate,
-		UpdatedAt:  lastUpdate,
-		Schema:     schema,
+		Visibility:  images.ImageVisibilityPrivate,
+		File:        file,
+		CreatedAt:   createdDate,
+		UpdatedAt:   lastUpdate,
+		Schema:      schema,
+		VirtualSize: 0,
+		Properties: map[string]interface{}{
+			"hw_disk_bus":       "scsi",
+			"hw_disk_bus_model": "virtio-scsi",
+			"hw_scsi_model":     "virtio-scsi",
+		},
 	}
 
 	th.AssertDeepEquals(t, &expectedImage, actualImage)
@@ -204,12 +210,18 @@
 		Protected:  false,
 		Visibility: images.ImageVisibilityPublic,
 
-		Checksum:  checksum,
-		SizeBytes: sizeBytes,
-		File:      file,
-		CreatedAt: createdDate,
-		UpdatedAt: lastUpdate,
-		Schema:    schema,
+		Checksum:    checksum,
+		SizeBytes:   sizeBytes,
+		File:        file,
+		CreatedAt:   createdDate,
+		UpdatedAt:   lastUpdate,
+		Schema:      schema,
+		VirtualSize: 0,
+		Properties: map[string]interface{}{
+			"hw_disk_bus":       "scsi",
+			"hw_disk_bus_model": "virtio-scsi",
+			"hw_scsi_model":     "virtio-scsi",
+		},
 	}
 
 	th.AssertDeepEquals(t, &expectedImage, actualImage)
@@ -269,6 +281,12 @@
 		CreatedAt:       createdDate,
 		UpdatedAt:       lastUpdate,
 		Schema:          schema,
+		VirtualSize:     0,
+		Properties: map[string]interface{}{
+			"hw_disk_bus":       "scsi",
+			"hw_disk_bus_model": "virtio-scsi",
+			"hw_scsi_model":     "virtio-scsi",
+		},
 	}
 
 	th.AssertDeepEquals(t, &expectedImage, actualImage)