diff --git a/common/plugins/yang/rw-cloud.role.xml b/common/plugins/yang/rw-cloud.role.xml
index 6fb2486..c4e8bac 100644
--- a/common/plugins/yang/rw-cloud.role.xml
+++ b/common/plugins/yang/rw-cloud.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:rw-cloud-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
       <path>/rw-cloud:update-cloud-status/rw-cloud:project-name</path>
     </key-set>
   </key-definition>
@@ -18,7 +19,7 @@
   </role-definition>
 
   <role-definition>
-    <role>rw-project-mano:lcm-admin</role>
+    <role>rw-project-mano:account-admin</role>
     <keys-role>rw-project-mano:rw-cloud-role</keys-role>
     <authorize>
       <permissions>create read update delete execute</permissions>
diff --git a/common/plugins/yang/rw-config-agent.role.xml b/common/plugins/yang/rw-config-agent.role.xml
index 2951e5a..c0071ca 100644
--- a/common/plugins/yang/rw-config-agent.role.xml
+++ b/common/plugins/yang/rw-config-agent.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:rw-config-agent-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
       <path>/rw-config-agent:update-cfg-agent-status/rw-config-agent:project-name</path>
     </key-set>
   </key-definition>
@@ -18,7 +19,7 @@
   </role-definition>
 
   <role-definition>
-    <role>rw-project-mano:lcm-admin</role>
+    <role>rw-project-mano:account-admin</role>
     <keys-role>rw-project-mano:rw-config-agent-role</keys-role>
     <authorize>
       <permissions>create read update delete execute</permissions>
diff --git a/common/plugins/yang/rw-sdn.role.xml b/common/plugins/yang/rw-sdn.role.xml
index 62944f8..8e962e0 100644
--- a/common/plugins/yang/rw-sdn.role.xml
+++ b/common/plugins/yang/rw-sdn.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:rw-sdn-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
       <path>/rw-sdn:update-sdn-status/rw-sdn:project-name</path>
     </key-set>
   </key-definition>
diff --git a/models/plugins/yang/nsr.role.xml b/models/plugins/yang/nsr.role.xml
index 0548c7b..ecf963b 100644
--- a/models/plugins/yang/nsr.role.xml
+++ b/models/plugins/yang/nsr.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:nsr-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
       <path>/nsr:exec-scale-out/nsr:project-name</path>
       <path>/nsr:exec-scale-in/nsr:project-name</path>
       <path>/nsr:exec-ns-service-primitive/nsr:project-name</path>
diff --git a/models/plugins/yang/project-nsd.role.xml b/models/plugins/yang/project-nsd.role.xml
index afacae3..b059934 100644
--- a/models/plugins/yang/project-nsd.role.xml
+++ b/models/plugins/yang/project-nsd.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:project-nsd-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
     </key-set>
   </key-definition>
 
diff --git a/models/plugins/yang/project-vnfd.role.xml b/models/plugins/yang/project-vnfd.role.xml
index a32c92f..8c8ee08 100644
--- a/models/plugins/yang/project-vnfd.role.xml
+++ b/models/plugins/yang/project-vnfd.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:project-vnfd-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
     </key-set>
   </key-definition>
 
diff --git a/models/plugins/yang/rw-vnfr.role.xml b/models/plugins/yang/rw-vnfr.role.xml
index 9178690..08f2202 100644
--- a/models/plugins/yang/rw-vnfr.role.xml
+++ b/models/plugins/yang/rw-vnfr.role.xml
@@ -4,7 +4,8 @@
     <role>rw-project-mano:rw-vnfr-role</role>
     <key-set>
       <name>project-name</name>
-    </key-set>
+      <path>/rw-project:project/rw-project:name</path>
+   </key-set>
   </key-definition>
 
   <role-definition>
diff --git a/models/plugins/yang/vlr.role.xml b/models/plugins/yang/vlr.role.xml
index 90350dc..cb6f9ee 100644
--- a/models/plugins/yang/vlr.role.xml
+++ b/models/plugins/yang/vlr.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:vlr-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
     </key-set>
   </key-definition>
 
