Fixing cluster and node group template updates

Changes:

* volume(s)_* fields now can be updated without
  updating volumes_per_node field
* ngt now can be updated without node_processes field
* arguments of update methods (except of id) changed
  to optional

Change-Id: I3549cb98f1c15d303cdc13bbd3875a85b43f29b8
Closes-bug: #1499730
Closes-bug: #1499732
This commit is contained in:
Andrey Pavlov
2015-09-25 17:41:35 +03:00
parent 9300a22969
commit 1fa10e091b
2 changed files with 54 additions and 69 deletions

View File

@@ -23,11 +23,11 @@ class ClusterTemplate(base.Resource):
class ClusterTemplateManager(base.ResourceManager):
resource_class = ClusterTemplate
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, shares=None, is_public=None,
is_protected=None):
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,
shares=None, is_public=None, is_protected=None):
data = {
'name': name,
'plugin_name': plugin_name,
@@ -45,30 +45,29 @@ class ClusterTemplateManager(base.ResourceManager):
shares=shares,
is_public=is_public,
is_protected=is_protected)
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,
shares=None, is_public=None, is_protected=None):
data = self._assign_field(name, plugin_name, hadoop_version,
description, cluster_configs, node_groups,
anti_affinity, net_id, default_image_id,
use_autoconfig, shares, is_public,
is_protected)
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, shares=None, is_public=None,
is_protected=None):
data = self._assign_field(name, plugin_name, hadoop_version,
description, cluster_configs, node_groups,
anti_affinity, net_id, default_image_id,
use_autoconfig, shares, is_public,
is_protected)
def update(self, cluster_template_id, name=None, plugin_name=None,
hadoop_version=None, description=None, cluster_configs=None,
node_groups=None, anti_affinity=None, net_id=None,
default_image_id=None, use_autoconfig=None, shares=None,
is_public=None, is_protected=None):
data = {}
self._copy_if_defined(data, name=name,
plugin_name=plugin_name,
hadoop_version=hadoop_version,
description=description,
cluster_configs=cluster_configs,
node_groups=node_groups,
anti_affinity=anti_affinity,
neutron_management_network=net_id,
default_image_id=default_image_id,
use_autoconfig=use_autoconfig,
shares=shares,
is_public=is_public,
is_protected=is_protected)
return self._update('/cluster-templates/%s' % cluster_template_id,
data, 'cluster_template')

View File

@@ -23,15 +23,14 @@ class NodeGroupTemplate(base.Resource):
class NodeGroupTemplateManager(base.ResourceManager):
resource_class = NodeGroupTemplate
def _assign_field(self, name, plugin_name, hadoop_version, flavor_id,
description=None, volumes_per_node=None,
volumes_size=None, node_processes=None,
node_configs=None, floating_ip_pool=None,
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,
shares=None, is_public=None, is_protected=None):
def create(self, name, plugin_name, hadoop_version, flavor_id,
description=None, volumes_per_node=None, volumes_size=None,
node_processes=None, node_configs=None, floating_ip_pool=None,
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,
shares=None, is_public=None, is_protected=None):
data = {
'name': name,
@@ -68,49 +67,36 @@ class NodeGroupTemplateManager(base.ResourceManager):
data.update(
{"volume_local_to_instance": volume_local_to_instance})
return data
def create(self, name, plugin_name, hadoop_version, flavor_id,
description=None, volumes_per_node=None, volumes_size=None,
node_processes=None, node_configs=None, floating_ip_pool=None,
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,
shares=None, is_public=None, is_protected=None):
data = self._assign_field(name, plugin_name, hadoop_version, flavor_id,
description, volumes_per_node, volumes_size,
node_processes, node_configs,
floating_ip_pool, security_groups,
auto_security_group, availability_zone,
volumes_availability_zone, volume_type,
image_id, is_proxy_gateway,
volume_local_to_instance, use_autoconfig,
shares, is_public, is_protected)
return self._create('/node-group-templates', data,
'node_group_template')
def update(self, ng_template_id, name, plugin_name, hadoop_version,
flavor_id, description=None, volumes_per_node=None,
volumes_size=None, node_processes=None, node_configs=None,
floating_ip_pool=None, security_groups=None,
def update(self, ng_template_id, name=None, plugin_name=None,
hadoop_version=None, flavor_id=None, description=None,
volumes_per_node=None, volumes_size=None, node_processes=None,
node_configs=None, floating_ip_pool=None, 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,
shares=None, is_public=None, is_protected=None):
data = self._assign_field(name, plugin_name, hadoop_version, flavor_id,
description, volumes_per_node, volumes_size,
node_processes, node_configs,
floating_ip_pool, security_groups,
auto_security_group, availability_zone,
volumes_availability_zone, volume_type,
image_id, is_proxy_gateway,
volume_local_to_instance, use_autoconfig,
shares, is_public, is_protected)
data = {}
self._copy_if_defined(
data, name=name, plugin_name=plugin_name,
hadoop_version=hadoop_version, flavor_id=flavor_id,
description=description, volumes_per_node=volumes_per_node,
volumes_size=volumes_size, node_processes=node_processes,
node_configs=node_configs, floating_ip_pool=floating_ip_pool,
security_groups=security_groups,
auto_security_group=auto_security_group,
availability_zone=availability_zone,
volumes_availability_zone=volumes_availability_zone,
volume_type=volume_type, image_id=image_id,
is_proxy_gateway=is_proxy_gateway,
volume_local_to_instance=volume_local_to_instance,
use_autoconfig=use_autoconfig, shares=shares,
is_public=is_public, is_protected=is_protected
)
return self._update('/node-group-templates/%s' % ng_template_id, data,
'node_group_template')