1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
from func.overlord import overlord_module
import os
import stat
import xmlrpclib
class copyfile(overlord_module.BaseModule):
def send(self, localpath, remotepath, bufsize=60000):
try:
f = open(localpath, "r")
except IOError, e:
sys.stderr.write("Unable to open file: %s: %s\n" % (self.options.filename, e))
return
st = os.stat(localpath)
mode = stat.S_IMODE(st.st_mode)
uid = st.st_uid
gid = st.st_gid
self.parent.run("copyfile", "open", [remotepath, mode, uid, gid])
while True:
data=f.read(bufsize)
if data:
self.parent.run("copyfile", "append", [remotepath, xmlrpclib.Binary(data)])
else:
break
return True
|