aboutsummaryrefslogtreecommitdiff
path: root/import_yaml.py
blob: 35558c885d6daa755b3d08189232b2c626ad7656 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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()