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