diff --git a/planetstack/dmdot b/planetstack/dmdot
old mode 100644
new mode 100755
index f38650d..9e13df2
--- a/planetstack/dmdot
+++ b/planetstack/dmdot
@@ -67,6 +67,7 @@
 					d[c.__name__].append(linked_class.__name__)
 				except KeyError:
 					d[c.__name__]=[linked_class.__name__]
+	d['NetworkDeployments'].append('SliceDeployments')
 	print json.dumps(d,indent=4)
 	
 	
diff --git a/planetstack/openstack_observer/ansible.py b/planetstack/openstack_observer/ansible.py
index 5eec7d9..8570c17 100755
--- a/planetstack/openstack_observer/ansible.py
+++ b/planetstack/openstack_observer/ansible.py
@@ -3,11 +3,16 @@
 import tempfile
 import os
 import json
+import pdb
+import string
+import random
 
 try:
     step_dir = Config().observer_steps_dir
+    sys_dir = Config().observer_sys_dir
 except:
     step_dir = '/opt/planetstack/observer/steps'
+    sys_dir = '/opt/opencloud'
 
 os_template_loader = jinja2.FileSystemLoader( searchpath=step_dir)
 os_template_env = jinja2.Environment(loader=os_template_loader)
@@ -18,48 +23,63 @@
     print msg
 
     for l in lines:
-	magic_str = 'ok: [127.0.0.1] => '
-	magic_str2 = 'changed: [127.0.0.1] => '
+        magic_str = 'ok: [127.0.0.1] => '
+        magic_str2 = 'changed: [127.0.0.1] => '
         if (l.startswith(magic_str)):
-	    w = len(magic_str)
-	    str = l[w:]
-	    d = json.loads(str)
-	    results.append(d)
-	elif (l.startswith(magic_str2)):
-	    w = len(magic_str2)
-	    str = l[w:]
-	    d = json.loads(str)
-	    results.append(d)
+            w = len(magic_str)
+            str = l[w:]
+            d = json.loads(str)
+            results.append(d)
+        elif (l.startswith(magic_str2)):
+            w = len(magic_str2)
+            str = l[w:]
+            d = json.loads(str)
+            results.append(d)
 
 
     return results
-	    
-def run_template(name, opts):
+
+def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
+    return ''.join(random.choice(chars) for _ in range(size))
+
+def run_template(name, opts,path=''):
     template = os_template_env.get_template(name)
     buffer = template.render(opts)
-    
-    f = tempfile.NamedTemporaryFile(mode='w')
+
+    import pdb
+
+    #f = open('/tmp/obsans','w')
+    try:
+        objname = opts['ansible_tag']
+    except:
+        objname= id_generator()
+    os.system('mkdir -p %s'%'/'.join([sys_dir,path]))
+    fqp = '/'.join([sys_dir,path,objname])
+
+
+    f = open(fqp,'w')
     f.write(buffer)
     f.flush()
-    
-    run = os.popen('/opt/planetstack/observer/run_ansible '+f.name)
+
+    #os.system('cp %s %s-backup'%(fqp,fqp))
+    run = os.popen('/opt/planetstack/observer/run_ansible '+fqp)
     msg = run.read()
     status = run.close()
 
     try:
-    	ok_results = parse_output(msg)
+        ok_results = parse_output(msg)
     except ValueError,e:
-	print str(e)
-	raise e
+        print str(e)
+        raise e
     return ok_results
 
 def main():
