aboutsummaryrefslogtreecommitdiff
path: root/import_yaml.py
blob: 0007e758af3ac832925a14eface0ff8245d16eab (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 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()