[Twisted-Python] How to tell when SSH command has finished in Conch?

Craig Rodrigues rodrigc at crodrigues.org
Wed Jan 9 11:19:43 MST 2013


Hi,

I have a very similar question to the one that Vye Wilson
recently asked, "Subject: What is The Correct Way to Close a Twisted Conch
SSH Connection?"

I am using Twisted Conch to write a program that
ssh's into multiple machines and executes a single command.

I am basically trying to do the equivalent of:

for host in host1 host2 host3
do
     ssh  user at host "cat /etc/hosts"
done


To start things off, I took
http://twistedmatrix.com/documents/current/conch/examples/sshsimpleclient.py
and started modifying it.  Here is the code which I have:

http://pastebin.com/RXhjUcrS

The problem is, I can't figure out how to tell when a command has
completed, so that I can call reactor.stop().

Not in the code example I posted above, I tried to use a DeferredList by
following the example code in this blog
post:

http://technicae.cogitat.io/2008/06/async-batching-with-twisted-walkthrough.html

but I ran into the same problem where I couldn't figure out how
to tell when my command over SSH had terminated.

As a kluge, I called reactor.callLater() with a timeout of
20 seconds, and then called reactor.stop().

Any ideas as to what I am doing wrong?
Where in the Conch framework can I tell when a command
over SSH has finished?

Thanks.

--
Craig Rodrigues
rodrigc at crodrigues.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20130109/cc6061ec/attachment.html>


More information about the Twisted-Python mailing list