accepts = [
Auth(),
- Role.fields['role_id'],
Role.fields['name']
]
returns = Parameter(int, '1 if successful')
- def call(self, auth, role_id, name):
- role = Role(self.api)
- role['role_id'] = role_id
- role['name'] = name
- role.sync(insert = True)
- self.event_objects = {'Role': [role['role_id']]}
-
+ def call(self, auth, name):
+ self.api.client_shell.keystone.roles.create(name=name)
return 1
from PLC.Faults import *
from PLC.Method import Method
from PLC.Parameter import Parameter, Mixed
-from PLC.Roles import Role
+from PLC.Roles import Role, Roles
from PLC.NovaObject import NovaObject
from PLC.Auth import Auth
returns = [Role.fields]
def call(self, auth):
- roles = self.api.client_shell.keystone.roles.findall()
- result = [NovaObject.object_to_dict(role, Role.fields) for role in roles]
- return result
+ return Roles(self.api)
-
+from types import StringTypes
+from PLC.Faults import *
from PLC.Parameter import Parameter
+from PLC.NovaObject import NovaObject
class Role:
"""
"""
fields = {
- 'role_id': Parameter(str, "Role identifier"),
+ 'id': Parameter(str, "Role identifier"),
'name': Parameter(str, "Role", max = 100),
}
class Roles(list):
- pass
+
+ def __init__(self, api, role_filter={}):
+ self.api = api
+ if not role_filter:
+ roles = self.api.client_shell.keystone.roles.findall()
+ elif isinstance(role_filter, StringTypes):
+ [roles] = self.api.client_shell.keystone.roles.find(id=role_filter)
+ elif isinstance(role_filter, (list, tuple, set)):
+ roles = self.api.client_shell.keystone.roles.findall()
+ roles = [role for role in roles if role.id in rile_filter]
+ else:
+ raise PLCInvalidArgument, "Wrong role filter %r"%role_filter
+
+ for role in roles:
+ self.append(NovaObject.object_to_dict(role, Role.fields))