Merge pull request #24 from car-da/master
update_node
diff --git a/_modules/reclass.py b/_modules/reclass.py
index c1a118c..f15eb44 100644
--- a/_modules/reclass.py
+++ b/_modules/reclass.py
@@ -558,13 +558,39 @@
.. code-block:: bash
- salt '*' reclass.node_update name=nodename classes="[clas1, class2]"
+ salt '*' reclass.node_update name=nodename classes="[clas1, class2]" parameters="{param: value, another_param: another_value}"
'''
node = node_get(name=name)
- if not node.has_key('Error'):
- node = node[name.split("/")[1]]
- else:
+ if node.has_key('Error'):
return {'Error': 'Error in retrieving node'}
+
+ for name, values in node.items():
+ param = values.get('parameters', {})
+ path = values.get('path')
+ cluster = values.get('cluster')
+ environment = values.get('environment')
+ write_class = values.get('classes', [])
+
+ if parameters:
+ param.update(parameters)
+
+ if classes:
+ for classe in classes:
+ if not classe in write_class:
+ write_class.append(classe)
+
+ node_meta = _get_node_meta(name, cluster, environment, write_class, param)
+ LOG.debug(node_meta)
+
+ if path == None:
+ file_path = os.path.join(_get_nodes_dir(), name + '.yml')
+ else:
+ file_path = os.path.join(_get_nodes_dir(), path, name + '.yml')
+
+ with open(file_path, 'w') as node_file:
+ node_file.write(yaml.safe_dump(node_meta, default_flow_style=False))
+
+ return node_get(name)
def _get_node_classes(node_data, class_mapping_fragment):
diff --git a/reclass/orchestrate/reactor/node_register.sls b/reclass/orchestrate/reactor/node_register.sls
index 1bd211a..6cc2f0e 100644
--- a/reclass/orchestrate/reactor/node_register.sls
+++ b/reclass/orchestrate/reactor/node_register.sls
@@ -17,5 +17,5 @@
- tgt_type: pillar
- sls: reclass.storage.node
- queue: True
- - requires:
+ - require:
- salt: classify_node_{{ node_name }}