#!/usr/bin/env python

from dm.common.utility.dmSubprocess import DmSubprocess

class RsyncFileTransfer:

    COMMAND = 'rsync'

    def __init__(self, src, dest, flags='-arvlP'):
        self.src = src
        self.dest = dest
        self.flags = flags
        self.command = '%s %s %s %s' % (self.COMMAND, self.flags, self.src, self.dest)
        self.subprocess = DmSubprocess.getSubprocess(self.command)

    def execute(self):
        return self.subprocess.run()

    def getStdOut(self):
        return self.subprocess.getStdOut()

    def getStdErr(self):
        return self.subprocess.getStdErr()

    def getExitStatus(self):
        return self.subprocess.getExitStatus()

#######################################################################
# Testing.
if __name__ == '__main__':
    ft = RsyncFileTransfer('/tmp/abc', '/tmp/abc2')
    ft.execute()
    print 'StdOut: ', ft.getStdOut()
    print 'StdErr: ', ft.getStdErr()
    print 'Exit Status: ', ft.getExitStatus()