-	run_template('ansible/sync_user_deployments.yaml',{ "endpoint" : "http://172.31.38.128:5000/v2.0/",
-                 "name" : "Sapan Bhatia",
-                 "email": "gwsapan@gmail.com",
-                 "password": "foobar",
-                 "admin_user":"admin",
-                 "admin_password":"6a789bf69dd647e2",
-                 "admin_tenant":"admin",
- 		 "tenant":"demo",
-                 "roles":['user','admin'] })
+    run_template('ansible/sync_user_deployments.yaml',{ "endpoint" : "http://172.31.38.128:5000/v2.0/",
+             "name" : "Sapan Bhatia",
+             "email": "gwsapan@gmail.com",
+             "password": "foobar",
+             "admin_user":"admin",
+             "admin_password":"6a789bf69dd647e2",
+             "admin_tenant":"admin",
+             "tenant":"demo",
+             "roles":['user','admin'] })
diff --git a/planetstack/openstack_observer/steps/delete_slivers.yaml b/planetstack/openstack_observer/steps/delete_slivers.yaml
new file mode 100644
index 0000000..fa6b879
--- /dev/null
+++ b/planetstack/openstack_observer/steps/delete_slivers.yaml
@@ -0,0 +1,8 @@
+---
+- hosts: 127.0.0.1
+  connection: local
+  tasks:
+
+  - nova_compute:
+      state: absent
+      name: {{ name }}
diff --git a/planetstack/openstack_observer/steps/sync_site_deployments.py b/planetstack/openstack_observer/steps/sync_site_deployments.py
index b5e9f9a..8b2d3b8 100644
--- a/planetstack/openstack_observer/steps/sync_site_deployments.py
+++ b/planetstack/openstack_observer/steps/sync_site_deployments.py
@@ -18,10 +18,11 @@
 		         'admin_password': site_deployment.deployment.admin_password,
 		         'admin_tenant': 'admin',
 		         'tenant': site_deployment.site.login_base,
+				 'ansible_tag': '%s@%s'%(site_deployment.site.login_base,site_deployment.deployment.name), # name of ansible playbook
 		         'tenant_description': site_deployment.site.name}
 
 	rendered = template.render(tenant_fields)
-	res = run_template('sync_site_deployments.yaml', tenant_fields)
+	res = run_template('sync_site_deployments.yaml', tenant_fields, path='site_deployments')
 
 	if (len(res)==1):
 		site_deployment.tenant_id = res[0]['id']
diff --git a/planetstack/openstack_observer/steps/sync_slice_deployments.py b/planetstack/openstack_observer/steps/sync_slice_deployments.py
index 4c358d7..e8d760d 100644
--- a/planetstack/openstack_observer/steps/sync_slice_deployments.py
+++ b/planetstack/openstack_observer/steps/sync_slice_deployments.py
@@ -52,9 +52,10 @@
                                                              deployment=slice_deployment.deployment)            
     	if not deployment_users:
 	    logger.info("slice createor %s has not accout at deployment %s" % (slice_deployment.slice.creator, slice_deployment.deployment.name))
-	    roles = []
+	    roles = ['admin']
+	    deployment_user = 'Unknown user'
     	else:
-	    deployment_user = deployment_users[0]
+	    deployment_user = deployment_users[0].user.email
 	    roles = ['admin']
 	    
 	max_instances=int(slice_deployment.slice.max_slivers)
@@ -65,10 +66,11 @@
 		         'tenant': slice_deployment.slice.name,
 		         'tenant_description': slice_deployment.slice.description,
 			 'roles':roles,
-			 'name':deployment_user.user.email,
+			 'name':deployment_user,
+			 'ansible_tag':'%s@%s'%(slice_deployment.slice.name,slice_deployment.deployment.name),
 			 'max_instances':max_instances}
 
-	res = run_template('sync_slice_deployments.yaml', tenant_fields)
+	res = run_template('sync_slice_deployments.yaml', tenant_fields, path='slice_deployments')
 	expected_num = len(roles)+1
 	if (len(res)!=expected_num):
 	    raise Exception('Could not sync tenants for slice %s'%slice_deployment.slice.name)
