X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FTagTypes.py;h=f5524356b91c48fbbd9b639ee1fe9c37e3a63a08;hb=HEAD;hp=d4d4cd723a45e4618a59b92308dd893d89fe01df;hpb=00b458601d8f318b617b43d11cb4fdb93e89967c;p=plcapi.git diff --git a/PLC/TagTypes.py b/PLC/TagTypes.py index d4d4cd7..f552435 100644 --- a/PLC/TagTypes.py +++ b/PLC/TagTypes.py @@ -1,6 +1,3 @@ -# $Id$ -# $Id$ -# $URL$ # # Thierry Parmentelat - INRIA # @@ -22,13 +19,14 @@ class TagType (Row): table_name = 'tag_types' primary_key = 'tag_type_id' - join_tables = ['node_tag', 'interface_tag', 'slice_tag', 'site_tag', 'person_tag' ] + join_tables = ['tag_type_role', 'node_tag', 'interface_tag', 'slice_tag', 'site_tag', 'person_tag' ] fields = { 'tag_type_id': Parameter(int, "Node tag type identifier"), 'tagname': Parameter(str, "Node tag type name", max = 100), 'description': Parameter(str, "Node tag type description", max = 254), 'category' : Parameter (str, "Node tag category", max=64, optional=True), - 'min_role_id': Parameter(int, "Minimum (least powerful) role that can set or change this attribute"), + 'role_ids': Parameter([int], "List of role identifiers"), + 'roles': Parameter([str], "List of roles"), } def validate_name(self, name): @@ -43,12 +41,9 @@ class TagType (Row): return name - def validate_min_role_id(self, role_id): - roles = [row['role_id'] for row in Roles(self.api)] - if role_id not in roles: - raise PLCInvalidArgument, "Invalid role" + add_role = Row.add_object(Role, 'tag_type_role') + remove_role = Row.remove_object(Role, 'tag_type_role') - return role_id class TagTypes(Table): """ @@ -59,7 +54,7 @@ class TagTypes(Table): def __init__(self, api, tag_type_filter = None, columns = None): Table.__init__(self, api, TagType, columns) - sql = "SELECT %s FROM tag_types WHERE True" % \ + sql = "SELECT %s FROM view_tag_types WHERE True" % \ ", ".join(self.columns) if tag_type_filter is not None: