#!/usr/bin/env python3 """Import extisting nodes.yaml into database""" import yaml import pyenc from pyenc.app import 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 = model.Environment \ .query \ .where(model.Environment.name == val.get('environment', 'production')) \ .one() classes = val['classes'] if type(classes) == dict: classes = classes.keys() cls = model.PuppetClass.query \ .where(model.PuppetClass.name.in_(classes)).all() print(cls) h.classes.extend(cls) model.db.session.commit()