bug fixes and improvements
diff --git a/planetstack/observer/steps/sync_slice_deployments.py b/planetstack/observer/steps/sync_slice_deployments.py
index b02466d..9751a08 100644
--- a/planetstack/observer/steps/sync_slice_deployments.py
+++ b/planetstack/observer/steps/sync_slice_deployments.py
@@ -69,14 +69,27 @@
             if not deployment_users:
                 logger.info("slice createor %s has not accout at deployment %s" % (slice_deployment.slice.creator, slice_deployment.deployment.name))
             else:
+                deployment_user = deployment_users[0]
                 # lookup user id at this deployment
                 kuser= driver.shell.keystone.users.find(email=slice_deployment.slice.creator.email)
-                driver.add_user_role(kuser.id, tenant.id, 'admin')
 
+                # add required roles at the slice's tenant 
+                driver.add_user_role(kuser.id, tenant.id, 'admin')
+                    
                 # refresh credentials using this tenant
-                client_driver = self.driver.client_driver(tenant=tenant.name, 
+                client_driver = self.driver.client_driver(caller=deployment_user.user,
+                                                          tenant=tenant.name, 
                                                           deployment=slice_deployment.deployment.name)
 
+                # create a public key for the slice creator
+                if deployment_user.user.public_key:
+                    keyname = deployment_user.user.email.lower().replace('@', 'AT').replace('.', '') +\
+                              slice_deployment.slice.name
+                    slice_deployment.keyname = keyname 
+                    key_fields =  {'name': keyname,
+                                   'public_key': deployment_user.user.public_key} 
+                    client_driver.create_keypair(**key_fields)
+
                 # create network
                 network = client_driver.create_network(slice_deployment.slice.name)
                 slice_deployment.network_id = network['id']