+ def validate_node_id(self, node_id):
+ nodes = PLC.Nodes.Nodes(self.api, [node_id])
+ if not nodes:
+ raise PLCInvalidArgument, "No such node"
+
+ return node_id
+
+ def validate_is_primary(self, is_primary):
+ """
+ Set this interface to be the primary one.
+ """
+
+ if is_primary:
+ nodes = Nodes(self.api, [self['node_id']])
+ if not nodes:
+ raise PLCInvalidArgument, "No such node"
+ node = nodes[0]
+
+ if node['nodenetwork_ids']:
+ conflicts = NodeNetworks(self.api, node['nodenetwork_ids'])
+ for nodenetwork_id, nodenetwork in conflicts.iteritems():
+ if ('nodenetwork_id' not in self or self['nodenetwork_id'] != nodenetwork_id) and \
+ nodenetwork['is_primary']:
+ raise PLCInvalidArgument, "Can only set one primary interface per node"
+
+ return is_primary
+