diff --git a/scripts/create-vms.sh b/scripts/create-vms.sh
index d56b043..dba3099 100755
--- a/scripts/create-vms.sh
+++ b/scripts/create-vms.sh
@@ -19,7 +19,8 @@
 create-vm keystone 2 4096 40
 create-vm glance 2 4096 160
 create-vm nova-cloud-controller 2 4096 40
-create-vm quantum-gateway 2 4096 40
+create-vm neutron-gateway 2 4096 40
+create-vm neutron-api 2 4096 40
 create-vm openstack-dashboard 1 2048 20
 create-vm ceilometer 1 2048 20
 create-vm nagios 1 2048 20
diff --git a/scripts/juju-compute-relations.py b/scripts/juju-compute-relations.py
index 49d0cdc..535b5d4 100755
--- a/scripts/juju-compute-relations.py
+++ b/scripts/juju-compute-relations.py
@@ -11,6 +11,7 @@
     "nova-compute:amqp rabbitmq-server:amqp",
     "nova-compute glance",
     "nova-compute nova-cloud-controller",
+    "nova-compute neutron-openvswitch",
     "ntp nova-compute",
     "nova-compute nagios",
     "nova-compute nrpe",
@@ -31,7 +32,7 @@
             time.sleep(sleep_interval)
         except:
             pass
-            
+
 def destroyrelations():
     for relation in relations:
         print "Destroying relation %s" % relation
@@ -51,6 +52,6 @@
         destroyrelations()
     else:
         addrelations()
-        
+
 if  __name__ =='__main__':
     main()
diff --git a/scripts/juju-compute-setup.py b/scripts/juju-compute-setup.py
index 0c5ea3c..326eaf3 100755
--- a/scripts/juju-compute-setup.py
+++ b/scripts/juju-compute-setup.py
@@ -7,7 +7,8 @@
 jujuconfig="/usr/local/src/openstack.cfg"
 
 services = {
-    "nova-compute" : "--config=%s cs:~andybavier/trusty/nova-compute" % jujuconfig,
+#    "nova-compute" : "--config=%s cs:~andybavier/trusty/nova-compute" % jujuconfig,
+    "nova-compute" : "--config=%s nova-compute" % jujuconfig,
 }
 
 def get_free_machines(status):
@@ -28,14 +29,14 @@
             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']: 
+        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:
diff --git a/scripts/juju-relations.py b/scripts/juju-relations.py
index 1be59ab..a723395 100755
--- a/scripts/juju-relations.py
+++ b/scripts/juju-relations.py
@@ -13,9 +13,16 @@
              "nova-cloud-controller keystone",
              "glance mysql",
              "glance keystone",
-             "quantum-gateway mysql",
-             "quantum-gateway rabbitmq-server",
-             "quantum-gateway nova-cloud-controller",
+             "neutron-gateway neutron-api",
+             "neutron-gateway:amqp rabbitmq-server:amqp",
+             "neutron-gateway nova-cloud-controller",
+             "neutron-gateway mysql",
+             "neutron-api keystone",
+             "neutron-api neutron-openvswitch",
+             "neutron-api mysql",
+             "neutron-api rabbitmq-server",
+             "neutron-api nova-cloud-controller",
+             "neutron-openvswitch rabbitmq-server",
              "openstack-dashboard keystone",
              "ntp nova-cloud-controller",
              "mysql nagios",
@@ -23,7 +30,7 @@
              "keystone nagios",
              "glance nagios",
              "nova-cloud-controller nagios",
-             "quantum-gateway nagios",
+             "neutron-gateway nagios",
              "openstack-dashboard nagios",
              "nagios nrpe",
              "mysql nrpe",
@@ -31,7 +38,7 @@
              "keystone nrpe",
              "glance nrpe",
              "nova-cloud-controller nrpe",
-             "quantum-gateway nrpe",
+             "neutron-gateway nrpe",
              "openstack-dashboard nrpe",
              "ceilometer mongodb",
              "ceilometer rabbitmq-server",
@@ -55,7 +62,7 @@
             time.sleep(sleep_interval)
         except:
             pass
-            
+
 def destroyrelations():
     for relation in relations:
         print "Destroying relation %s" % relation
@@ -75,6 +82,6 @@
         destroyrelations()
     else:
         addrelations()
-        
+
 if  __name__ =='__main__':
     main()
diff --git a/scripts/juju-setup.py b/scripts/juju-setup.py
index ca5cbfe..d56368c 100755
--- a/scripts/juju-setup.py
+++ b/scripts/juju-setup.py
@@ -8,15 +8,19 @@
 
 # Assumption: VMs have same hostname as service that runs inside
 machines = ["mysql", "rabbitmq-server", "keystone", "glance", "nova-cloud-controller",
-            "quantum-gateway", "openstack-dashboard", "ceilometer", "nagios"]
+            "neutron-gateway", "openstack-dashboard", "ceilometer", "nagios", "neutron-api"]
 
 services = {
     "mysql" : "mysql",
     "rabbitmq-server" : "rabbitmq-server",
     "keystone" : "--config=%s keystone" % jujuconfig,
     "glance" : "--config=%s glance" % jujuconfig,
-    "nova-cloud-controller" : "--config=%s cs:~andybavier/trusty/nova-cloud-controller" % jujuconfig,
-    "quantum-gateway" : "--config=%s cs:~andybavier/trusty/quantum-gateway" % jujuconfig,
+#    "nova-cloud-controller" : "--config=%s cs:~andybavier/trusty/nova-cloud-controller" % jujuconfig,
+#    "quantum-gateway" : "--config=%s cs:~andybavier/trusty/quantum-gateway" % jujuconfig,
+    "nova-cloud-controller" : "--config=%s nova-cloud-controller" % jujuconfig,
+    "neutron-gateway" : "--config=%s neutron-gateway" % jujuconfig,
+    "neutron-api" : "--config=%s neutron-api" % jujuconfig,
+    "neutron-openvswitch" : "--config=%s neutron-openvswitch" % jujuconfig,
     "openstack-dashboard" : "--config=%s openstack-dashboard" % jujuconfig,
     "nagios" : "nagios",
     "mongodb" : "mongodb",   # deploy to ceilometer machine
