diff --git a/agent/main.py b/agent/main.py index 32387dd..e28a66f 100755 --- a/agent/main.py +++ b/agent/main.py @@ -61,6 +61,8 @@ def setupEnvironment(config): api.setup(config) from cybertools.agent.system import rpcapi rpcapi.setup(config) + from cybertools.agent.system import sftpapi + sftpapi.setup(config) from cybertools.agent.crawl import base, filesystem, outlook diff --git a/agent/testing/sftp.py b/agent/testing/sftp.py index 831c9b8..5264f24 100644 --- a/agent/testing/sftp.py +++ b/agent/testing/sftp.py @@ -26,13 +26,12 @@ from twisted.internet.defer import succeed class FileTransfer(object): - - + + def __init__(self, host, port, username, password): pass - + def upload(self, localPath, remotePath): deferred = succeed('Upload completed') return deferred - pass diff --git a/agent/transport/remote.py b/agent/transport/remote.py index 63a9bb7..03e4ae1 100644 --- a/agent/transport/remote.py +++ b/agent/transport/remote.py @@ -46,6 +46,7 @@ class Transporter(QueueableAgent): serverURL = '' server = '' + host = port = None method = '' machineName = '' userName = '' @@ -57,7 +58,8 @@ class Transporter(QueueableAgent): config = master.config self.serverURL = config.transport.remote.url self.server = rpcapi.xmlrpc.Proxy(self.serverURL) - self.ftpServer = sftpapi.FileTransfer(host, port, username, password) + self.ftpServer = sftpapi.FileTransfer(self.host, self.port, + self.userName, self.password) #self.method = params[method] #self.machineName = params[machineName] #self.userName = params[userName] @@ -74,9 +76,11 @@ class Transporter(QueueableAgent): self.deferred = defer.Deferred() remoteFile = os.path.basename(resource.path) d = self.ftpServer.upload(resource.path, remoteFile) - d = self.server.callRemote('getMetadata', resource.metadata) - d.addCallback(self.transferDone) + #d = self.server.callRemote('getMetadata', resource.metadata) d.addErrback(self.errorHandler) + d.addCallback(lambda result: + self.server.callRemote('getMetadata', dict(resource.metadata))) + d.addCallback(self.transferDone) return self.deferred def errorHandler(self, errorInfo): diff --git a/agent/transport/transporter.txt b/agent/transport/transporter.txt index 5420dfa..f16ac86 100644 --- a/agent/transport/transporter.txt +++ b/agent/transport/transporter.txt @@ -9,6 +9,7 @@ Agents for Job Execution and Communication Tasks ... scheduler(name='core') ... logger(name='default', standard=30) ... transport.remote.server = 'testing' + ... transport.remote.sftp = 'testing' ... transport.remote.url = 'http://localhost:8123' ... ''' >>> from cybertools.agent.main import setup @@ -40,6 +41,7 @@ In the next step we request the start of a job, again via the controller. >>> md01 = Metadata(dict(filename='dummy.txt')) >>> r01 = Resource() >>> r01.metadata = md01 + >>> r01.path = 'resource.txt' >>> controller.enterJob('sample', 'sample03', params=dict(resource=r01)) The job is not executed immediately - we have to hand over control to