implement DeleteRole()
[plcapi.git] / PLC / Roles.py
1 from types import StringTypes
2 from PLC.Faults import *
3 from PLC.Parameter import Parameter
4 from PLC.NovaObject import NovaObject, NovaObjects
5
6 class Role:
7     """
8     Representation of a row in the roles table. To use,
9     instantiate with a dict of values.
10     """
11
12     fields = {
13         'id': Parameter(str, "Role identifier"),
14         'name': Parameter(str, "Role", max = 100),
15         }
16
17 class Roles(NovaObjects):
18     fields = Role.fields
19
20     def __init__(self, api, role_filter={}):
21         self.api  = api
22         if not role_filter:
23             roles = self.api.client_shell.keystone.roles.findall()
24         elif isinstance(role_filter, StringTypes):
25             roles = [self.api.client_shell.keystone.roles.find(id=role_filter)] 
26         elif isinstance(role_filter, (list, tuple, set)):
27             roles = self.api.client_shell.keystone.roles.findall()
28             roles = [role for role in roles if role.id in rile_filter]
29         else:
30             raise PLCInvalidArgument, "Wrong role filter %r"%role_filter
31
32         for role in roles:
33             #self.append(NovaObject.object_to_dict(role, Role.fields)) 
34             self.append(role) 
35