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"),
# 2. Begins with login_base (letters or numbers).
# 3. Then single underscore after login_base.
# 4. Then letters, numbers, or underscores.
- good_name = r'^[a-z0-9]+_[a-z0-9_]+$'
+ good_name = r'^[a-z0-9]+_[a-zA-Z0-9_]+$'
if not name or \
not re.match(good_name, name):
raise PLCInvalidArgument, "Invalid slice name"
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.