aboutsummaryrefslogtreecommitdiff
path: root/commit_classes.py
diff options
context:
space:
mode:
Diffstat (limited to 'commit_classes.py')
-rwxr-xr-xcommit_classes.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/commit_classes.py b/commit_classes.py
new file mode 100755
index 0000000..c6c8bc7
--- /dev/null
+++ b/commit_classes.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+import json
+
+from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
+
+import pyenc
+from pyenc.db import db
+import pyenc.model as model
+
+app = pyenc.create_app()
+app.app_context().push()
+
+
+"""
+Fetch all found classes from redis, handle the data, and commit it to
+our true database.
+"""
+
+# TODO this inserts already existing classes
+# It shouldn't
+for puppet_file in model.PuppetFile.query.all():
+ data = json.loads(puppet_file.json)
+ top = data['^']
+ if top[0] == 'class':
+ tmp = top[1]['#']
+ idx = tmp.index('name')
+ db.session.add(model.PuppetClass(
+ class_name=tmp[idx + 1],
+ comes_from=puppet_file))
+ # print(tmp[idx + 1])
+ elif top[0] == 'block':
+ for element in top[1:]:
+ if element['^'][0] == 'class':
+ tmp = element['^'][1]['#']
+ idx = tmp.index('name')
+ db.session.add(model.PuppetClass(
+ class_name=tmp[idx + 1],
+ comes_from=puppet_file))
+db.session.commit()