-# $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):
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"),
}
", ".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)):
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)