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.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
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 'attribute_type_id': SliceAttributeType.fields['attribute_type_id'],
20 'name': SliceAttributeType.fields['name'],
21 'description': SliceAttributeType.fields['description'],
22 'min_role_id': SliceAttributeType.fields['min_role_id'],
23 'value': Parameter(str, "Slice attribute value"),
26 class SliceAttributes(Table):
28 Representation of row(s) from the slice_attribute table in the
32 def __init__(self, api, slice_attribute_filter = None, columns = None):
33 Table.__init__(self, api, SliceAttribute, columns)
35 sql = "SELECT %s FROM view_slice_attributes WHERE True" % \
36 ", ".join(self.columns)
38 if slice_attribute_filter is not None:
39 if isinstance(slice_attribute_filter, (list, tuple, set)):
40 slice_attribute_filter = Filter(SliceAttribute.fields, {'slice_attribute_id': slice_attribute_filter})
41 elif isinstance(slice_attribute_filter, dict):
42 slice_attribute_filter = Filter(SliceAttribute.fields, slice_attribute_filter)
43 sql += " AND (%s)" % slice_attribute_filter.sql(api)