aboutsummaryrefslogtreecommitdiff
path: root/import_yaml.py
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-06-18 03:15:19 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-06-18 03:15:19 +0200
commite1b9a007b2abaf6d6ec85986c0262a2abb86a889 (patch)
tree4971f5d643fc6c31c02bb2e8d6bac07db5784dfb /import_yaml.py
parentPydocstyle. (diff)
downloadpuppet-classifier-e1b9a007b2abaf6d6ec85986c0262a2abb86a889.tar.gz
puppet-classifier-e1b9a007b2abaf6d6ec85986c0262a2abb86a889.tar.xz
Add some python scripts.
Diffstat (limited to 'import_yaml.py')
-rwxr-xr-ximport_yaml.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/import_yaml.py b/import_yaml.py
new file mode 100755
index 0000000..35558c8
--- /dev/null
+++ b/import_yaml.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+"""Import extisting nodes.yaml into database"""
+
+import json
+import yaml
+
+import pyenc
+from pyenc.db import db
+import pyenc.model as model
+
+app = pyenc.create_app()
+app.app_context().push()
+
+
+with open('/usr/local/puppet/nodes.yaml') as f:
+ data = yaml.full_load(f)
+
+
+for fqdn, val in data.items():
+ h = model.Host.query.where(model.Host.fqdn == fqdn).first()
+ if not h:
+ h = model.Host(fqdn=fqdn)
+ h.environment = val.get('environment')
+ print(h)
+
+ classes = val['classes']
+ if type(classes) == dict:
+ classes = classes.keys()
+ cls = model.PuppetClass.query \
+ .where(model.PuppetClass.class_name.in_(classes)).all()
+ print(cls)
+
+ h.classes.extend(cls)
+
+
+db.session.commit()