You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by qu...@apache.org on 2018/03/21 17:20:11 UTC

[1/2] libcloud git commit: [LIBCLOUD-961] Update GCE public image list.

Repository: libcloud
Updated Branches:
  refs/heads/trunk a297b3cc8 -> f8634a8cd


[LIBCLOUD-961] Update GCE public image list.

Add missing projects and update the image families for each
project based on `gcloud compute images list` info.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/924f12c2
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/924f12c2
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/924f12c2

Branch: refs/heads/trunk
Commit: 924f12c232e586c677a2380250a8e5c31605b8d3
Parents: a297b3c
Author: Sean Marlow <se...@suse.com>
Authored: Mon Nov 13 11:54:21 2017 -0700
Committer: Quentin Pradet <qu...@apache.org>
Committed: Wed Mar 21 21:17:29 2018 +0400

----------------------------------------------------------------------
 libcloud/compute/drivers/gce.py                 |  42 +-
 .../gce/global_images_family_notfound.json      |   4 +-
 ...oreos-cloud_global_images_family_coreos.json |  17 -
 ...-cloud_global_images_family_coreos_beta.json |  17 +
 ...loud_global_images_family_coreos_stable.json |  26 +
 .../gce/projects_cos-cloud_global_images.json   |  90 +++
 .../gce/projects_gce-nvme_global_images.json    |  55 --
 ...rojects_google-containers_global_images.json | 179 ------
 .../projects_suse-byos-cloud_global_images.json | 150 +++++
 .../projects_suse-sap-cloud_global_images.json  |  48 ++
 ...rojects_windows-sql-cloud_global_images.json | 600 +++++++++++++++++++
 libcloud/test/compute/test_gce.py               |  68 ++-
 12 files changed, 1009 insertions(+), 287 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/compute/drivers/gce.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py
index 0594587..311997f 100644
--- a/libcloud/compute/drivers/gce.py
+++ b/libcloud/compute/drivers/gce.py
@@ -1759,16 +1759,38 @@ class GCENodeDriver(NodeDriver):
     }
 
     IMAGE_PROJECTS = {
-        "centos-cloud": ["centos"],
-        "coreos-cloud": ["coreos"],
-        "debian-cloud": ["debian", "backports"],
-        "gce-nvme": ["nvme-backports"],
-        "google-containers": ["container-vm"],
-        "opensuse-cloud": ["opensuse"],
-        "rhel-cloud": ["rhel"],
-        "suse-cloud": ["sles", "suse"],
-        "ubuntu-os-cloud": ["ubuntu"],
-        "windows-cloud": ["windows"],
+        "centos-cloud": ["centos-6", "centos-7"],
+        "cos-cloud": ["cos-beta", "cos-dev", "cos-stable"],
+        "coreos-cloud": ["coreos-alpha", "coreos-beta", "coreos-stable"],
+        "debian-cloud": ["debian-8", "debian-9"],
+        "opensuse-cloud": ["opensuse-leap"],
+        "rhel-cloud": ["rhel-6", "rhel-7"],
+        "suse-cloud": ["sles-11", "sles-12"],
+        "suse-byos-cloud": [
+            "sles-11-byos", "sles-12-byos",
+            "sles-12-sp2-sap-byos", "sles-12-sp3-sap-byos",
+            "suse-manager-proxy-byos", "suse-manager-server-byos"
+        ],
+        "suse-sap-cloud": ["sles-12-sp2-sap", "sles-12-sp3-sap"],
+        "ubuntu-os-cloud": [
+            "ubuntu-1404-lts", "ubuntu-1604-lts", "ubuntu-1710"
+        ],
+        "windows-cloud": [
+            "windows-1709-core-for-containers", "windows-1709-core",
+            "windows-2008-r2", "windows-2012-r2-core", "windows-2012-r2",
+            "windows-2016-core", "windows-2016"
+        ],
+        "windows-sql-cloud": [
+            "sql-ent-2012-win-2012-r2", "sql-std-2012-win-2012-r2",
+            "sql-web-2012-win-2012-r2", "sql-ent-2014-win-2012-r2",
+            "sql-ent-2014-win-2016", "sql-std-2014-win-2012-r2",
+            "sql-web-2014-win-2012-r2", "sql-ent-2016-win-2012-r2",
+            "sql-ent-2016-win-2016", "sql-std-2016-win-2012-r2",
+            "sql-std-2016-win-2016", "sql-web-2016-win-2012-r2",
+            "sql-web-2016-win-2016", "sql-ent-2017-win-2016",
+            "sql-exp-2017-win-2012-r2", "sql-exp-2017-win-2016",
+            "sql-std-2017-win-2016", "sql-web-2017-win-2016"
+        ],
     }
 
     BACKEND_SERVICE_PROTOCOLS = ['HTTP', 'HTTPS', 'HTTP2', 'TCP', 'SSL']

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/global_images_family_notfound.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/global_images_family_notfound.json b/libcloud/test/compute/fixtures/gce/global_images_family_notfound.json
index 5d59882..0309a63 100644
--- a/libcloud/test/compute/fixtures/gce/global_images_family_notfound.json
+++ b/libcloud/test/compute/fixtures/gce/global_images_family_notfound.json
@@ -4,10 +4,10 @@
     "errors": [
       {
         "domain": "global",
-        "message": "The resource 'projects/project-name/global/images/family/coreos' was not found",
+        "message": "The resource 'projects/project-name/global/images/family/coreos-stable' was not found",
         "reason": "notFound"
       }
     ],
