diff options
Diffstat (limited to 'commit_classes.py')
-rwxr-xr-x | commit_classes.py | 39 |
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() |