Reactor - node_register
Reactor file, reactor orchestrate file and reactor state file. Reclass module and states updated
with methods to automatically classify node, generate node metadata and cluster level metadata
override.
diff --git a/_states/reclass.py b/_states/reclass.py
index 8f94b3e..4f9e09e 100644
--- a/_states/reclass.py
+++ b/_states/reclass.py
@@ -79,6 +79,27 @@
return ret
+def dynamic_node_present(name, node_data={}, class_mapping={}, **kwargs):
+ '''
+ Classify node, create cluster level overrides and node metadata
+
+ :param name: node FQDN
+ :param node_data: dictionary of known informations about the node
+ :param class_mapping: dictionary of classes and parameters, with conditions
+
+ '''
+ ret = {'name': name,
+ 'changes': {},
+ 'result': True,
+ 'comment': 'Node "{0}" already exists and it is in correct state'.format(name)}
+
+ classify_ret = __salt__['reclass.node_classify'](name, node_data, class_mapping, **kwargs)
+ ret['comment'] = 'Node "{0}" has been created'.format(name)
+ ret['changes']['Node'] = classify_ret
+
+ return ret
+
+
def cluster_meta_present(name, value, file_name="overrides.yml", cluster="", **kwargs):
'''
Ensures that the cluster metadata entry exists