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/acceptance/openstack/imageservice/v2/images_test.go b/acceptance/openstack/imageservice/v2/images_test.go
index 5fe1c16..7f06faa 100644
--- a/acceptance/openstack/imageservice/v2/images_test.go
+++ b/acceptance/openstack/imageservice/v2/images_test.go
@@ -7,8 +7,62 @@
 
 	"gerrit.mcp.mirantis.net/debian/gophercloud.git/acceptance/clients"
 	"gerrit.mcp.mirantis.net/debian/gophercloud.git/acceptance/tools"
+	"gerrit.mcp.mirantis.net/debian/gophercloud.git/openstack/imageservice/v2/images"
+	"gerrit.mcp.mirantis.net/debian/gophercloud.git/pagination"
 )
 
+func TestImagesListEachPage(t *testing.T) {
+	client, err := clients.NewImageServiceV2Client()
+	if err != nil {
+		t.Fatalf("Unable to create an image service client: %v", err)
+	}
+
+	listOpts := images.ListOpts{
+		Limit: 1,
+	}
+
+	pager := images.List(client, listOpts)
+	err = pager.EachPage(func(page pagination.Page) (bool, error) {
+		images, err := images.ExtractImages(page)
+		if err != nil {
+			t.Fatalf("Unable to extract images: %v", err)
+		}
+
+		for _, image := range images {
+			tools.PrintResource(t, image)
+			tools.PrintResource(t, image.Properties)
+		}
+
+		return true, nil
+	})
+}
+
+func TestImagesListAllPages(t *testing.T) {
+	client, err := clients.NewImageServiceV2Client()
+	if err != nil {
+		t.Fatalf("Unable to create an image service client: %v", err)
+	}
+
+	listOpts := images.ListOpts{
+		Limit: 1,
+	}
+
+	allPages, err := images.List(client, listOpts).AllPages()
+	if err != nil {
+		t.Fatalf("Unable to retrieve all images: %v", err)
+	}
+
+	allImages, err := images.ExtractImages(allPages)
+	if err != nil {
+		t.Fatalf("Unable to extract images: %v", err)
+	}
+
+	for _, image := range allImages {
+		tools.PrintResource(t, image)
+		tools.PrintResource(t, image.Properties)
+	}
+}
+
 func TestImagesCreateDestroyEmptyImage(t *testing.T) {
 	client, err := clients.NewImageServiceV2Client()
 	if err != nil {