diff options
author | Ethan Gafford <egafford@redhat.com> | 2015-07-27 11:53:23 -0400 |
---|---|---|
committer | Ethan Gafford <egafford@redhat.com> | 2015-08-07 10:29:20 -0400 |
commit | 9155bd7d3fc301e84a11e7811d3bc93adc269b06 (patch) | |
tree | 48c7521e25c58a3d4757a7537c7ca88fc7069908 | |
parent | afff5823f7bd3b4a0e63f5a0e54212975c16346d (diff) | |
download | python-saharaclient-9155bd7d3fc301e84a11e7811d3bc93adc269b06.tar.gz |
API to mount manila shares to clusters
Manually mounting shares to every node in a large cluster would be a tedious
and error-prone process. Auto-mounting shares that are requested for use in
either the data source or binary storage case might be feasible for some use
cases. However, outside of our (optional) EDP interface this functionality
would never be usable. As such, it is best to provide the user an API for
mounting of shares onto Sahara clusters.
Change-Id: Ib897d3fefaea146150963e25fbaaec80e197ca36
Implements: blueprint mount-share-api
-rw-r--r-- | saharaclient/api/cluster_templates.py | 14 | ||||
-rw-r--r-- | saharaclient/api/clusters.py | 6 | ||||
-rw-r--r-- | saharaclient/api/node_group_templates.py | 19 |
3 files changed, 24 insertions, 15 deletions
diff --git a/saharaclient/api/cluster_templates.py b/saharaclient/api/cluster_templates.py index 018939c..307a080 100644 --- a/saharaclient/api/cluster_templates.py +++ b/saharaclient/api/cluster_templates.py @@ -26,7 +26,7 @@ class ClusterTemplateManager(base.ResourceManager): def _assign_field(self, name, plugin_name, hadoop_version, description=None, cluster_configs=None, node_groups=None, anti_affinity=None, net_id=None, default_image_id=None, - use_autoconfig=None): + use_autoconfig=None, shares=None): data = { 'name': name, 'plugin_name': plugin_name, @@ -40,27 +40,29 @@ class ClusterTemplateManager(base.ResourceManager): anti_affinity=anti_affinity, neutron_management_network=net_id, default_image_id=default_image_id, - use_autoconfig=use_autoconfig) + use_autoconfig=use_autoconfig, + shares=shares) return data def create(self, name, plugin_name, hadoop_version, description=None, cluster_configs=None, node_groups=None, anti_affinity=None, - net_id=None, default_image_id=None, use_autoconfig=None): + net_id=None, default_image_id=None, use_autoconfig=None, + shares=None): data = self._assign_field(name, plugin_name, hadoop_version, description, cluster_configs, node_groups, anti_affinity, net_id, default_image_id, - use_autoconfig) + use_autoconfig, shares) return self._create('/cluster-templates', data, 'cluster_template') def update(self, cluster_template_id, name, plugin_name, hadoop_version, description=None, cluster_configs=None, node_groups=None, anti_affinity=None, net_id=None, default_image_id=None, - use_autoconfig=None): + use_autoconfig=None, shares=None): data = self._assign_field(name, plugin_name, hadoop_version, description, cluster_configs, node_groups, anti_affinity, net_id, default_image_id, - use_autoconfig) + use_autoconfig, shares) return self._update('/cluster-templates/%s' % cluster_template_id, data, 'cluster_template') diff --git a/saharaclient/api/clusters.py b/saharaclient/api/clusters.py index 2503063..c294413 100644 --- a/saharaclient/api/clusters.py +++ b/saharaclient/api/clusters.py @@ -30,7 +30,7 @@ class ClusterManager(base.ResourceManager): is_transient=None, description=None, cluster_configs=None, node_groups=None, user_keypair_id=None, anti_affinity=None, net_id=None, count=None, - use_autoconfig=None): + use_autoconfig=None, shares=None): data = { 'name': name, @@ -54,7 +54,9 @@ class ClusterManager(base.ResourceManager): user_keypair_id=user_keypair_id, anti_affinity=anti_affinity, neutron_management_network=net_id, - count=count, use_autoconfig=use_autoconfig) + count=count, + use_autoconfig=use_autoconfig, + shares=shares) if count: return self._create('/clusters/multiple', data) diff --git a/saharaclient/api/node_group_templates.py b/saharaclient/api/node_group_templates.py index 49ad6d2..52e0ebc 100644 --- a/saharaclient/api/node_group_templates.py +++ b/saharaclient/api/node_group_templates.py @@ -30,7 +30,8 @@ class NodeGroupTemplateManager(base.ResourceManager): security_groups=None, auto_security_group=None, availability_zone=None, volumes_availability_zone=None, volume_type=None, image_id=None, is_proxy_gateway=None, - volume_local_to_instance=None, use_autoconfig=None): + volume_local_to_instance=None, use_autoconfig=None, + shares=None): data = { 'name': name, @@ -49,8 +50,8 @@ class NodeGroupTemplateManager(base.ResourceManager): availability_zone=availability_zone, image_id=image_id, is_proxy_gateway=is_proxy_gateway, - use_autoconfig=use_autoconfig - ) + use_autoconfig=use_autoconfig, + shares=shares) if volumes_per_node: data.update({"volumes_per_node": volumes_per_node, @@ -72,7 +73,8 @@ class NodeGroupTemplateManager(base.ResourceManager): security_groups=None, auto_security_group=None, availability_zone=None, volumes_availability_zone=None, volume_type=None, image_id=None, is_proxy_gateway=None, - volume_local_to_instance=None, use_autoconfig=None): + volume_local_to_instance=None, use_autoconfig=None, + shares=None): data = self._assign_field(name, plugin_name, hadoop_version, flavor_id, description, volumes_per_node, volumes_size, @@ -81,7 +83,8 @@ class NodeGroupTemplateManager(base.ResourceManager): auto_security_group, availability_zone, volumes_availability_zone, volume_type, image_id, is_proxy_gateway, - volume_local_to_instance, use_autoconfig) + volume_local_to_instance, use_autoconfig, + shares) return self._create('/node-group-templates', data, 'node_group_template') @@ -93,7 +96,8 @@ class NodeGroupTemplateManager(base.ResourceManager): auto_security_group=None, availability_zone=None, volumes_availability_zone=None, volume_type=None, image_id=None, is_proxy_gateway=None, - volume_local_to_instance=None, use_autoconfig=None): + volume_local_to_instance=None, use_autoconfig=None, + shares=None): data = self._assign_field(name, plugin_name, hadoop_version, flavor_id, description, volumes_per_node, volumes_size, @@ -102,7 +106,8 @@ class NodeGroupTemplateManager(base.ResourceManager): auto_security_group, availability_zone, volumes_availability_zone, volume_type, image_id, is_proxy_gateway, - volume_local_to_instance, use_autoconfig) + volume_local_to_instance, use_autoconfig, + shares) return self._update('/node-group-templates/%s' % ng_template_id, data, 'node_group_template') |