diff --git a/planetstack/openstack_observer/steps/sync_slivers.py b/planetstack/openstack_observer/steps/sync_slivers.py
index 8237896..cf41446 100644
--- a/planetstack/openstack_observer/steps/sync_slivers.py
+++ b/planetstack/openstack_observer/steps/sync_slivers.py
@@ -14,7 +14,7 @@
 def escape(s):
     s = s.replace('\n',r'\n').replace('"',r'\"')
     return s
-    
+
 class SyncSlivers(OpenStackSyncStep):
     provides=[Sliver]
     requested_interval=0
@@ -27,7 +27,7 @@
         logger.info("sync'ing sliver:%s slice:%s deployment:%s " % (sliver, sliver.slice.name, sliver.node.deployment))
 
         metadata_update = {}
-	if (sliver.numberCores):
+        if (sliver.numberCores):
             metadata_update["cpu_cores"] = str(sliver.numberCores)
 
         for tag in sliver.slice.tags.all():
@@ -37,88 +37,102 @@
         # public keys
         slice_memberships = SlicePrivilege.objects.filter(slice=sliver.slice)
         pubkeys = set([sm.user.public_key for sm in slice_memberships if sm.user.public_key])
-    	if sliver.creator.public_key:
-	    pubkeys.add(sliver.creator.public_key)
+        if sliver.creator.public_key:
+            pubkeys.add(sliver.creator.public_key)
 
         if sliver.slice.creator.public_key:
-            pubkeys.add(sliver.slice.creator.public_key) 
+            pubkeys.add(sliver.slice.creator.public_key)
 
-	nics = []
-	networks = [ns.network for ns in NetworkSlice.objects.filter(slice=sliver.slice)]   
-	network_deployments = NetworkDeployments.objects.filter(network__in=networks, 
-								deployment=sliver.node.deployment)
+        nics = []
+        networks = [ns.network for ns in NetworkSlice.objects.filter(slice=sliver.slice)]
+        network_deployments = NetworkDeployments.objects.filter(network__in=networks,
+                                                                deployment=sliver.node.deployment)
 
-	for network_deployment in network_deployments:
-	    if network_deployment.network.template.visibility == 'private' and \
-	       network_deployment.network.template.translation == 'none' and network_deployment.net_id: 
-		nics.append(network_deployment.net_id)
+        for network_deployment in network_deployments:
+            if network_deployment.network.template.visibility == 'private' and \
+               network_deployment.network.template.translation == 'none' and network_deployment.net_id:
+                nics.append(network_deployment.net_id)
 
-	# now include network template
-	network_templates = [network.template.sharedNetworkName for network in networks \
-			     if network.template.sharedNetworkName]
+        # now include network template
+        network_templates = [network.template.sharedNetworkName for network in networks \
+                             if network.template.sharedNetworkName]
 
         #driver = self.driver.client_driver(caller=sliver.creator, tenant=sliver.slice.name, deployment=sliver.deploymentNetwork)
         driver = self.driver.admin_driver(tenant='admin', deployment=sliver.deploymentNetwork)
-	nets = driver.shell.quantum.list_networks()['networks']
-	for net in nets:
-	    if net['name'] in network_templates: 
-		nics.append(net['id']) 
+        nets = driver.shell.quantum.list_networks()['networks']
+        for net in nets:
+            if net['name'] in network_templates:
+                nics.append(net['id'])
 
-	if (not nics):
-	    for net in nets:
-	        if net['name']=='public':
-	    	    nics.append(net['id'])
+        if (not nics):
+            for net in nets:
+                if net['name']=='public':
+                    nics.append(net['id'])
 
