diff options
Diffstat (limited to 'savannaclient/api/clusters.py')
-rw-r--r-- | savannaclient/api/clusters.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/savannaclient/api/clusters.py b/savannaclient/api/clusters.py index aa2b1ca..0245560 100644 --- a/savannaclient/api/clusters.py +++ b/savannaclient/api/clusters.py @@ -31,12 +31,19 @@ class ClusterManager(base.ResourceManager): raise base.APIException('Cluster is missing field "%s"' % var_name) + def _copy_if_defined(self, data, **kwargs): + for var_name, var_value in kwargs.iteritems(): + if var_value is not None: + data[var_name] = var_value + def create(self, name, plugin_name, hadoop_version, cluster_template_id=None, default_image_id=None, description=None, cluster_configs=None, node_groups=None, - user_keypair_id=None, anti_affinity=None): + user_keypair_id=None, anti_affinity=None, net_id=None): + + if node_groups is not None: + node_groups = [ng.as_dict() for ng in node_groups] - # expecting node groups to be array of dictionaries data = { 'name': name, 'plugin_name': plugin_name, @@ -55,7 +62,8 @@ class ClusterManager(base.ResourceManager): cluster_configs=cluster_configs, node_groups=node_groups, user_keypair_id=user_keypair_id, - anti_affinity=anti_affinity) + anti_affinity=anti_affinity, + neutron_management_network=net_id) return self._create('/clusters', data, 'cluster') |