-    "message": "The resource 'projects/project-name/global/images/family/coreos' was not found"
+    "message": "The resource 'projects/project-name/global/images/family/coreos-stable' was not found"
   }
 }

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos.json b/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos.json
deleted file mode 100644
index 8a17f15..0000000
--- a/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "kind": "compute#image",
- "selfLink": "https://www.googleapis.com/compute/v1/projects/coreos-cloud/global/images/coreos-beta-522-3-0-v20141226",
- "id": "14171939663085407486",
- "creationTimestamp": "2014-12-26T15:04:01.237-08:00",
- "name": "coreos-beta-522-3-0-v20141226",
- "description": "CoreOS beta 522.3.0",
- "family": "coreos",
- "sourceType": "RAW",
- "rawDisk": {
-  "source": "",
-  "containerType": "TAR"
- },
- "status": "READY",
- "archiveSizeBytes": "220932284",
- "diskSizeGb": "9"
-}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_beta.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_beta.json b/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_beta.json
new file mode 100644
index 0000000..d76cdf4
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_beta.json
@@ -0,0 +1,17 @@
+{
+ "kind": "compute#image",
+ "selfLink": "https://www.googleapis.com/compute/v1/projects/coreos-cloud/global/images/coreos-beta-522-3-0-v20141226",
+ "id": "14171939663085407486",
+ "creationTimestamp": "2014-12-26T15:04:01.237-08:00",
+ "name": "coreos-beta-522-3-0-v20141226",
+ "description": "CoreOS beta 522.3.0",
+ "family": "coreos-beta",
+ "sourceType": "RAW",
+ "rawDisk": {
+  "source": "",
+  "containerType": "TAR"
+ },
+ "status": "READY",
+ "archiveSizeBytes": "220932284",
+ "diskSizeGb": "9"
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_stable.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_stable.json b/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_stable.json
new file mode 100644
index 0000000..cf55104
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_coreos-cloud_global_images_family_coreos_stable.json
@@ -0,0 +1,26 @@
+{
+   "kind": "compute#image",
+   "id": "5454100008489088098",
+   "creationTimestamp": "2017-10-12T13:03:25.293-07:00",
+   "name": "coreos-stable-1520-6-0-v20171012",
+   "description": "CoreOS, CoreOS stable, 1520.6.0, amd64-usr published on 2017-10-12",
+   "sourceType": "RAW",
+   "rawDisk": {
+    "source": "",
+    "containerType": "TAR"
+   },
+   "status": "READY",
+   "archiveSizeBytes": "445453184",
+   "diskSizeGb": "9",
+   "licenses": [
+    "https://www.googleapis.com/compute/beta/projects/coreos-cloud/global/licenses/coreos-stable"
+   ],
+   "family": "coreos-stable",
+   "selfLink": "https://www.googleapis.com/compute/beta/projects/coreos-cloud/global/images/coreos-stable-1520-6-0-v20171012",
+   "labelFingerprint": "42WmSpB8rSM=",
+   "guestOsFeatures": [
+    {
+     "type": "VIRTIO_SCSI_MULTIQUEUE"
+    }
+   ]
+ }

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_cos-cloud_global_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_cos-cloud_global_images.json b/libcloud/test/compute/fixtures/gce/projects_cos-cloud_global_images.json
new file mode 100644
index 0000000..2c2780a
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_cos-cloud_global_images.json
@@ -0,0 +1,90 @@
+{
+ "kind": "compute#imageList",
+ "id": "projects/cos-cloud/global/images",
+ "items": [
+  {
+    "archiveSizeBytes": "2781566400",
+    "creationTimestamp": "2018-03-16T11:58:21.963-07:00",
+    "description": "Google, Container-Optimized OS, 65-10323.55.0 beta, Kernel: ChromiumOS-4.4.111 Kubernetes: 1.8.7 Docker: 17.03.2",
+    "diskSizeGb": "10",
+    "family": "cos-beta",
+    "id": "7977998760666049826",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos"
+    ],
+    "name": "cos-beta-65-10323-55-0",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-beta-65-10323-55-0",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "2904964800",
+    "creationTimestamp": "2018-03-16T11:46:19.959-07:00",
+    "description": "Google, Container-Optimized OS, 66-10452.13.0 dev, Kernel: ChromiumOS-4.14.22 Kubernetes: 1.9.3 Docker: 17.03.2",
+    "diskSizeGb": "10",
+    "family": "cos-dev",
+    "id": "5462067189945314836",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos"
+    ],
+    "name": "cos-dev-66-10452-13-0",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-dev-66-10452-13-0",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "2862244800",
+    "creationTimestamp": "2018-01-19T10:59:30.098-08:00",
+    "description": "Google, Container-Optimized OS, 63-10032.88.0 stable, Kernel: ChromiumOS-4.4.86 Kubernetes: 1.7.8 Docker: 17.03.2",
+    "diskSizeGb": "10",
+    "family": "cos-stable",
+    "id": "9037695461801066238",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos"
+    ],
+    "name": "cos-stable-63-10032-88-0",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-stable-63-10032-88-0",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "2776416960",
+    "creationTimestamp": "2018-02-02T15:15:12.894-08:00",
+    "description": "Google, Container-Optimized OS, 64-10176.62.0 stable, Kernel: ChromiumOS-4.4.96 Kubernetes: 1.8.7 Docker: 17.03.2",
+    "diskSizeGb": "10",
+    "family": "cos-stable",
+    "id": "5241841702474960879",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/licenses/cos"
+    ],
+    "name": "cos-stable-64-10176-62-0",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-stable-64-10176-62-0",
+    "sourceType": "RAW",
+    "status": "READY"
+  }
+ ]
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_gce-nvme_global_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_gce-nvme_global_images.json b/libcloud/test/compute/fixtures/gce/projects_gce-nvme_global_images.json
deleted file mode 100644
index e802878..0000000
--- a/libcloud/test/compute/fixtures/gce/projects_gce-nvme_global_images.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "kind": "compute#imageList",
- "selfLink": "https://www.googleapis.com/compute/v1/projects/gce-nvme/global/images",
- "id": "projects/gce-nvme/global/images",
- "items": [
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/gce-nvme/global/images/nvme-backports-debian-7-wheezy-v20140904",
-   "id": "11933993573261788709",
-   "creationTimestamp": "2014-11-05T20:09:29.302-08:00",
-   "name": "nvme-backports-debian-7-wheezy-v20140904",
-   "description": "NVMe optimized Debian GNU/Linux 7.6 (wheezy) amd64 with backports kernel and SSH packages built on 2014-09-04",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "158683343",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/gce-nvme/global/images/nvme-backports-debian-7-wheezy-v20140926",
-   "id": "16689990597272015714",
-   "creationTimestamp": "2014-10-20T22:01:24.039-07:00",
-   "name": "nvme-backports-debian-7-wheezy-v20140926",
-   "description": "NVMe optimized Debian GNU/Linux 7.6 (wheezy) amd64 with backports kernel and SSH packages built on 2014-09-26",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "221456136",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/gce-nvme/global/images/nvme-backports-debian-7-wheezy-v20141108",
-   "id": "9219956677399420856",
-   "creationTimestamp": "2014-11-14T10:55:03.809-08:00",
-   "name": "nvme-backports-debian-7-wheezy-v20141108",
-   "description": "NVMe optimized Debian GNU/Linux 7.6 (wheezy) amd64 with backports kernel and SSH packages built on 2014-11-08",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "162245079",
-   "diskSizeGb": "10"
-  }
- ]
-}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_google-containers_global_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_google-containers_global_images.json b/libcloud/test/compute/fixtures/gce/projects_google-containers_global_images.json
deleted file mode 100644
index 08c6cf5..0000000
--- a/libcloud/test/compute/fixtures/gce/projects_google-containers_global_images.json
+++ /dev/null
@@ -1,179 +0,0 @@
-{
- "kind": "compute#imageList",
- "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images",
- "id": "projects/google-containers/global/images",
- "items": [
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140522",
-   "id": "12928746743513706688",
-   "creationTimestamp": "2014-05-21T15:30:01.045-07:00",
-   "name": "container-vm-v20140522",
-   "description": "Google container VM image, GlueCon 2014 release",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140522"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "396961200",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140624",
-   "id": "17637324906060386740",
-   "creationTimestamp": "2014-06-24T17:59:38.240-07:00",
-   "name": "container-vm-v20140624",
-   "description": "Google container VM image, Google I/O 2014 release",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140624"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "391233093",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140710",
-   "id": "17658123443453052547",
-   "creationTimestamp": "2014-07-15T17:29:02.737-07:00",
-   "name": "container-vm-v20140710",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140710"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "428253862",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140731",
-   "id": "7675862044791361451",
-   "creationTimestamp": "2014-08-01T09:41:06.107-07:00",
-   "name": "container-vm-v20140731",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140731"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "403951165",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140826",
-   "id": "5337588031210316441",
-   "creationTimestamp": "2014-08-26T16:19:17.533-07:00",
-   "name": "container-vm-v20140826",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140826"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "420545090",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140925",
-   "id": "7326458020538492469",
-   "creationTimestamp": "2014-09-25T14:23:38.865-07:00",
-   "name": "container-vm-v20140925",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140925"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "432272421",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140929",
-   "id": "17245742661521590081",
-   "creationTimestamp": "2014-09-29T13:49:23.330-07:00",
-   "name": "container-vm-v20140929",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "deprecated": {
-    "state": "DEPRECATED",
-    "replacement": "https://content.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20140929"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "422162733",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20141016",
-   "id": "857872787891330870",
-   "creationTimestamp": "2014-10-22T13:40:01.068-07:00",
-   "name": "container-vm-v20141016",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "432768815",
-   "diskSizeGb": "10"
-  },
-  {
-   "kind": "compute#image",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20141208",
-   "id": "8037634834499556312",
-   "creationTimestamp": "2014-12-09T15:57:34.413-08:00",
-   "name": "container-vm-v20141208",
-   "description": "Google container VM image",
-   "sourceType": "RAW",
-   "rawDisk": {
-    "source": "",
-    "containerType": "TAR"
-   },
-   "status": "READY",
-   "archiveSizeBytes": "413371239",
-   "diskSizeGb": "10"
-  }
- ]
-}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_suse-byos-cloud_global_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_suse-byos-cloud_global_images.json b/libcloud/test/compute/fixtures/gce/projects_suse-byos-cloud_global_images.json
new file mode 100644
index 0000000..e4cc170
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_suse-byos-cloud_global_images.json
@@ -0,0 +1,150 @@
+{
+ "kind": "compute#imageList",
+ "id": "projects/suse-byos-cloud/global/images",
+ "items": [
+  {
+    "archiveSizeBytes": "4903362048",
+    "creationTimestamp": "2018-01-04T15:38:28.707-08:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 11 SP4 BYOS configuration, x86_64, built on 2018-01-04",
+    "diskSizeGb": "10",
+    "family": "sles-11-byos",
+    "id": "2387143735879336987",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "name": "sles-11-sp4-byos-v20180104",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/sles-11-sp4-byos-v20180104",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "3656075520",
+    "creationTimestamp": "2017-05-15T13:07:01.943-07:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 12 SP2, x86_64, built on 2017-05-15",
+    "diskSizeGb": "10",
+    "family": "sles-12-byos",
+    "id": "3705265501102388362",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/licenses/sles-12-byos"
+    ],
+    "name": "sles-12-sp2-byos-v20170515",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/sles-12-sp2-byos-v20170515",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "10602881280",
+    "creationTimestamp": "2018-02-14T12:21:27.529-08:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 12 SP2 For SAP BYOS configuration, x86_64, built on 2018-02-14",
+    "diskSizeGb": "10",
+    "family": "sles-12-sp2-sap-byos",
+    "id": "6191777507858523304",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/licenses/sles-sap-12-byos"
+    ],
+    "name": "sles-12-sp2-sap-byos-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/sles-12-sp2-sap-byos-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "6914937600",
+    "creationTimestamp": "2018-02-14T09:40:30.237-08:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 12 SP3, x86_64, built on 2018-02-14",
+    "diskSizeGb": "10",
+    "family": "sles-12-byos",
+    "id": "1750160000940624482",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/licenses/sles-12-byos"
+    ],
+    "name": "sles-12-sp3-byos-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/sles-12-sp3-byos-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "10740059520",
+    "creationTimestamp": "2018-02-14T10:20:54.913-08:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 12 SP3 For SAP BYOS configuration, x86_64, built on 2018-02-14",
+    "diskSizeGb": "10",
+    "family": "sles-12-sp3-sap-byos",
+    "id": "2521622434670035177",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/licenses/sles-sap-12-byos"
+    ],
+    "name": "sles-12-sp3-sap-byos-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/sles-12-sp3-sap-byos-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "8562081600",
+    "creationTimestamp": "2018-02-14T13:03:08.443-08:00",
+    "description": "SUSE, SUSE Manager 3.1 Proxy BYOS, x86_64 built on 2018-02-14, Based on SLES 12 SP2",
+    "diskSizeGb": "10",
+    "family": "suse-manager-proxy-byos",
+    "id": "3455542315608251107",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/licenses/suma-proxy-byos"
+    ],
+    "name": "suse-manager-3-1-proxy-byos-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/suse-manager-3-1-proxy-byos-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "15142568640",
+    "creationTimestamp": "2018-02-14T12:42:11.295-08:00",
+    "description": "SUSE, SUSE Manager 3.1 Server BYOS, x86_64 built on 2018-02-14, Based on SLES 12 SP2",
+    "diskSizeGb": "10",
+    "family": "suse-manager-server-byos",
+    "id": "5720192942026072525",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/licenses/suma-server-byos"
+    ],
+    "name": "suse-manager-3-1-server-byos-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-byos-cloud/global/images/suse-manager-3-1-server-byos-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  }
+ ]
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_suse-sap-cloud_global_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_suse-sap-cloud_global_images.json b/libcloud/test/compute/fixtures/gce/projects_suse-sap-cloud_global_images.json
new file mode 100644
index 0000000..3df484b
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_suse-sap-cloud_global_images.json
@@ -0,0 +1,48 @@
+{
+ "kind": "compute#imageList",
+ "id": "projects/suse-sap-cloud/global/images",
+ "items": [
+  {
+    "archiveSizeBytes": "10610274240",
+    "creationTimestamp": "2018-02-14T11:36:42.181-08:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 12 SP2 For SAP, x86_64, built on 2018-02-14",
+    "diskSizeGb": "10",
+    "family": "sles-12-sp2-sap",
+    "id": "1678965261537456422",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12"
+    ],
+    "name": "sles-12-sp2-sap-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/images/sles-12-sp2-sap-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "10651082880",
+    "creationTimestamp": "2018-02-14T09:25:13.871-08:00",
+    "description": "SUSE, SUSE Linux Enterprise Server 12 SP3 For SAP, x86_64, built on 2018-02-14",
+    "diskSizeGb": "10",
+    "family": "sles-12-sp3-sap",
+    "id": "1354274246585077270",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12"
+    ],
+    "name": "sles-12-sp3-sap-v20180214",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/images/sles-12-sp3-sap-v20180214",
+    "sourceType": "RAW",
+    "status": "READY"
+  }
+ ]
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/fixtures/gce/projects_windows-sql-cloud_global_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_windows-sql-cloud_global_images.json b/libcloud/test/compute/fixtures/gce/projects_windows-sql-cloud_global_images.json
new file mode 100644
index 0000000..7e915bb
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_windows-sql-cloud_global_images.json
@@ -0,0 +1,600 @@
+{
+ "kind": "compute#imageList",
+ "id": "projects/windows-sql-cloud/global/images",
+ "items": [
+  {
+    "archiveSizeBytes": "292570851840",
+    "creationTimestamp": "2018-03-16T12:56:34.051-07:00",
+    "description": "Microsoft, SQL Server 2012 Enterprise, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-ent-2012-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "691184437710397342",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2012-enterprise-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2012-enterprise-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "289458120960",
+    "creationTimestamp": "2018-03-16T12:56:34.100-07:00",
+    "description": "Microsoft, SQL Server 2012 Standard, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-std-2012-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "7039869042978561950",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2012-standard",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2012-standard-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2012-standard-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "281538677760",
+    "creationTimestamp": "2018-03-16T12:56:33.984-07:00",
+    "description": "Microsoft, SQL Server 2012 Web, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-web-2012-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "8315170259090907038",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2012-web",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2012-web-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2012-web-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "241746543360",
+    "creationTimestamp": "2018-03-16T12:56:31.079-07:00",
+    "description": "Microsoft, SQL Server 2012 Enterprise, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-ent-2014-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "6850934007153139585",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2014-enterprise",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2014-enterprise-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2014-enterprise-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "215371714560",
+    "creationTimestamp": "2018-03-16T12:56:34.317-07:00",
+    "description": "Microsoft, SQL Server 2012 Enterprise, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-ent-2014-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "8779506358941753246",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2014-enterprise",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2014-enterprise-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2014-enterprise-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "241815690240",
+    "creationTimestamp": "2018-03-16T12:56:34.015-07:00",
+    "description": "Microsoft, SQL Server 2014 Standard, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-std-2014-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "2727026445279928222",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2014-standard",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2014-standard-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2014-standard-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "235978583040",
+    "creationTimestamp": "2018-03-16T12:56:34.136-07:00",
+    "description": "Microsoft, SQL Server 2014 Web, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-web-2014-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "8854164671641526174",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2014-web",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2014-web-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2014-web-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "275054722560",
+    "creationTimestamp": "2018-03-16T12:56:34.145-07:00",
+    "description": "Microsoft, SQL Server 2016 Enterprise, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-ent-2016-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "7568452089731456926",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2016-enterprise",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2016-enterprise-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2016-enterprise-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "217748267520",
+    "creationTimestamp": "2018-03-16T12:56:34.162-07:00",
+    "description": "Microsoft, SQL Server 2016 Enterprise, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-ent-2016-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "8158037467522506654",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2016-enterprise",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2016-enterprise-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2016-enterprise-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "275475156480",
+    "creationTimestamp": "2018-03-16T12:56:34.135-07:00",
+    "description": "Microsoft, SQL Server 2016 Standard, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-std-2016-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "7321671631204622238",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2016-standard",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2016-standard-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2016-standard-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "216044855040",
+    "creationTimestamp": "2018-03-16T12:56:34.139-07:00",
+    "description": "Microsoft, SQL Server 2016 Standard, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-std-2016-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "7345241359458082718",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2016-standard",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2016-standard-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2016-standard-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "257308473600",
+    "creationTimestamp": "2018-03-16T12:56:34.090-07:00",
+    "description": "Microsoft, SQL Server 2016 Web, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-web-2016-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "5306288240788086686",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2016-web",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2016-web-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2016-web-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "206679609600",
+    "creationTimestamp": "2018-03-16T12:56:34.116-07:00",
+    "description": "Microsoft, SQL Server 2016 Web, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-web-2016-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "3442119052452011934",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2016-web",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2016-web-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2016-web-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "180692828160",
+    "creationTimestamp": "2018-03-16T12:56:33.957-07:00",
+    "description": "Microsoft, SQL Server 2017 Enterprise, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-ent-2017-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "5009147572728733598",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2017-enterprise",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2017-enterprise-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2017-enterprise-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "186363325440",
+    "creationTimestamp": "2018-03-16T12:56:33.978-07:00",
+    "description": "Microsoft, SQL Server 2017 Express, on Windows Server 2012 R2 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-exp-2017-win-2012-r2",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "5306872833081712542",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2017-express",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-dc"
+    ],
+    "name": "sql-2017-express-windows-2012-r2-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2017-express-windows-2012-r2-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "161739521280",
+    "creationTimestamp": "2018-03-16T12:56:33.964-07:00",
+    "description": "Microsoft, SQL Server 2017 Express, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-exp-2017-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "2606423252507139998",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2017-express",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2017-express-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2017-express-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "180530031360",
+    "creationTimestamp": "2018-03-16T12:56:33.960-07:00",
+    "description": "Microsoft, SQL Server 2017 Standard, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-std-2017-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "7610921752851488670",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2017-standard",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2017-standard-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2017-standard-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  },
+  {
+    "archiveSizeBytes": "176303884800",
+    "creationTimestamp": "2018-03-16T12:56:34.055-07:00",
+    "description": "Microsoft, SQL Server 2017 Web, on Windows Server 2016 Datacenter, x64 built on 20180313",
+    "diskSizeGb": "50",
+    "family": "sql-web-2017-win-2016",
+    "guestOsFeatures": [
+      {
+        "type": "WINDOWS"
+      },
+      {
+        "type": "VIRTIO_SCSI_MULTIQUEUE"
+      },
+      {
+        "type": "MULTI_IP_SUBNET"
+      }
+    ],
+    "id": "8377634188974727070",
+    "kind": "compute#image",
+    "labelFingerprint": "42WmSpB8rSM=",
+    "licenses": [
+      "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/licenses/sql-server-2017-web",
+      "https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2016-dc"
+    ],
+    "name": "sql-2017-web-windows-2016-dc-v20180313",
+    "rawDisk": {
+      "containerType": "TAR",
+      "source": ""
+    },
+    "selfLink": "https://www.googleapis.com/compute/v1/projects/windows-sql-cloud/global/images/sql-2017-web-windows-2016-dc-v20180313",
+    "sourceType": "RAW",
+    "status": "READY"
+  }
+ ]
+}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/924f12c2/libcloud/test/compute/test_gce.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_gce.py b/libcloud/test/compute/test_gce.py
index 3b5c5a6..cd211a0 100644
--- a/libcloud/test/compute/test_gce.py
+++ b/libcloud/test/compute/test_gce.py
@@ -361,8 +361,8 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
         debian_images = self.driver.list_images(ex_project='debian-cloud')
         local_plus_deb = self.driver.list_images(
             ['debian-cloud', 'project_name'])
