Merge remote-tracking branch 'origin/pycurl' into planetlab-4_0-branch
[plcapi.git] / PLC / Methods / AdmGetAllNodeNetworks.py
index fc40ad6..c00bdec 100644 (file)
@@ -3,7 +3,7 @@ from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
 from PLC.Nodes import Node, Nodes
 from PLC.NodeNetworks import NodeNetwork, NodeNetworks
-from PLC.Auth import PasswordAuth
+from PLC.Auth import Auth
 from PLC.Methods.GetNodeNetworks import GetNodeNetworks
 
 class AdmGetAllNodeNetworks(GetNodeNetworks):
@@ -17,7 +17,7 @@ class AdmGetAllNodeNetworks(GetNodeNetworks):
     roles = ['admin', 'pi', 'user', 'tech']
 
     accepts = [
-        PasswordAuth(),
+        Auth(),
         Mixed(Node.fields['node_id'],
               Node.fields['hostname'])
         ]
@@ -25,22 +25,13 @@ class AdmGetAllNodeNetworks(GetNodeNetworks):
     returns = [NodeNetwork.fields]
 
     def call(self, auth, node_id_or_hostname):
-        # Authenticated function
-        assert self.caller is not None
-
         # Get node information
-        nodes = Nodes(self.api, [node_id_or_hostname]).values()
+        nodes = Nodes(self.api, [node_id_or_hostname])
        if not nodes:
             raise PLCInvalidArgument, "No such node"
        node = nodes[0]
 
-       # Get node networks for this node
-        if node['nodenetwork_ids']:
-            nodenetworks = NodeNetworks(self.api, node['nodenetwork_ids']).values()
-        else:
-            nodenetworks = []
+        if not node['nodenetwork_ids']:
+            return []
 
-        # Cast from NodeNetwork to real dict
-        nodenetworks = [dict(nodenetwork) for nodenetwork in nodenetworks]
-               
-       return nodenetworks
+        return GetNodeNetworks.call(self, auth, node['nodenetwork_ids'])