adaptions to get main_transport working
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2763 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
c89431fbf1
commit
051565a155
4 changed files with 30 additions and 10 deletions
|
@ -23,6 +23,11 @@ Agent application.
|
||||||
$Id$
|
$Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
print "****printing sys.path****"
|
||||||
|
for elem in sys.path:
|
||||||
|
print elem
|
||||||
import os
|
import os
|
||||||
from twisted.internet import reactor
|
from twisted.internet import reactor
|
||||||
|
|
||||||
|
@ -59,6 +64,8 @@ def setupEnvironment(config):
|
||||||
from cybertools.agent.control import cmdline
|
from cybertools.agent.control import cmdline
|
||||||
from cybertools.agent.system import rpcapi
|
from cybertools.agent.system import rpcapi
|
||||||
rpcapi.setup(config)
|
rpcapi.setup(config)
|
||||||
|
from cybertools.agent.system import sftpapi
|
||||||
|
sftpapi.setup(config)
|
||||||
from cybertools.agent.transport import remote
|
from cybertools.agent.transport import remote
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,5 +81,6 @@ if __name__ == '__main__':
|
||||||
metadata01 = Metadata(dict(filename='dummy.txt'))
|
metadata01 = Metadata(dict(filename='dummy.txt'))
|
||||||
res01 = Resource()
|
res01 = Resource()
|
||||||
res01.metadata = metadata01
|
res01.metadata = metadata01
|
||||||
|
res01.path = '/dummydir/dummyfile'
|
||||||
controller.enterJob('sample', 'sample03', params=dict(resource=res01))
|
controller.enterJob('sample', 'sample03', params=dict(resource=res01))
|
||||||
startReactor()
|
startReactor()
|
||||||
|
|
|
@ -9,7 +9,7 @@ def output(x):
|
||||||
|
|
||||||
ft = FileTransfer('cy05.de', 22, 'scrat', '...')
|
ft = FileTransfer('cy05.de', 22, 'scrat', '...')
|
||||||
|
|
||||||
d = ft.upload('text.txt', 'text.txt')
|
d = ft.upload('d:\\text.txt', 'text.txt')
|
||||||
d.addCallback(output)
|
d.addCallback(output)
|
||||||
|
|
||||||
reactor.callLater(3, ft.close)
|
reactor.callLater(3, ft.close)
|
||||||
|
|
|
@ -26,6 +26,7 @@ from twisted.conch.ssh import channel, common, connection
|
||||||
from twisted.conch.ssh import filetransfer, transport, userauth
|
from twisted.conch.ssh import filetransfer, transport, userauth
|
||||||
from twisted.internet import defer, protocol, reactor
|
from twisted.internet import defer, protocol, reactor
|
||||||
|
|
||||||
|
CHUNKSIZE = 8096
|
||||||
|
|
||||||
class FileTransfer(protocol.ClientFactory):
|
class FileTransfer(protocol.ClientFactory):
|
||||||
""" Transfers files to a remote SCP/SFTP server.
|
""" Transfers files to a remote SCP/SFTP server.
|
||||||
|
@ -104,19 +105,30 @@ class SFTPChannel(channel.SSHChannel):
|
||||||
d.addCallbacks(self.writeChunk, self.logError)
|
d.addCallbacks(self.writeChunk, self.logError)
|
||||||
|
|
||||||
def writeChunk(self, remoteFile):
|
def writeChunk(self, remoteFile):
|
||||||
# data = self.localFile.read(chunkSize)
|
data = self.localFile.read(CHUNKSIZE)
|
||||||
# if len(data) < chunkSize():
|
if len(data) < CHUNKSIZE:
|
||||||
# write rest
|
# write rest
|
||||||
# addCallbacks(self.finished, self.logError)
|
print "[DEBUG] **** WRITING REMAINING CHUNK\n"
|
||||||
print 'writeChunk', remoteFile
|
print "[DEBUG] **** len(data): ", len(data)
|
||||||
d = remoteFile.writeChunk(0, 'Hello World')
|
print "[DEBUG] **** data: %s \n" %(data)
|
||||||
|
self.d = remoteFile.writeChunk(len(data), data)
|
||||||
|
self.d.addCallbacks(self.finished, self.logError)
|
||||||
|
print "[DEBUG] **** WRITING CHUNK\n"
|
||||||
|
#self.d = remoteFile.writeChunk(CHUNKSIZE, data)
|
||||||
|
#self.d.addCallbacks(self.writeChunk, self.logError)
|
||||||
|
d = remoteFile.writeChunk(CHUNKSIZE, data)
|
||||||
d.addCallbacks(self.writeChunk, self.logError)
|
d.addCallbacks(self.writeChunk, self.logError)
|
||||||
|
|
||||||
def logError(self, reason):
|
def logError(self, reason):
|
||||||
print 'error', reason
|
print 'error', reason
|
||||||
|
|
||||||
def finished(self, result):
|
def finished(self, result):
|
||||||
self.deferred.callback('finished')
|
#self.deferred.callback('finished')
|
||||||
|
print "[DEBUG] **** finished has been called\n"
|
||||||
|
print "[DEBUG] **** result: ", result
|
||||||
|
self.localFile.close()
|
||||||
|
self.d.callback('finished')
|
||||||
|
#result.callback('finished')
|
||||||
|
|
||||||
|
|
||||||
# classes for managing the SSH protocol and connection
|
# classes for managing the SSH protocol and connection
|
||||||
|
|
|
@ -58,8 +58,7 @@ class Transporter(QueueableAgent):
|
||||||
config = master.config
|
config = master.config
|
||||||
self.serverURL = config.transport.remote.url
|
self.serverURL = config.transport.remote.url
|
||||||
self.server = rpcapi.xmlrpc.Proxy(self.serverURL)
|
self.server = rpcapi.xmlrpc.Proxy(self.serverURL)
|
||||||
self.ftpServer = sftpapi.FileTransfer(self.host, self.port,
|
self.ftpServer = sftpapi.FileTransfer(self.host, self.port, self.userName, self.password)
|
||||||
self.userName, self.password)
|
|
||||||
#self.method = params[method]
|
#self.method = params[method]
|
||||||
#self.machineName = params[machineName]
|
#self.machineName = params[machineName]
|
||||||
#self.userName = params[userName]
|
#self.userName = params[userName]
|
||||||
|
@ -74,6 +73,7 @@ class Transporter(QueueableAgent):
|
||||||
"""
|
"""
|
||||||
#return self.server.callRemote('getMetadata', resource.metadata)
|
#return self.server.callRemote('getMetadata', resource.metadata)
|
||||||
self.deferred = defer.Deferred()
|
self.deferred = defer.Deferred()
|
||||||
|
print "**** RESOURCE.PATH: ", resource.path
|
||||||
remoteFile = os.path.basename(resource.path)
|
remoteFile = os.path.basename(resource.path)
|
||||||
d = self.ftpServer.upload(resource.path, remoteFile)
|
d = self.ftpServer.upload(resource.path, remoteFile)
|
||||||
#d = self.server.callRemote('getMetadata', resource.metadata)
|
#d = self.server.callRemote('getMetadata', resource.metadata)
|
||||||
|
|
Loading…
Add table
Reference in a new issue