modified the public network as per new config changes.
[joid.git] / ci / deploy.py
old mode 100755 (executable)
new mode 100644 (file)
index 078a3df..d52bd60
@@ -1,57 +1,59 @@
-#!/usr/bin/env python
-"""
-MAAS Deployment Tool
-"""
-import copy
-import itertools
-import json
-import logging
-import os
-import sys
-import time
 import yaml
+import pprint
+
+with open('example.yaml', 'r') as f:
+    doc = yaml.load(f)
+txt = doc["nodes"][0]["power"]
+
+with open('deployment.yaml', 'r') as ft:
+    doc1 = yaml.load(ft)
+
+def setInDict(dataDict, mapList, value):
+    getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value
+
+def getFromDict(dataDict, mapList):
+    return reduce(lambda d, k: d[k], mapList, dataDict)
+
+if len(doc["nodes"]) > len(doc1["demo-maas"]["maas"]["nodes"]):
+    exit 0
+
+c=0
+while c < len(doc["nodes"]):
+
+    value = getFromDict(doc, ["nodes",c, "name"])
+    setInDict(doc1, ["demo-maas", "maas", "nodes", c, "name"], value)
+
+    value = getFromDict(doc, ["nodes",c, "tags"])
+    setInDict(doc1, ["demo-maas", "maas", "nodes", c, "tags"], value)
+
+    value = getFromDict(doc, ["nodes",c, "arch"])
+    if value == "x86_64":
+        value="amd64/generic"
+    setInDict(doc1, ["demo-maas", "maas", "nodes", c, "architecture"], value)
+
+    value = getFromDict(doc, ["nodes",c, "mac_address"])
+    setInDict(doc1, ["demo-maas", "maas", "nodes", c, "mac_addresses"], value)
+
+    value = getFromDict(doc, ["nodes",c, "power", "type"])
+    setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "type"], value)
+
+    if value == "wakeonlan":
+        value = getFromDict(doc, ["nodes",c, "power", "mac_address"])
+        setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "mac_address"], value)
+
+    if value == "ipmi":
+        value = getFromDict(doc, ["nodes",c, "power", "address"])
+        setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "address"], value)
+
+        value = getFromDict(doc, ["nodes",c, "power", "user"])
+        setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "user"], value)
+
+        value = getFromDict(doc, ["nodes",c, "power", "pass"])
+        setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "pass"], value)
+
+    c=c+1
+
+with open('deployment.yaml', 'w') as ft:
+   yaml.dump(doc1, ft)
+
 
-from maas_deployer.vmaas.util import CONF as cfg
-
-from maas_deployer.vmaas import (
-    vm,
-    util,
-    template,
-)
-
-
-# Setup logging before imports
-logging.basicConfig(
-    filename='maas_deployer.log',
-    level=logging.DEBUG,
-    format=('%(asctime)s %(levelname)s '
-            '(%(funcName)s) %(message)s'))
-
-log = logging.getLogger('vmaas.main')
-handler = logging.StreamHandler()
-formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
-handler.setFormatter(formatter)
-log.addHandler(handler)
-
-def main():
-
-    maasipaddress = str(sys.argv); 
-
-    script = """
-        sudo apt-get install git -y 
-        git clone https://gerrit.opnfv.org/gerrit/joid
-        juju init -y
-        cp /home/juju/.juju/environments.yaml ~/.juju/
-        cd joid/ci/
-        ./deploy.sh 
-        """ 
-    try:
-        util.exec_script_remote('ubuntu', maasipaddress[1], script)
-    except:
-        # Remove console handler to avoid displaying the exception twice
-        log.removeHandler(handler)
-        log.exception("MAAS deployment failed.")
-        raise
-
-if __name__ == '__main__':
-    main()