diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-06-18 03:15:19 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-06-18 03:15:19 +0200 |
commit | e1b9a007b2abaf6d6ec85986c0262a2abb86a889 (patch) | |
tree | 4971f5d643fc6c31c02bb2e8d6bac07db5784dfb /import_yaml.py | |
parent | Pydocstyle. (diff) | |
download | puppet-classifier-e1b9a007b2abaf6d6ec85986c0262a2abb86a889.tar.gz puppet-classifier-e1b9a007b2abaf6d6ec85986c0262a2abb86a889.tar.xz |
Add some python scripts.
Diffstat (limited to 'import_yaml.py')
-rwxr-xr-x | import_yaml.py | 37 |
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() |