summaryrefslogtreecommitdiff
path: root/saharaclient/api
diff options
context:
space:
mode:
authorEthan Gafford <egafford@redhat.com>2015-07-27 11:53:23 -0400
committerEthan Gafford <egafford@redhat.com>2015-08-07 10:29:20 -0400
commit9155bd7d3fc301e84a11e7811d3bc93adc269b06 (patch)
tree48c7521e25c58a3d4757a7537c7ca88fc7069908 /saharaclient/api
parentafff5823f7bd3b4a0e63f5a0e54212975c16346d (diff)
downloadpython-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
Diffstat (limited to 'saharaclient/api')
-rw-r--r--saharaclient/api/cluster_templates.py14
-rw-r--r--saharaclient/api/clusters.py6
-rw-r--r--saharaclient/api/node_group_templates.py19
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')