convert GetNodeNetworks to GetInterfaces and nodenetwork_ids to interface_ids
[monitor.git] / getsshkeys.py
index 0819abe..7b74759 100755 (executable)
@@ -5,17 +5,30 @@ import sys
 import string
 import time
 import xml, xmlrpclib
+try:
+       from monitor import config
+       auth = {'Username'   : config.API_AUTH_USER,
+               'AuthMethod' : "password",
+                       'AuthString' : config.API_AUTH_PASSWORD}
+except:
+       import traceback
+       print traceback.print_exc()
+       auth = {'AuthMethod' : "anonymous"}
 
 args = {}
 args['known_hosts'] =  os.environ['HOME'] + os.sep + ".ssh" + os.sep + "known_hosts"
-args['XMLRPC_SERVER'] = 'https://www.planet-lab.org/PLCAPI/'
+try:
+       from monitor import config
+       args['XMLRPC_SERVER'] = config.API_SERVER
+except:
+       args['XMLRPC_SERVER'] = 'https://boot.planet-lab.org/PLCAPI/'
+       print "Using default API server %s" %  args['XMLRPC_SERVER']
 
 class SSHKnownHosts:
        def __init__(self, args = args):
                self.args = args
                self.read_knownhosts()
-               self.auth = {}
-               self.auth['AuthMethod'] = "anonymous"
+               self.auth = auth
                self.api = xmlrpclib.Server(args['XMLRPC_SERVER'], verbose=False, allow_none=True)
                self.nodenetworks = {}
 
@@ -122,15 +135,15 @@ class SSHKnownHosts:
                if type(host) == type(""): host = [host]
 
                # get the node(s) info
-               nodes = self.api.GetNodes(self.auth,host,["hostname","ssh_rsa_key","nodenetwork_ids"])
+               nodes = self.api.GetNodes(self.auth,host,["hostname","ssh_rsa_key","interface_ids"])
 
                # for each node's node network, update the self.nodenetworks cache
                nodenetworks = []
                for node in nodes:
-                       for net in node["nodenetwork_ids"]:
+                       for net in node["interface_ids"]:
                                nodenetworks.append(net)
 
-               plcnodenetworks = self.api.GetNodeNetworks(self.auth,nodenetworks,["nodenetwork_id","ip"])
+               plcnodenetworks = self.api.GetInterfaces(self.auth,nodenetworks,["nodenetwork_id","ip"])
                for n in plcnodenetworks:
                        self.nodenetworks[n["nodenetwork_id"]]=n
                return nodes
@@ -139,10 +152,10 @@ class SSHKnownHosts:
                host = node['hostname']
                key = node['ssh_rsa_key']
 
-               nodenetworks = node['nodenetwork_ids']
+               nodenetworks = node['interface_ids']
                if len(nodenetworks)==0: return (host, None, None, None)
 
-               # the [0] subscript to node['nodenetwork_ids'] means
+               # the [0] subscript to node['interface_ids'] means
                # that this function wont work with multihomed nodes
                l_nw = self.nodenetworks.get(nodenetworks[0],None)
                if l_nw is None: return (host, None, None, None)