-        self.assertEqual(len(local_images), 24)
-        self.assertEqual(len(all_deprecated_images), 159)
+        self.assertEqual(len(local_images), 50)
+        self.assertEqual(len(all_deprecated_images), 178)
         self.assertEqual(len(debian_images), 2)
         self.assertEqual(len(local_plus_deb), 4)
         self.assertEqual(local_images[0].name, 'custom-image')
@@ -1196,13 +1196,13 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
         node_name = 'node-name'
         size = self.driver.ex_get_size('n1-standard-1')
         node = self.driver.create_node(node_name, size, image=None,
-                                       ex_image_family='coreos')
+                                       ex_image_family='coreos-stable')
         self.assertTrue(isinstance(node, Node))
         self.assertEqual(node.name, node_name)
 
         image = self.driver.ex_get_image('debian-7')
         self.assertRaises(ValueError, self.driver.create_node, node_name, size,
-                          image, ex_image_family='coreos')
+                          image, ex_image_family='coreos-stable')
 
     def test_create_node_req_with_serviceaccounts(self):
         image = self.driver.ex_get_image('debian-7')
@@ -1382,7 +1382,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
         size = self.driver.ex_get_size('n1-standard-1')
         number = 2
         nodes = self.driver.ex_create_multiple_nodes(
-            base_name, size, image, number, ex_image_family='coreos')
+            base_name, size, image, number, ex_image_family='coreos-stable')
         self.assertEqual(len(nodes), 2)
         self.assertTrue(isinstance(nodes[0], Node))
         self.assertTrue(isinstance(nodes[1], Node))
