from types import StringTypes
from PLC.Faults import *
from PLC.Parameter import Parameter
-from PLC.NovaObject import NovaObject, NovaObjects
+from PLC.NovaTable import NovaObject, NovaTable
-class Role:
+class Role(NovaObject):
"""
Representation of a row in the roles table. To use,
instantiate with a dict of values.
'name': Parameter(str, "Role", max = 100),
}
-class Roles(NovaObjects):
- fields = Role.fields
+ def sync(self, insert=False, validate=True):
+ NovaObject.sync(self, insert, validate)
+ if insert == True or id not in self:
+ self.object = self.api.client_shell.keystone.roles.create(**self)
+
+class Roles(NovaTable):
def __init__(self, api, role_filter={}):
self.api = api
if not role_filter:
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]
+ roles = [role for role in roles if role.id in role_filter]
else:
raise PLCInvalidArgument, "Wrong role filter %r"%role_filter
#self.append(NovaObject.object_to_dict(role, Role.fields))
- self.extend(roles)
+ for role in roles:
+ role = Role(self.api, object=role)
+ self.append(role)
+
+