You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by "John Baublitz (JIRA)" <ji...@apache.org> on 2016/07/21 18:47:20 UTC
[jira] [Created] (LIBCLOUD-838) Support for GCE multi-node creation
on a Google subnetwork
John Baublitz created LIBCLOUD-838:
--------------------------------------
Summary: Support for GCE multi-node creation on a Google subnetwork
Key: LIBCLOUD-838
URL: https://issues.apache.org/jira/browse/LIBCLOUD-838
Project: Libcloud
Issue Type: New Feature
Components: Compute
Reporter: John Baublitz
This patch will allow ex_create_multiple_nodes to create the nodes on a subnetwork as opposed to the current setup which only allows creation on a legacy network.
{code:none}
From 8c070181faa63a78aa624fe80607e3d8df23e6c2 Mon Sep 17 00:00:00 2001
From: John Baublitz <jo...@cambridgesemantics.com>
Date: Wed, 1 Jun 2016 23:40:18 +0000
Subject: [PATCH] Fix to allow multiple node creation with subnets
---
libcloud/compute/drivers/gce.py | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py
index 9f9b8c1..1cc5d02 100644
--- a/libcloud/compute/drivers/gce.py
+++ b/libcloud/compute/drivers/gce.py
@@ -2590,12 +2590,11 @@ class GCENodeDriver(NodeDriver):
size = self.ex_get_size(size, location)
if not hasattr(ex_network, 'name'):
ex_network = self.ex_get_network(ex_network)
- if ex_subnetwork:
- if not hasattr(ex_subnetwork, 'name'):
- ex_subnetwork = \
- self.ex_get_subnetwork(ex_subnetwork,
- region=self._get_region_from_zone(
- location))
+ if ex_subnetwork and not hasattr(ex_subnetwork, 'name'):
+ ex_subnetwork = \
+ self.ex_get_subnetwork(ex_subnetwork,
+ region=self._get_region_from_zone(
+ location))
if ex_image_family:
image = self.ex_get_image_from_family(ex_image_family)
if image and not hasattr(image, 'name'):
@@ -2640,6 +2639,7 @@ class GCENodeDriver(NodeDriver):
def ex_create_multiple_nodes(self, base_name, size, image, number,
location=None, ex_network='default',
+ ex_subnetwork=None,
ex_tags=None, ex_metadata=None,
ignore_errors=True, use_existing_disk=True,
poll_interval=2, external_ip='ephemeral',
@@ -2802,6 +2802,11 @@ class GCENodeDriver(NodeDriver):
size = self.ex_get_size(size, location)
if not hasattr(ex_network, 'name'):
ex_network = self.ex_get_network(ex_network)
+ if ex_subnetwork and not hasattr(ex_subnetwork, 'name'):
+ ex_subnetwork = \
+ self.ex_get_subnetwork(ex_subnetwork,
+ region=self._get_region_from_zone(
+ location))
if ex_image_family:
image = self.ex_get_image_from_family(ex_image_family)
if image and not hasattr(image, 'name'):
@@ -2813,6 +2818,7 @@ class GCENodeDriver(NodeDriver):
'image': image,
'location': location,
'network': ex_network,
+ 'subnetwork': ex_subnetwork,
'tags': ex_tags,
'metadata': ex_metadata,
'ignore_errors': ignore_errors,
@@ -5158,7 +5164,8 @@ class GCENodeDriver(NodeDriver):
if not ex_disk_type:
ex_disk_type = 'pd-standard'
if not hasattr(ex_disk_type, 'name'):
- ex_disk_type = self.ex_get_disktype(ex_disk_type)
+ ex_disk_type = self.ex_get_disktype(ex_disk_type,
+ zone=location)
disks = [{'boot': True,
'type': 'PERSISTENT',
'mode': 'READ_WRITE',
@@ -5321,7 +5328,8 @@ class GCENodeDriver(NodeDriver):
ex_disks_gce_struct=node_attrs['ex_disks_gce_struct'],
ex_nic_gce_struct=node_attrs['ex_nic_gce_struct'],
ex_on_host_maintenance=node_attrs['ex_on_host_maintenance'],
- ex_automatic_restart=node_attrs['ex_automatic_restart'])
+ ex_automatic_restart=node_attrs['ex_automatic_restart'],
+ ex_subnetwork=node_attrs['subnetwork'])
try:
node_res = self.connection.request(
--
1.8.3.1
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)