@@ -1392,7 +1392,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
         image = self.driver.ex_get_image('debian-7')
         self.assertRaises(ValueError, self.driver.ex_create_multiple_nodes,
                           base_name, size, image, number,
-                          ex_image_family='coreos')
+                          ex_image_family='coreos-stable')
 
     def test_ex_create_targethttpproxy(self):
         proxy_name = 'web-proxy'
@@ -1449,13 +1449,14 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
         volume_name = 'lcdisk'
         size = 10
         volume = self.driver.create_volume(size, volume_name,
-                                           ex_image_family='coreos')
+                                           ex_image_family='coreos-stable')
         self.assertTrue(isinstance(volume, StorageVolume))
         self.assertEqual(volume.name, volume_name)
 
         image = self.driver.ex_get_image('debian-7')
         self.assertRaises(ValueError, self.driver.create_volume, size,
-                          volume_name, image=image, ex_image_family='coreos')
+                          volume_name, image=image,
+                          ex_image_family='coreos-stable')
 
     def test_create_volume_location(self):
         volume_name = 'lcdisk'
@@ -1813,7 +1814,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
                           ex_standard_projects=False)
 
     def test_ex_get_image_from_family(self):
-        family = 'coreos'
+        family = 'coreos-beta'
         description = 'CoreOS beta 522.3.0'
         image = self.driver.ex_get_image_from_family(family)
         self.assertEqual(image.name, 'coreos-beta-522-3-0-v20141226')
