moldified the file to parse the common inventory file.
[joid.git] / ci / deploy.py
1 import yaml
2 import pprint
3
4 with open('example.yaml', 'r') as f:
5     doc = yaml.load(f)
6 txt = doc["nodes"][0]["power"]
7
8 with open('deployment.yaml', 'r') as ft:
9     doc1 = yaml.load(ft)
10
11 def setInDict(dataDict, mapList, value):
12     getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value
13
14 def getFromDict(dataDict, mapList):
15     return reduce(lambda d, k: d[k], mapList, dataDict)
16
17 if len(doc["nodes"]) > len(doc1["demo-maas"]["maas"]["nodes"]):
18     exit 0
19
20 c=0
21 while c < len(doc["nodes"]):
22
23     value = getFromDict(doc, ["nodes",c, "name"])
24     setInDict(doc1, ["demo-maas", "maas", "nodes", c, "name"], value)
25
26     value = getFromDict(doc, ["nodes",c, "tags"])
27     setInDict(doc1, ["demo-maas", "maas", "nodes", c, "tags"], value)
28
29     value = getFromDict(doc, ["nodes",c, "arch"])
30     if value == "x86_64":
31         value="amd64/generic"
32     setInDict(doc1, ["demo-maas", "maas", "nodes", c, "architecture"], value)
33
34     value = getFromDict(doc, ["nodes",c, "mac_address"])
35     setInDict(doc1, ["demo-maas", "maas", "nodes", c, "mac_addresses"], value)
36
37     value = getFromDict(doc, ["nodes",c, "power", "type"])
38     setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "type"], value)
39
40     if value == "wakeonlan":
41         value = getFromDict(doc, ["nodes",c, "power", "mac_address"])
42         setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "mac_address"], value)
43
44     if value == "ipmi":
45         value = getFromDict(doc, ["nodes",c, "power", "address"])
46         setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "address"], value)
47
48         value = getFromDict(doc, ["nodes",c, "power", "user"])
49         setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "user"], value)
50
51         value = getFromDict(doc, ["nodes",c, "power", "pass"])
52         setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "pass"], value)
53
54     c=c+1
55
56 with open('deployment.yaml', 'w') as ft:
57    yaml.dump(doc1, ft)
58
59