[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r28188 - gnunet-planetlab/gplmt/gplmt
From: |
gnunet |
Subject: |
[GNUnet-SVN] r28188 - gnunet-planetlab/gplmt/gplmt |
Date: |
Fri, 19 Jul 2013 11:21:49 +0200 |
Author: wachs
Date: 2013-07-19 11:21:49 +0200 (Fri, 19 Jul 2013)
New Revision: 28188
Modified:
gnunet-planetlab/gplmt/gplmt/Worker.py
Log:
planetlab specific connect function
Modified: gnunet-planetlab/gplmt/gplmt/Worker.py
===================================================================
--- gnunet-planetlab/gplmt/gplmt/Worker.py 2013-07-19 09:19:48 UTC (rev
28187)
+++ gnunet-planetlab/gplmt/gplmt/Worker.py 2013-07-19 09:21:49 UTC (rev
28188)
@@ -256,20 +256,20 @@
g_logger.log (self.node.hostname + " : Trying to connect to '"
+Util.print_ssh_connection (self.node) + "'")
if self.node.username is not None: #credentials are supplied in
node file
if (self.node.password is not None):
- g_logger.log ( "Using node information " +
self.node.username + " " +self.node.password)
+ g_logger.log (self.node.hostname + " : Using node
information username '" + self.node.username + " and password '"
+self.node.password +"'")
self.ssh.connect (self.node.hostname,
port=self.node.port or 22,
username=self.node.username,
password=self.node.password,
timeout=10)
else:
- g_logger.log ( "Using node information " +
self.node.username)
+ g_logger.log (self.node.hostname + " : Using node
information ;" + self.node.username +"'")
self.ssh.connect (self.node.hostname,
port=self.node.port or 22,
username=self.node.username,
timeout=10)
elif ("" != g_configuration.ssh_username):
- g_logger.log ( "Using node information " +
g_configuration.ssh_username + " " + g_configuration.ssh_password)
+ g_logger.log (self.node.hostname + " : Using node information
username '" + g_configuration.ssh_username + "' and password '" +
g_configuration.ssh_password +"'")
self.ssh.connect (self.node.hostname,
port=self.node.port or 22,
username=g_configuration.ssh_username,
@@ -277,14 +277,14 @@
timeout=10,
key_filename=keyfile)
elif ("" != g_configuration.ssh_password):
- g_logger.log ( "Using node information " +
g_configuration.ssh_password)
+ g_logger.log (self.node.hostname + " : Using node information
password '" + g_configuration.ssh_password + "'")
self.ssh.connect (self.node.hostname,
port=self.node.port or 22,
password=g_configuration.self.ssh_password,
timeout=10,
key_filename=keyfile)
else:
- g_logger.log ("Using no information")
+ g_logger.log (self.node.hostname + " : Using no information")
self.ssh.connect (self.node.hostname,
port=self.node.port or 22,
timeout=10,
@@ -493,17 +493,44 @@
class PlanetLabWorker (RemoteSSHWorker):
def connect (self):
- raise NotImplementedError (inspect.stack()[0][3])
- def disconnect (self):
- raise NotImplementedError (inspect.stack()[0][3])
- def exec_run_per_host (self, task):
- raise NotImplementedError (inspect.stack()[0][3])
- def exec_run (self,task):
- raise NotImplementedError (inspect.stack()[0][3])
- def exec_put (self, task):
- raise NotImplementedError (inspect.stack()[0][3])
- def exec_get (self, task):
- raise NotImplementedError (inspect.stack()[0][3])
+ self.ssh = None
+ if (interrupt):
+ return TaskExecutionResult(Tasks.Taskresult.user_interrupt,
"interrupted by user", "")
+ try:
+ self.ssh = paramiko.SSHClient()
+
+ if (g_configuration.ssh_use_known_hosts):
+ g_logger.log (self.node.hostname + " : Loading known hosts")
+ self.ssh.load_system_host_keys ()
+ # Automatically add new hostkeys
+ if (g_configuration.ssh_add_unkown_hostkeys == True):
+ self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+ # check for private key existance
+ keyfile = None
+ if (g_configuration.ssh_keyfile != None):
+ if (os.path.exists (g_configuration.ssh_keyfile)):
+ g_logger.log (self.node.hostname + " : Found " +
g_configuration.ssh_keyfile)
+ keyfile = g_configuration.ssh_keyfile
+ else:
+ g_logger.log (self.node.hostname + " : Not found " +
g_configuration.ssh_keyfile)
+ g_logger.log (self.node.hostname + " : Trying to connect to '"
+Util.print_ssh_connection (self.node) + "'")
+ g_logger.log (self.node.hostname + " : Using node information
username '" + g_configuration.pl_slicename + "'")
+ self.ssh.connect (self.node.hostname,
+ port=self.node.port or 22,
+ username=g_configuration.pl_slicename,
+ timeout=10,
+ key_filename=keyfile)
+ self.transport = self.ssh.get_transport()
+ except (IOError,
+ paramiko.SSHException,
+ paramiko.BadHostKeyException,
+ paramiko.AuthenticationException,
+ socket.error) as e:
+ g_logger.log (self.node.hostname + " : Error while trying to
connect: " + str(e))
+ return TaskExecutionResult (Tasks.Taskresult.fail, str(e), "")
+ g_logger.log (self.node.hostname + " : Connected!")
+ return TaskExecutionResult (Tasks.Taskresult.success, "", "")
+
class NodeWorker ():
def __init__(self, target, node, tasks):
@@ -524,7 +551,7 @@
elif (self.target == Targets.Target (Targets.Target.remote_ssh)):
self.thread = RemoteSSHWorker (1, self.node, self.tasks);
elif (self.target == Targets.Target (Targets.Target.planetlab)):
- self.thread = RemoteSSHWorker (1, self.node, self.tasks);
+ self.thread = PlanetLabWorker (1, self.node, self.tasks);
return
def start (self):
g_logger.log ("Starting execution for node " + self.node.hostname)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r28188 - gnunet-planetlab/gplmt/gplmt,
gnunet <=