@@ -1821,7 +1822,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
         self.assertEqual(image.extra['family'], family)
 
         url = ('https://www.googleapis.com/compute/v1/projects/coreos-cloud/'
-               'global/images/family/coreos')
+               'global/images/family/coreos-beta')
         image = self.driver.ex_get_image_from_family(url)
         self.assertEqual(image.name, 'coreos-beta-522-3-0-v20141226')
         self.assertEqual(image.extra['description'], description)
@@ -2437,7 +2438,12 @@ class GCEMockHttp(MockHttp):
             'global_images_debian_7_wheezy_v20131014_deprecate.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
-    def _global_images_family_coreos(self, method, url, body, headers):
+    def _global_images_family_coreos_beta(self, method, url, body, headers):
+        body = self.fixtures.load('global_images_family_notfound.json')
+        return (httplib.NOT_FOUND, body, self.json_hdr,
+                httplib.responses[httplib.NOT_FOUND])
+
+    def _global_images_family_coreos_stable(self, method, url, body, headers):
         body = self.fixtures.load('global_images_family_notfound.json')
         return (httplib.NOT_FOUND, body, self.json_hdr,
                 httplib.responses[httplib.NOT_FOUND])
@@ -2986,22 +2992,34 @@ class GCEMockHttp(MockHttp):
         body = self.fixtures.load('projects_windows-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
-    def _projects_rhel_cloud_global_images(self, method, url, body, header):
-        body = self.fixtures.load('projects_rhel-cloud_global_images.json')
+    def _projects_windows_sql_cloud_global_images(self, method, url, body, header):
+        body = self.fixtures.load('projects_windows-sql-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
-    def _projects_gce_nvme_global_images(self, method, url, body, header):
-        body = self.fixtures.load('projects_gce-nvme_global_images.json')
+    def _projects_rhel_cloud_global_images(self, method, url, body, header):
+        body = self.fixtures.load('projects_rhel-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
     def _projects_coreos_cloud_global_images(self, method, url, body, header):
         body = self.fixtures.load('projects_coreos-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
-    def _projects_coreos_cloud_global_images_family_coreos(self, method, url,
-                                                           body, header):
+    def _projects_coreos_cloud_global_images_family_coreos_beta(self, method,
+                                                                url, body,
+                                                                header):
+        body = self.fixtures.load(
+            'projects_coreos-cloud_global_images_family_coreos_beta.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
+    def _projects_coreos_cloud_global_images_family_coreos_stable(self, method,
+                                                                  url, body,
+                                                                  header):
         body = self.fixtures.load(
-            'projects_coreos-cloud_global_images_family_coreos.json')
+            'projects_coreos-cloud_global_images_family_coreos_stable.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
+    def _projects_cos_cloud_global_images(self, method, url, body, header):
+        body = self.fixtures.load('projects_cos-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
     def _projects_opensuse_cloud_global_images(self, method, url, body,
@@ -3009,12 +3027,6 @@ class GCEMockHttp(MockHttp):
         body = self.fixtures.load('projects_opensuse-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
-    def _projects_google_containers_global_images(self, method, url, body,
-                                                  header):
-        body = self.fixtures.load(
-            'projects_google-containers_global_images.json')
-        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
-
     def _projects_ubuntu_os_cloud_global_images(self, method, url, body,
                                                 header):
         body = self.fixtures.load(
@@ -3029,6 +3041,14 @@ class GCEMockHttp(MockHttp):
         body = self.fixtures.load('projects_suse-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
 
+    def _projects_suse_byos_cloud_global_images(self, method, url, body, headers):
+        body = self.fixtures.load('projects_suse-byos-cloud_global_images.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
+    def _projects_suse_sap_cloud_global_images(self, method, url, body, headers):
+        body = self.fixtures.load('projects_suse-sap-cloud_global_images.json')
+        return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
     def _projects_debian_cloud_global_images(self, method, url, body, headers):
         body = self.fixtures.load('projects_debian-cloud_global_images.json')
         return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])


[2/2] libcloud git commit: Add changes for #1143

Posted by qu...@apache.org.
Add changes for #1143

Closes #1143


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f8634a8c
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f8634a8c
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f8634a8c

Branch: refs/heads/trunk
Commit: f8634a8cda418ca0f87a386c8ef6f440a29039d7
Parents: 924f12c
Author: Quentin Pradet <qu...@apache.org>
Authored: Wed Mar 21 21:18:21 2018 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Wed Mar 21 21:19:20 2018 +0400

----------------------------------------------------------------------
 CHANGES.rst | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/f8634a8c/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index f7db885..5193ba4 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -36,6 +36,9 @@ Compute
   (LIBCLOUD-973, GITHUB-1162)
   [Rahul Paigavan]
 
+- [GCE] Update public image projects list (LIBCLOUD-961, GITHUB-1143)
+  [Sean Marlow]
+
 - [OpenStack] Implement Glance Image API v2 (GITHUB-1151)
   [Rick van de Loo]