-	# look up image id
-	deployment_driver = self.driver.admin_driver(deployment=sliver.deploymentNetwork.name)
-	image_id = None
-	images = deployment_driver.shell.glanceclient.images.list()
-	for image in images:
-	    if image.name == sliver.image.name or not image_id:
-		image_id = image.id
-		
-	# look up key name at the deployment
-	# create/fetch keypair
-	keyname = None
-	keyname = sliver.creator.email.lower().replace('@', 'AT').replace('.', '') +\
-		  sliver.slice.name
-	key_fields =  {'name': keyname,
-		       'public_key': sliver.creator.public_key}
-	    
+        # look up image id
+        deployment_driver = self.driver.admin_driver(deployment=sliver.deploymentNetwork.name)
+        image_id = None
+        images = deployment_driver.shell.glanceclient.images.list()
+        for image in images:
+            if image.name == sliver.image.name or not image_id:
+                image_id = image.id
 
-	userData = self.get_userdata(sliver)
-	if sliver.userData:
-	    userData = sliver.userData
-	    
-	sliver_name = '@'.join([sliver.slice.name,sliver.node.name])
-	tenant_fields = {'endpoint':sliver.node.deployment.auth_url,
-		     'admin_user': sliver.node.deployment.admin_user,
-		     'admin_password': sliver.node.deployment.admin_password,
-		     'admin_tenant': 'admin',
-		     'tenant': sliver.slice.name,
-		     'tenant_description': sliver.slice.description,
-		     'name':sliver_name,
-		     'image_id':image_id,
-		     'key_name':keyname,
-		     'flavor_id':1,
-		     'nics':nics,
-		     'meta':metadata_update,
-		     'key':key_fields,
-		     'user_data':r'%s'%escape(userData)}
+        # look up key name at the deployment
+        # create/fetch keypair
+        keyname = None
+        keyname = sliver.creator.email.lower().replace('@', 'AT').replace('.', '') +\
+                  sliver.slice.name
+        key_fields =  {'name': keyname,
+                       'public_key': sliver.creator.public_key}
 
-	res = run_template('sync_slivers.yaml', tenant_fields)
-	if (len(res)!=2):
-	    raise Exception('Could not sync sliver %s'%sliver.slice.name)
-	else:
-	    sliver_id = res[1]['id'] # 0 is for the key
+
+        userData = self.get_userdata(sliver)
+        if sliver.userData:
+            userData = sliver.userData
+
+        try:
+            legacy = Config().observer_legacy
+        except:
+            legacy = False
+
+        if (legacy):
+            host_filter = sliver.node.name.split('.',1)[0]
+        else:
+            host_filter = sliver.node.name
+
+        availability_zone_filter = 'nova:%s'%host_filter
+        sliver_name = '@'.join([sliver.slice.name,sliver.node.name])
+        tenant_fields = {'endpoint':sliver.node.deployment.auth_url,
+                     'admin_user': sliver.node.deployment.admin_user,
+                     'admin_password': sliver.node.deployment.admin_password,
+                     'admin_tenant': 'admin',
+                     'tenant': sliver.slice.name,
+                     'availability_zone': availability_zone_filter,
+                     'tenant_description': sliver.slice.description,
+                     'name':sliver_name,
+                     'ansible_tag':sliver_name,
+                     'image_id':image_id,
+                     'key_name':keyname,
+                     'flavor_id':3,
+                     'nics':nics,
+                     'meta':metadata_update,
+                     'key':key_fields,
+                     'user_data':r'%s'%escape(userData)}
+
+        res = run_template('sync_slivers.yaml', tenant_fields, path='slivers')
+        if (len(res)!=2):
+            raise Exception('Could not sync sliver %s'%sliver.slice.name)
+        else:
+            sliver_id = res[1]['id'] # 0 is for the key
 
             sliver.instance_id = sliver_id
             sliver.instance_name = sliver_name
-            sliver.save()    
+            sliver.save()
 
     def delete_record(self, sliver):
