diff --git a/savannaclient/api/cluster_templates.py b/savannaclient/api/cluster_templates.py index e773e5e5..e51cf995 100644 --- a/savannaclient/api/cluster_templates.py +++ b/savannaclient/api/cluster_templates.py @@ -23,13 +23,13 @@ class ClusterTemplate(base.Resource): class ClusterTemplateManager(base.ResourceManager): resource_class = ClusterTemplate - def create(self, name, plugin_name, hadoop_version, description=None, - cluster_configs=None, node_groups=None, anti_affinity=None, - net_id=None): + def _assign_field(self, name, plugin_name, hadoop_version, + description=None, cluster_configs=None, node_groups=None, + anti_affinity=None, net_id=None): data = { 'name': name, 'plugin_name': plugin_name, - 'hadoop_version': hadoop_version + 'hadoop_version': hadoop_version, } self._copy_if_defined(data, @@ -38,9 +38,27 @@ class ClusterTemplateManager(base.ResourceManager): node_groups=node_groups, anti_affinity=anti_affinity, neutron_management_network=net_id) + return data + + def create(self, name, plugin_name, hadoop_version, description=None, + cluster_configs=None, node_groups=None, anti_affinity=None, + net_id=None): + data = self._assign_field(name, plugin_name, hadoop_version, + description, cluster_configs, node_groups, + anti_affinity, net_id) 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): + data = self._assign_field(name, plugin_name, hadoop_version, + description, cluster_configs, node_groups, + anti_affinity, net_id) + + return self._update('/cluster-templates/%s' % cluster_template_id, + data, 'cluster_template') + def list(self): return self._list('/cluster-templates', 'cluster_templates')