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/10 04:29:30 UTC
[1/5] libcloud git commit: Add a test that would fail without the fix
Repository: libcloud
Updated Branches:
refs/heads/trunk 4d0f9e0a6 -> 0310ba9ed
Add a test that would fail without the fix
Signed-off-by: Quentin Pradet <qu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/fca9f833
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/fca9f833
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/fca9f833
Branch: refs/heads/trunk
Commit: fca9f833deffb3c22048063efa610221421976fb
Parents: d04f8d6
Author: Boris Chazalet <bc...@companywatch.net>
Authored: Fri Mar 9 11:26:44 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Sat Mar 10 08:27:06 2018 +0400
----------------------------------------------------------------------
...tes_my_instance_template_shared_network.json | 4 ++--
..._global_networks_shared_network_for_mig.json | 11 +++++++++
...1_subnetworks_shared_subnetwork_for_mig.json | 12 ++++++++++
...Managers_myinstancegroup_shared_network.json | 24 ++++++++++++++++++++
...nceGroup_myinstancegroup_shared_network.json | 14 ++++++++++++
libcloud/test/compute/test_gce.py | 24 +++++++++++++++++++-
6 files changed, 86 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fca9f833/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json b/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
index e2a97cd..6795998 100644
--- a/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
+++ b/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
@@ -35,8 +35,8 @@
"type": "ONE_TO_ONE_NAT"
}
],
- "network": "https://www.googleapis.com/compute/v1/projects/other_name/global/networks/cf",
- "subnetwork": "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1/subnetworks/cf-972cf02e6ad49112"
+ "network": "https://www.googleapis.com/compute/v1/projects/other_name/global/networks/shared_network_for_mig",
+ "subnetwork": "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1/subnetworks/shared_subnetwork_for_mig"
}
],
"scheduling": {
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fca9f833/libcloud/test/compute/fixtures/gce/projects_other_name_global_networks_shared_network_for_mig.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_other_name_global_networks_shared_network_for_mig.json b/libcloud/test/compute/fixtures/gce/projects_other_name_global_networks_shared_network_for_mig.json
new file mode 100644
index 0000000..ca8c68c
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_other_name_global_networks_shared_network_for_mig.json
@@ -0,0 +1,11 @@
+{
+ "kind": "compute#network",
+ "id": "5125152985904090796",
+ "creationTimestamp": "2016-03-25T05:34:15.077-07:00",
+ "name": "shared_network_for_mig",
+ "selfLink": "https://www.googleapis.com/compute/v1/projects/other_name/global/networks/shared_network_for_mig",
+ "autoCreateSubnetworks": true,
+ "subnetworks": [
+ "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1/subnetworks/shared_subnetwork_for_mig"
+ ]
+}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fca9f833/libcloud/test/compute/fixtures/gce/projects_other_name_regions_us-central1_subnetworks_shared_subnetwork_for_mig.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/projects_other_name_regions_us-central1_subnetworks_shared_subnetwork_for_mig.json b/libcloud/test/compute/fixtures/gce/projects_other_name_regions_us-central1_subnetworks_shared_subnetwork_for_mig.json
new file mode 100644
index 0000000..d7ec3ba
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/projects_other_name_regions_us-central1_subnetworks_shared_subnetwork_for_mig.json
@@ -0,0 +1,12 @@
+{
+ "status": "DONE",
+ "kind": "compute#subnetwork",
+ "id": "4297043163355844289",
+ "creationTimestamp": "2016-03-25T05:34:27.209-07:00",
+ "gatewayAddress": "10.128.0.1",
+ "name": "shared_subnetwork_for_mig",
+ "network": "https://www.googleapis.com/compute/v1/projects/other_name/global/networks/shared_network_for_mig",
+ "ipCidrRange": "10.128.0.0/20",
+ "region": "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1",
+ "selfLink": "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1/subnetworks/shared_subnetwork_for_mig"
+}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fca9f833/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroupManagers_myinstancegroup_shared_network.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroupManagers_myinstancegroup_shared_network.json b/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroupManagers_myinstancegroup_shared_network.json
new file mode 100644
index 0000000..61ec675
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroupManagers_myinstancegroup_shared_network.json
@@ -0,0 +1,24 @@
+{
+
+ "kind": "compute#instanceGroupManager",
+ "id": "8604381270851510465",
+ "creationTimestamp": "2016-07-18T15:54:39.153-07:00",
+ "zone": "https://content.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a",
+ "name": "myinstancegroup-shared-network",
+ "description": "my description for myinstancegroup",
+ "instanceTemplate": "https://content.googleapis.com/compute/v1/projects/project_name/global/instanceTemplates/my-instance-template-shared-network",
+ "instanceGroup": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/instanceGroups/myinstancegroup-shared-network",
+ "baseInstanceName": "base-foo",
+ "fingerprint": "Q21hYveq9do=",
+ "currentActions": {
+ "none": 4,
+ "creating": 0,
+ "recreating": 0,
+ "deleting": 0,
+ "abandoning": 0,
+ "restarting": 0,
+ "refreshing": 0
+ },
+ "targetSize": 4,
+ "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/instanceGroupManagers/myinstancegroup-shared-network"
+}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fca9f833/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroup_myinstancegroup_shared_network.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroup_myinstancegroup_shared_network.json b/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroup_myinstancegroup_shared_network.json
new file mode 100644
index 0000000..1a0592f
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/zones_us-central1-a_instanceGroup_myinstancegroup_shared_network.json
@@ -0,0 +1,14 @@
+{
+
+ "kind": "compute#instanceGroup",
+ "id": "1968709502073089770",
+ "creationTimestamp": "2016-08-11T16:53:42.413-07:00",
+ "zone": "https://content.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a",
+ "name": "myinstancegroup_shared_network",
+ "description": "This instance group is controlled by Instance Group Manager 'myinstancegroup'. To modify instances in this group, use the Instance Group Manager API: https://cloud.google.com/compute/docs/reference/latest/instanceGroupManagers",
+ "network": "https://www.googleapis.com/compute/v1/projects/other_name/global/networks/shared_network_for_mig",
+ "subnetwork": "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1/subnetworks/shared_subnetwork_for_mig",
+ "fingerprint": "42WmSpB8rSM=",
+ "selfLink": "https://www.googleapis.com/compute/v1/projects/project_name/zones/us-central1-a/instanceGroups/myinstancegroup_shared_network",
+ "size": 4
+}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fca9f833/libcloud/test/compute/test_gce.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_gce.py b/libcloud/test/compute/test_gce.py
index ab92693..35aa4d8 100644
--- a/libcloud/test/compute/test_gce.py
+++ b/libcloud/test/compute/test_gce.py
@@ -462,7 +462,7 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
self.assertEqual(mig.zone.name, zone)
def test_ex_create_instancegroupmanager_shared_network(self):
- name = 'myinstancegroup'
+ name = 'myinstancegroup-shared-network'
zone = 'us-central1-a'
size = 4
template_name = 'my-instance-template-shared-network'
@@ -2707,12 +2707,22 @@ class GCEMockHttp(MockHttp):
body = self.fixtures.load('projects_other_name_global_networks_cf.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+ def _projects_other_name_global_networks_shared_network_for_mig(self, method, url, body, headers):
+ body = self.fixtures.load('projects_other_name_global_networks_shared_network_for_mig.json')
+ return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
def _projects_other_name_regions_us_central1_subnetworks_cf_972cf02e6ad49114(
self, method, url, body, headers):
body = self.fixtures.load(
'projects_other_name_regions_us-central1_subnetworks_cf_972cf02e6ad49114.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+ def _projects_other_name_regions_us_central1_subnetworks_shared_subnetwork_for_mig(
+ self, method, url, body, headers):
+ body = self.fixtures.load(
+ 'projects_other_name_regions_us-central1_subnetworks_shared_subnetwork_for_mig.json')
+ return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
def _regions_us_central1_operations_operation_regions_us_central1_addresses_lcaddress_delete(
self, method, url, body, headers):
body = self.fixtures.load(
@@ -3497,12 +3507,24 @@ class GCEMockHttp(MockHttp):
'zones_us-east1-b_instanceGroup_myinstancegroup.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+ def _zones_us_central1_a_instanceGroups_myinstancegroup_shared_network(
+ self, method, url, body, headers):
+ body = self.fixtures.load(
+ 'zones_us-central1-a_instanceGroup_myinstancegroup_shared_network.json')
+ return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
def _zones_us_central1_a_instanceGroupManagers_myinstancegroup(
self, method, url, body, headers):
body = self.fixtures.load(
'zones_us-central1-a_instanceGroupManagers_myinstancegroup.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+ def _zones_us_central1_a_instanceGroupManagers_myinstancegroup_shared_network(
+ self, method, url, body, headers):
+ body = self.fixtures.load(
+ 'zones_us-central1-a_instanceGroupManagers_myinstancegroup_shared_network.json')
+ return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
def _zones_us_central1_b_instanceGroupManagers_myinstancegroup(
self, method, url, body, headers):
body = self.fixtures.load(
[2/5] libcloud git commit: Fix linting issue
Posted by qu...@apache.org.
Fix linting issue
Signed-off-by: Quentin Pradet <qu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/d04f8d63
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/d04f8d63
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/d04f8d63
Branch: refs/heads/trunk
Commit: d04f8d63024b60f1fbfdb74d1d3e5d1d502a8128
Parents: fa2b484
Author: Boris Chazalet <bc...@companywatch.net>
Authored: Fri Mar 9 09:27:05 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Sat Mar 10 08:27:06 2018 +0400
----------------------------------------------------------------------
libcloud/test/compute/test_gce.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/d04f8d63/libcloud/test/compute/test_gce.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_gce.py b/libcloud/test/compute/test_gce.py
index 657c5cc..ab92693 100644
--- a/libcloud/test/compute/test_gce.py
+++ b/libcloud/test/compute/test_gce.py
@@ -3561,8 +3561,8 @@ class GCEMockHttp(MockHttp):
'global_instanceTemplates_my_instance_template1.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
- def _global_instanceTemplates_my_instance_template_shared_network(self, method, url,
- body, headers):
+ def _global_instanceTemplates_my_instance_template_shared_network(
+ self, method, url, body, headers):
body = self.fixtures.load(
'global_instanceTemplates_my_instance_template_shared_network.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
[4/5] libcloud git commit: Add a test for gce MIG with shared network
Posted by qu...@apache.org.
Add a test for gce MIG with shared network
Signed-off-by: Quentin Pradet <qu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/fa2b484d
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/fa2b484d
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/fa2b484d
Branch: refs/heads/trunk
Commit: fa2b484db337bde0b839228ebe91965279422b56
Parents: 51cd3e5
Author: Boris Chazalet <bc...@companywatch.net>
Authored: Thu Mar 8 14:22:07 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Sat Mar 10 08:27:06 2018 +0400
----------------------------------------------------------------------
...tes_my_instance_template_shared_network.json | 61 ++++++++++++++++++++
libcloud/test/compute/test_gce.py | 19 ++++++
2 files changed, 80 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fa2b484d/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json b/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
new file mode 100644
index 0000000..e2a97cd
--- /dev/null
+++ b/libcloud/test/compute/fixtures/gce/global_instanceTemplates_my_instance_template_shared_network.json
@@ -0,0 +1,61 @@
+{
+ "creationTimestamp": "2016-07-18T09:53:22.323-07:00",
+ "description": "",
+ "id": "8161922600535111533",
+ "kind": "compute#instanceTemplate",
+ "name": "my-instance-template_shared_network",
+ "properties": {
+ "canIpForward": false,
+ "disks": [
+ {
+ "autoDelete": true,
+ "boot": true,
+ "deviceName": "my-instance-template_shared_network",
+ "initializeParams": {
+ "diskSizeGb": "10",
+ "diskType": "pd-standard",
+ "sourceImage": "projects/project_name/global/images/my-new-image1"
+ },
+ "kind": "compute#attachedDisk",
+ "mode": "READ_WRITE",
+ "type": "PERSISTENT"
+ }
+ ],
+ "machineType": "n1-standard-1",
+ "metadata": {
+ "fingerprint": "Jt9ALJ07B8Q=",
+ "kind": "compute#metadata"
+ },
+ "networkInterfaces": [
+ {
+ "accessConfigs": [
+ {
+ "kind": "compute#accessConfig",
+ "name": "External NAT",
+ "type": "ONE_TO_ONE_NAT"
+ }
+ ],
+ "network": "https://www.googleapis.com/compute/v1/projects/other_name/global/networks/cf",
+ "subnetwork": "https://www.googleapis.com/compute/v1/projects/other_name/regions/us-central1/subnetworks/cf-972cf02e6ad49112"
+ }
+ ],
+ "scheduling": {
+ "automaticRestart": true,
+ "onHostMaintenance": "MIGRATE",
+ "preemptible": false
+ },
+ "serviceAccounts": [
+ {
+ "email": "default",
+ "scopes": [
+ "https://www.googleapis.com/auth/devstorage.read_only",
+ "https://www.googleapis.com/auth/logging.write",
+ "https://www.googleapis.com/auth/monitoring.write",
+ "https://www.googleapis.com/auth/servicecontrol",
+ "https://www.googleapis.com/auth/service.management"
+ ]
+ }
+ ]
+ },
+ "selfLink": "https://content.googleapis.com/compute/v1/projects/project_name/global/instanceTemplates/my-instance-template_shared_network"
+}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/fa2b484d/libcloud/test/compute/test_gce.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_gce.py b/libcloud/test/compute/test_gce.py
index a0e87b9..657c5cc 100644
--- a/libcloud/test/compute/test_gce.py
+++ b/libcloud/test/compute/test_gce.py
@@ -461,6 +461,19 @@ class GCENodeDriverTest(GoogleTestCase, TestCaseMixin):
self.assertEqual(mig.size, size)
self.assertEqual(mig.zone.name, zone)
+ def test_ex_create_instancegroupmanager_shared_network(self):
+ name = 'myinstancegroup'
+ zone = 'us-central1-a'
+ size = 4
+ template_name = 'my-instance-template-shared-network'
+ template = self.driver.ex_get_instancetemplate(template_name)
+ mig = self.driver.ex_create_instancegroupmanager(
+ name, zone, template, size, base_instance_name='base-foo')
+
+ self.assertEqual(mig.name, name)
+ self.assertEqual(mig.size, size)
+ self.assertEqual(mig.zone.name, zone)
+
def test_ex_create_instancetemplate(self):
name = 'my-instance-template1'
actual = self.driver.ex_create_instancetemplate(
@@ -3548,6 +3561,12 @@ class GCEMockHttp(MockHttp):
'global_instanceTemplates_my_instance_template1.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+ def _global_instanceTemplates_my_instance_template_shared_network(self, method, url,
+ body, headers):
+ body = self.fixtures.load(
+ 'global_instanceTemplates_my_instance_template_shared_network.json')
+ return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
+
def _aggregated_autoscalers(self, method, url, body, headers):
body = self.fixtures.load('aggregated_autoscalers.json')
return (httplib.OK, body, self.json_hdr, httplib.responses[httplib.OK])
[3/5] libcloud git commit: Allow for shared networks in instance
groups
Posted by qu...@apache.org.
Allow for shared networks in instance groups
By using fully qualified names of networks.
Signed-off-by: Quentin Pradet <qu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/51cd3e5e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/51cd3e5e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/51cd3e5e
Branch: refs/heads/trunk
Commit: 51cd3e5ea35d597d2656e8f8b735a4171223fcf4
Parents: 4d0f9e0
Author: Boris Chazalet <bc...@companywatch.net>
Authored: Wed Mar 7 18:35:13 2018 +0100
Committer: Quentin Pradet <qu...@apache.org>
Committed: Sat Mar 10 08:27:06 2018 +0400
----------------------------------------------------------------------
libcloud/compute/drivers/gce.py | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/51cd3e5e/libcloud/compute/drivers/gce.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py
index a20ce21..3ecb3ca 100644
--- a/libcloud/compute/drivers/gce.py
+++ b/libcloud/compute/drivers/gce.py
@@ -9025,13 +9025,11 @@ class GCENodeDriver(NodeDriver):
# does not contain instances.
network = instancegroup.get('network', None)
if network:
- obj_name = self._get_components_from_path(network)['name']
- network = self.ex_get_network(obj_name)
+ network = self.ex_get_network(network)
subnetwork = instancegroup.get('subnetwork', None)
if subnetwork:
- parts = self._get_components_from_path(subnetwork)
- subnetwork = self.ex_get_subnetwork(parts['name'], parts['region'])
+ subnetwork = self.ex_get_subnetwork(subnetwork)
return GCEInstanceGroup(
id=instancegroup['id'], name=instancegroup['name'], zone=zone,
[5/5] libcloud git commit: Add changes for #1179
Posted by qu...@apache.org.
Add changes for #1179
Closes #1179
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/0310ba9e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/0310ba9e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/0310ba9e
Branch: refs/heads/trunk
Commit: 0310ba9eda5a1b0697fefddc54511e0672705d54
Parents: fca9f83
Author: Quentin Pradet <qu...@apache.org>
Authored: Sat Mar 10 08:28:43 2018 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Sat Mar 10 08:28:43 2018 +0400
----------------------------------------------------------------------
CHANGES.rst | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/0310ba9e/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index f46dda6..7c0cddc 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -22,6 +22,9 @@ Compute
- [GCE] Extend ex_create_address to allow internal ip creation (GITHUB-1174)
[Jeremy Solarz]
+- [GCE] Allow shared VPC in managed instance group creation (GITHUB-1179)
+ [Boris Chazalet]
+
- [OpenStack] Implement Glance Image API v2 (GITHUB-1151)
[Rick van de Loo]