X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FSliceTags.py;h=e5070fd50af8a0bd75ac8e09f1d12f617c8d81aa;hb=19d4a01ccf66af9e00914351b3eacd5fc880f988;hp=bde5df5bbee3afa4e8a432310fc23f48ca348157;hpb=4492a19a0528f29d64f0c2bc1bb42723fd2df032;p=plcapi.git diff --git a/PLC/SliceTags.py b/PLC/SliceTags.py index bde5df5..e5070fd 100644 --- a/PLC/SliceTags.py +++ b/PLC/SliceTags.py @@ -1,8 +1,14 @@ -# $Id# +# +# Thierry Parmentelat - INRIA +# from PLC.Faults import * from PLC.Parameter import Parameter from PLC.Filter import Filter from PLC.Table import Row, Table +# seems to cause import loops +#from PLC.Slices import Slice, Slices +from PLC.Nodes import Node, Nodes +from PLC.NodeGroups import NodeGroup, NodeGroups from PLC.TagTypes import TagType, TagTypes class SliceTag(Row): @@ -14,15 +20,15 @@ class SliceTag(Row): table_name = 'slice_tag' primary_key = 'slice_tag_id' fields = { - 'slice_tag_id': Parameter(int, "Slice attribute identifier"), + 'slice_tag_id': Parameter(int, "Slice tag identifier"), 'slice_id': Parameter(int, "Slice identifier"), - 'node_id': Parameter(int, "Node identifier, if a sliver attribute"), - 'nodegroup_id': Parameter(int, "Nodegroup identifier, if a sliver attribute"), + 'name': Parameter(str, "Slice name"), + 'node_id': Node.fields['node_id'], + 'nodegroup_id': NodeGroup.fields['nodegroup_id'], 'tag_type_id': TagType.fields['tag_type_id'], 'tagname': TagType.fields['tagname'], 'description': TagType.fields['description'], 'category': TagType.fields['category'], - 'min_role_id': TagType.fields['min_role_id'], 'value': Parameter(str, "Slice attribute value"), } @@ -39,10 +45,12 @@ class SliceTags(Table): ", ".join(self.columns) if slice_tag_filter is not None: - if isinstance(slice_tag_filter, (list, tuple, set)): + if isinstance(slice_tag_filter, (list, tuple, set, int, long)): slice_tag_filter = Filter(SliceTag.fields, {'slice_tag_id': slice_tag_filter}) elif isinstance(slice_tag_filter, dict): slice_tag_filter = Filter(SliceTag.fields, slice_tag_filter) + else: + raise PLCInvalidArgument, "Wrong slice tag filter %r"%slice_tag_filter sql += " AND (%s) %s" % slice_tag_filter.sql(api) self.selectall(sql)