add method cluster_update to module
diff --git a/_modules/maas.py b/_modules/maas.py
index 0a14730..7338e27 100644
--- a/_modules/maas.py
+++ b/_modules/maas.py
@@ -87,7 +87,7 @@
for cluster in object_list:
if cluster.get('cluster_name') == cluster_name:
- return {cluster.get('name'): cluster}
+ return {cluster.get('cluster_name'): cluster}
return {'Error': 'Could not find specified cluster'}
@@ -111,7 +111,7 @@
object_list = json.loads(response)
for cluster in object_list:
- ret[cluster.get('name')] = cluster
+ ret[cluster.get('cluster_name')] = cluster
return ret
@@ -158,3 +158,46 @@
if cluster.get('url') == cluster_url:
return maas.deleteprojectcluster(project['id'], cluster['id'])
return {'Error': 'Could not find cluster'}
+
+
+def cluster_update(cluster_id=None, old_cluster_name=None, new_cluster_name=None, domain=None, status=None, **connection_args):
+ '''
+ Update information in specific MAAS cluster
+
+ CLI Examples:
+
+ .. code-block:: bash
+
+ salt '*' maas.cluster_update cluster_id cluster_name dns_name status
+ '''
+ maas = _auth(**connection_args)
+
+ cluster = {}
+
+ if not cluster_id and old_cluster_name:
+ cluster = cluster_get(old_cluster_name)
+ if cluster.get("Error"):
+ return cluster
+ else:
+ cluster_id = cluster_get(old_cluster_name).get(old_cluster_name).get("uuid")
+
+ else:
+ return {'Error': 'No cluster id or name specified'}
+
+ if new_cluster_name:
+ cluster["cluster_name"] = new_cluster_name
+
+ if domain:
+ cluster["name"] = domain
+
+ if status:
+ cluster["status"] = status
+
+ LOG.debug("Cluster id: " + cluster_id)
+ LOG.debug("New cluster info: " + str(cluster))
+
+ response = maas.put(u"nodegroups/" + cluster_id + "/", **cluster)
+
+ #TODO check response status
+ return {'Status': True}
+