from PLC.Parameter import Parameter, Mixed
from PLC.Nodes import Node, Nodes
from PLC.PCUs import PCU, PCUs
+from PLC.Sites import Site, Sites
from PLC.Auth import Auth
class DeleteNodeFromPCU(Method):
accepts = [
Auth(),
- Mixed(Node.fields['node_id'],
+ Mixed(Node.fields['node_id'],
Node.fields['hostname']),
PCU.fields['pcu_id']
]
returns = Parameter(int, '1 if successful')
-
def call(self, auth, node_id_or_hostname, pcu_id):
- # Get node
+ # Get node
nodes = Nodes(self.api, [node_id_or_hostname])
if not nodes:
- raise PLCInvalidArgument, "No such node"
+ raise PLCInvalidArgument("No such node")
node = nodes[0]
# Get PCU
pcus = PCUs(self.api, [pcu_id])
if not pcus:
- raise PLCInvalidArgument, "No such PCU"
+ raise PLCInvalidArgument("No such PCU")
pcu = pcus[0]
ok = True
break
if not ok:
- raise PLCPermissionDenied, "Not allowed to update that PCU"
-
- # Removed node from PCU
+ raise PLCPermissionDenied("Not allowed to update that PCU")
+
+ # Removed node from PCU
+
if node['node_id'] in pcu['node_ids']:
pcu.remove_node(node)
- self.object_ids = [pcu['pcu_id']]
-
- return 1
+ # Logging variables
+ self.event_objects = {'PCU': [pcu['pcu_id']],
+ 'Node': [node['node_id']]}
+ self.message = 'Node %d removed from PCU %d' % \
+ (node['node_id'], pcu['pcu_id'])
+
+ return 1