Am 19.10.2014 um 22:44 schrieb exar...@twistedmatrix.com: > On 17 Oct, 08:50 am, axel....@chaos1.de wrote: >> >> Am 14.10.2014 um 17:07 schrieb Axel Rau <axel....@chaos1.de>: >>>> We might need more to go on. Do you have a complete, minimal example? >>>> (See http://sscce.org/) >>> The attached zip archive >> Did someone could spend the time to look at it? >> Is my goal utopian? > > I can't tell if this represents a bug in Twisted or not. After a quick look > through the code, I’m not really clear on why the program would ever exit (I > didn’t find the calls to `reactor.stop`, I guess they’re hidden somewhere in > conch „library“ code), I must prevent this stopping of the reactor, because I’m unable to start it again. I’m always getting twisted.internet.error.ReactorNotRestartable after trying it while reactor.running is False.
> nor quite which code paths you expect to work and which you expect to fail. > > > What is the expected behavior if I run test.py after editing it to point at a > host I have access to? If you put a reactor.stop() at the end of ssh._ebExit, test.py should run to completion after doing the remote file operations and executing the remote commands. > > Is that the desired behavior? No. I need a solution where the call to executeRemoteCommands() is delayed until all remote file operations are complete. Similar the next call to distributeFiles (with a different host) must wait until the previous call to executeRemoteCommands has no outstanding operations. > > If there is a second case, what one edit can I make to observe that behavior? No. > How does the behavior differ from what you’re trying to achieve? See above. I must synchronize operations at 2 points in a loop. I tried to do this with callbacks, called at connection shutdown. What do you think about this? > > Separately: > > * You should rewrite this code to not use twisted.conch.client.connect. > That's some random library code no one ever expected application code to use. > It's public, so you can use it if you want, but that's no promise it's any > good. > > * Use twisted.conch.endpoints.SSHCommandClientEndpoint to perform `exec` > requests > > * Consider pitching in to complete https://twistedmatrix.com/trac/ticket/6617 > so you can use the new `SSHSubsystemClientEndpoint` API that ticket > introduces to set up your SFTP connections. I looked at endpoints before, but failed to implement public key authentication and a callback when complete. Thanks for looking into this, Axel ——- PGP-Key:29E99DD6 ☀ +49 151 2300 9283 ☀ computing @ chaos claudius _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python