from PLC.Debug import profile
from PLC.Table import Row, Table
from PLC.SliceInstantiations import SliceInstantiation, SliceInstantiations
-from PLC.Nodes import Node, Nodes
+from PLC.Nodes import Node
from PLC.Persons import Person, Persons
class Slice(Row):
table_name = 'slices'
primary_key = 'slice_id'
- join_tables = ['slice_node', 'slice_person', 'slice_attribute', 'peer_slice']
+ join_tables = ['slice_node', 'slice_person', 'slice_attribute', 'peer_slice', 'node_slice_whitelist']
fields = {
'slice_id': Parameter(int, "Slice identifier"),
'site_id': Parameter(int, "Identifier of the site to which this slice belongs"),
add_node = Row.add_object(Node, 'slice_node')
remove_node = Row.remove_object(Node, 'slice_node')
+ add_to_node_whitelist = Row.add_object(Node, 'node_slice_whitelist')
+ delete_from_node_whitelist = Row.remove_object(Node, 'node_slice_whitelist')
+
def sync(self, commit = True):
"""
Add or update a slice.
elif isinstance(slice_filter, dict):
slice_filter = Filter(Slice.fields, slice_filter)
sql += " AND (%s)" % slice_filter.sql(api, "AND")
+ elif isinstance (slice_filter, StringTypes):
+ slice_filter = Filter(Slice.fields, {'name':[slice_filter]})
+ sql += " AND (%s)" % slice_filter.sql(api, "AND")
+ elif isinstance (slice_filter, int):
+ slice_filter = Filter(Slice.fields, {'slice_id':[slice_filter]})
+ sql += " AND (%s)" % slice_filter.sql(api, "AND")
+ else:
+ raise PLCInvalidArgument, "Wrong slice filter %r"%slice_filter
self.selectall(sql)