Initial commit
diff --git a/scripts/juju-compute-setup.py b/scripts/juju-compute-setup.py
new file mode 100755
index 0000000..cc62b50
--- /dev/null
+++ b/scripts/juju-compute-setup.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python
+
+import subprocess
+import json
+import time
+
+jujuconfig="/home/ubuntu/openstack.cfg"
+
+services = {
+    "nova-compute" : "--config=%s cs:~andybavier/trusty/nova-compute" % jujuconfig,
+}
+
+def get_free_machines(status):
+    for (service, svcinfo) in status['services'].iteritems():
+        if 'units' in svcinfo:
+            for (unit, unitinfo) in svcinfo['units'].iteritems():
+                if 'machine' in unitinfo:
+                    machine = unitinfo['machine']
+                    status['machines'][machine]['unit'] = unit
+
+    free = {}
+    for (machine, mchinfo) in status['machines'].iteritems():
+        if machine == "0":
+            continue
+
+        if 'unit' not in mchinfo:
+            # print "%s: %s" % (machine, mchinfo['dns-name'])
+            free[machine] = mchinfo
+
+    return free
+                
+
+def deploy(status, service, cmd):
+    # Deploy nova-compute to all free machines
+    machines = get_free_machines(status)
+    
+    for (machine, mchinfo) in machines.iteritems():
+        if service in status['services']: 
+            print "Adding unit %s on %s" % (service, mchinfo['dns-name'])
+            subprocess.check_call("juju add-unit --to=%s %s" % (machine, service), shell=True)
+        else:
+            print "Deploying service %s on %s" % (service, mchinfo['dns-name'])
+            subprocess.check_call("juju deploy --to=%s %s" % (machine, cmd), shell=True)
+            status['services'][service] = "installed"
+            time.sleep(10)
+
+def get_juju_status():
+    output = subprocess.check_output("juju status --format=json", shell=True)
+    status = json.loads(output)
+    return status
+
+def addservices():
+    status = get_juju_status()
+
+    for service, cmd in services.iteritems():
+        try:
+            deploy(status, service, cmd)
+        except:
+            pass
+
+def main():
+    addservices()
+
+if  __name__ =='__main__':
+    main()