-        if sliver.instance_id:
-            driver = self.driver.client_driver(caller=sliver.creator, 
-                                               tenant=sliver.slice.name,
-                                               deployment=sliver.deploymentNetwork.name)
-            driver.destroy_instance(sliver.instance_id)
+        sliver_name = '@'.join([sliver.slice.name,sliver.node.name])
+        tenant_fields = {'name':sliver_name,
+                         'ansible_tag':sliver_name
+                        }
+        res = run_template('delete_slivers.yaml', tenant_fields, path='slivers')
+
diff --git a/planetstack/openstack_observer/steps/sync_slivers.yaml b/planetstack/openstack_observer/steps/sync_slivers.yaml
index 5f45d5c..6085434 100644
--- a/planetstack/openstack_observer/steps/sync_slivers.yaml
+++ b/planetstack/openstack_observer/steps/sync_slivers.yaml
@@ -3,34 +3,35 @@
   connection: local
   tasks:
   - nova_keypair:
-       state: present
-       auth_url: {{ endpoint }}
-       login_username: {{ admin_user }}
-       login_password: {{ admin_password }}
-       login_tenant_name: {{ admin_tenant }}
-       name: {{ key_name }}
-       public_key: "{{ key.public_key}}"
-       
-  - nova_compute:
-       state: present
-       auth_url: {{ endpoint }}
-       login_username: {{ admin_user }}
-       login_password: {{ admin_password }}
-       login_tenant_name: {{ admin_tenant }}
-       name: {{ name }}
-       image_id: {{ image_id }}
-       key_name: {{ key_name }}
-       wait_for: 200
-       flavor_id: {{ flavor_id }}
-       user_data: "{{ user_data }}"
-       nics:
-       {% for net in nics %}  
-         - net-id: {{ net }}
-       {% endfor %}
+      state: present
+      auth_url: {{ endpoint }}
+      login_username: {{ admin_user }}
+      login_password: {{ admin_password }}
+      login_tenant_name: {{ admin_tenant }}
+      name: {{ key_name }}
+      public_key: "{{ key.public_key}}"
 
-       {% if meta %}
-       meta:
-       {% for k,v in meta.items() %}  
-         {{ k }} : "{{ v }}"
-       {% endfor %}
-       {% endif %}
+  - nova_compute:
+      state: present
+      auth_url: {{ endpoint }}
+      login_username: {{ admin_user }}
+      login_password: {{ admin_password }}
+      login_tenant_name: {{ admin_tenant }}
+      availability_zone: {{ availability_zone }}
+      name: {{ name }}
+      image_id: {{ image_id }}
+      key_name: {{ key_name }}
+      wait_for: 200
+      flavor_id: {{ flavor_id }}
+      user_data: "{{ user_data }}"
+      nics:
+      {% for net in nics %}
+          - net-id: {{ net }}
+      {% endfor %}
+
+      {% if meta %}
+      meta:
+      {% for k,v in meta.items() %}
+          {{ k }} : "{{ v }}"
+      {% endfor %}
+      {% endif %}
diff --git a/planetstack/openstack_observer/steps/sync_user_deployments.py b/planetstack/openstack_observer/steps/sync_user_deployments.py
index 2e8256f..821e67e 100644
--- a/planetstack/openstack_observer/steps/sync_user_deployments.py
+++ b/planetstack/openstack_observer/steps/sync_user_deployments.py
@@ -57,6 +57,7 @@
 
         user_fields = {'endpoint':user_deployment.deployment.auth_url,
 		       'name': user_deployment.user.email,
+		       'ansible_tag': '%s@%s'%(user_deployment.user.email,user_deployment.deployment.name),
                        'email': user_deployment.user.email,
                        'password': hashlib.md5(user_deployment.user.password).hexdigest()[:6],
                        'admin_user': user_deployment.deployment.admin_user,
@@ -66,7 +67,7 @@
 		       'tenant':tenant_name}    
 	
 	rendered = template.render(user_fields)
-	res = run_template('sync_user_deployments.yaml', user_fields)
+	res = run_template('sync_user_deployments.yaml', user_fields, 'user_deployments')
 
 	# results is an array in which each element corresponds to an 
 	# "ok" string received per operation. If we get as many oks as