diff --git a/rwlaunchpad/plugins/yang/rw-launchpad.role.xml b/rwlaunchpad/plugins/yang/rw-launchpad.role.xml
index 0efb351..110a713 100644
--- a/rwlaunchpad/plugins/yang/rw-launchpad.role.xml
+++ b/rwlaunchpad/plugins/yang/rw-launchpad.role.xml
@@ -4,6 +4,7 @@
     <role>rw-project-mano:rw-launchpad-role</role>
     <key-set>
       <name>project-name</name>
+      <path>/rw-project:project/rw-project:name</path>
     </key-set>
   </key-definition>
 
diff --git a/rwprojectmano/plugins/rwprojectmano/rift/tasklets/rwprojectmano/rolesmano.py b/rwprojectmano/plugins/rwprojectmano/rift/tasklets/rwprojectmano/rolesmano.py
index 2988a20..d6d12c4 100644
--- a/rwprojectmano/plugins/rwprojectmano/rift/tasklets/rwprojectmano/rolesmano.py
+++ b/rwprojectmano/plugins/rwprojectmano/rift/tasklets/rwprojectmano/rolesmano.py
@@ -35,7 +35,6 @@
 
 import rift.tasklets
 from rift.tasklets.rwproject.project import (
-    StateMachine,
     User,
     UserState,
     RoleKeys,
@@ -87,7 +86,7 @@
 
     def update_user(self, cfg):
         user = User().pb(cfg)
-        self._log.debug("Update user {} for project {}".
+        self._log.error("Update user {} for project {}".
                         format(user.key, self.project_name))
         cfg_roles = {}
         for cfg_role in cfg.mano_role:
@@ -260,6 +259,18 @@
 
         self.pub.deregister()
 
+class RoleState(Enum):
+    """Role states"""
+    NONE = 0
+    NEW = 1
+    INIT_DONE = 2
+    ACTIVE = 3
+    UPDATE = 4
+    UPDATE_DONE = 5
+    ERROR = 6
+    DELETE = 7
+    DELETE_DONE = 8
+
 
 class RoleConfigPublisher(rift.tasklets.DtsConfigPublisher):
 
@@ -285,6 +296,21 @@
             "[rw-rbac-internal:user-name='{}']".format(user_key[1]) + \
             "[rw-rbac-internal:user-domain='{}']".format(user_key[0])
 
+    @classmethod
+    def yang_state_str(cls, state):
+        """ Return the state as a yang enum string """
+        state_to_str_map = {RoleState.NONE: "none",
+                            RoleState.NEW: "new",
+                            RoleState.INIT_DONE: "init-done",
+                            RoleState.ACTIVE: "active",
+                            RoleState.UPDATE: "update",
+                            RoleState.UPDATE_DONE: "update-done",
+                            RoleState.ERROR: "error",
+                            RoleState.DELETE: "delete",
+                            RoleState.DELETE_DONE: "delete_done",
+                            }
+        return state_to_str_map[state]
+
     def create_project_roles(self):
         for name in self.proj_roles:
             role = RoleKeys()
@@ -333,7 +359,7 @@
         pbUser = pbRole.create_user()
         pbUser.user_name = user.user_name
         pbUser.user_domain = user.user_domain
-        pbUser.state_machine.state = user.state.name
+        pbUser.state_machine.state = user.state
 
         pbRole.user.append(pbUser)
 
@@ -356,9 +382,9 @@
             update = False
 
         if update:
-            user.state = StateMachine.new
+            user.state = RoleConfigPublisher.yang_state_str(RoleState.UPDATE)
         else:
-            user.state = StateMachine.new
+            user.state = RoleConfigPublisher.yang_state_str(RoleState.NEW)
 
         xpath = self.role_xpath(role_key)
         self.log.debug("update role: {} user: {} ".format(role_key, user_key))
@@ -375,7 +401,7 @@
         except KeyError:
             return
 
-        user.state = StateMachine.delete
+        user.state = RoleConfigPublisher.yang_state_str(RoleState.DELETE)
         xpath = self.role_xpath(role_key)
         self.log.error("deleting role: {} user: {} ".format(role_key, user_key))
 
