1 from PLC.Faults import *
2 from PLC.Parameter import Parameter
3 from PLC.Filter import Filter
4 from PLC.Table import Row, Table
5 from PLC.TagTypes import TagType, TagTypes
7 class SliceAttribute(Row):
9 Representation of a row in the slice_attribute table. To use,
10 instantiate with a dict of values.
13 table_name = 'slice_attribute'
14 primary_key = 'slice_attribute_id'
16 'slice_attribute_id': Parameter(int, "Slice attribute identifier"),
17 'slice_id': Parameter(int, "Slice identifier"),
18 'node_id': Parameter(int, "Node identifier, if a sliver attribute"),
19 'nodegroup_id': Parameter(int, "Nodegroup identifier, if a sliver attribute"),
20 'tag_type_id': TagType.fields['tag_type_id'],
21 'tagname': TagType.fields['tagname'],
22 'description': TagType.fields['description'],
23 'category': TagType.fields['category'],
24 'min_role_id': TagType.fields['min_role_id'],
25 'value': Parameter(str, "Slice attribute value"),
28 class SliceAttributes(Table):
30 Representation of row(s) from the slice_attribute table in the
34 def __init__(self, api, slice_attribute_filter = None, columns = None):
35 Table.__init__(self, api, SliceAttribute, columns)
37 sql = "SELECT %s FROM view_slice_attributes WHERE True" % \
38 ", ".join(self.columns)
40 if slice_attribute_filter is not None:
41 if isinstance(slice_attribute_filter, (list, tuple, set)):
42 slice_attribute_filter = Filter(SliceAttribute.fields, {'slice_attribute_id': slice_attribute_filter})
43 elif isinstance(slice_attribute_filter, dict):
44 slice_attribute_filter = Filter(SliceAttribute.fields, slice_attribute_filter)
45 sql += " AND (%s) %s" % slice_attribute_filter.sql(api)