#!/usr/bin/env python from threading import Timer from pollingFileSystemObserverAgent import PollingFileSystemObserverAgent from dm.common.utility.ftpUtility import FtpUtility class FtpFileSystemObserverAgent(PollingFileSystemObserverAgent): DEFAULT_POLLING_PERIOD_IN_SECONDS = 15 def __init__(self, host, port, username=None, password=None, pollingPeriod=DEFAULT_POLLING_PERIOD_IN_SECONDS): PollingFileSystemObserverAgent.__init__(self, pollingPeriod) self.host = host self.port = port self.username = username self.password = password def getFiles(self, dataDirectory): (scheme, host, port, dirPath) = FtpUtility.parseFtpUrl(dataDirectory, defaultHost=self.host, defaultPort=self.port) self.logger.debug('Retrieving files from FTP host: %s, port: %s, directory path: %s' % (host, port, dirPath)) ftpUtility = FtpUtility(host, port, self.username, self.password) return ftpUtility.getFiles(dirPath, {}) #################################################################### # Testing if __name__ == '__main__': import time agent = FtpFileSystemObserverAgent('zagreb', 2811) print 'ORIGINAL FILES: ', agent.getFiles('/tmp/test') agent.startObservingPath('/tmp/test', 'e1') time.sleep(100) agent.stopObservingPath('/tmp/test', 'e1')