summaryrefslogtreecommitdiff
path: root/global/overlay/etc/puppet/cosmos_enc.py
diff options
context:
space:
mode:
Diffstat (limited to 'global/overlay/etc/puppet/cosmos_enc.py')
-rwxr-xr-xglobal/overlay/etc/puppet/cosmos_enc.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/global/overlay/etc/puppet/cosmos_enc.py b/global/overlay/etc/puppet/cosmos_enc.py
new file mode 100755
index 0000000..63c3a66
--- /dev/null
+++ b/global/overlay/etc/puppet/cosmos_enc.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+
+import sys
+import yaml
+import os
+import re
+
+rules_path = os.environ.get("COSMOS_RULES_PATH","/etc/puppet")
+
+node_name = sys.argv[1]
+
+rules = dict()
+for p in rules_path.split(":"):
+ rules_file = os.path.join(p,"cosmos-rules.yaml")
+ if os.path.exists(rules_file):
+ with open(rules_file) as fd:
+ rules.update(yaml.load(fd))
+
+classes = dict()
+for reg,cls in rules.iteritems():
+ if re.search(reg,node_name):
+ classes.update(cls)
+
+print yaml.dump(dict(classes=classes))