-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathFDTMover.py
More file actions
78 lines (69 loc) · 1.96 KB
/
FDTMover.py
File metadata and controls
78 lines (69 loc) · 1.96 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import os
import time
import socket
import sys
import signal
import hashlib
import pwd
import tempfile
import TimedExec
from IDPLException import *
from DataMover import *
class FDTMover(DataMover):
def __init__(self, workDir=None):
super(FDTMover,self).__init__()
self.JAVA = 'java'
self.FDTJAR = 'fdt.jar'
self.setExe(self.JAVA)
self.setOutputHandler(self.fdtout)
self.setErrHandler(self.fdterr)
self.rawData = None
self.transferredKB=0
self.serverDir = workDir
self.user = None
self.hostkey = None
self.userkey = None
self.userkeypub = None
self.inputFile = None # source file on client
self.outputFile = None # dest file on server
self.addRequirement("SubAttrs");
def fdtout(self,pid,str):
""" stdout handler when running fdt under TimedExec """
message = "%s(%d): %s" % (socket.getfqdn(),pid,str)
sys.stdout.write(message)
host = socket.getfqdn()
def fdterr(self,pid,str):
""" stderr handler when running sshd under TimedExec """
sys.stderr.write("%d#: %s" %(pid,str))
if str.find("bind failed") != -1:
raise PortInUseException("fdt", self.port)
def getUser(self):
return self.user
def setUser(self,nuser):
self.user = nuser
def client(self,server,port=5001):
if self.isV6Test():
server="[%s]" % self.v6Names[server]
args = ["-jar", self.FDTJAR, "-noupdates" ]
args.extend(["-p", str(port)])
args.extend(["-c", server, self.inputFile])
args.extend(["-d","."])
args.extend(["-ss","1M"])
self.setArgs(args)
print "client: " , args
self.run()
def server(self):
args = ["-jar", self.FDTJAR, "-S", "-noupdates" ]
args.extend(["-bs","1M"])
# put the server in debug mode to accept only one incoming connection
self.setArgs(args)
self.setPortRange(5001,5010)
if (os.path.isfile(self.outputFile)):
os.unlink(self.outputFile)
print "server: " , args
self.run()
class FDTMover6(FDTMover):
def __init__(self, workDir=None):
super(FDTMover6,self).__init__()
self.setV6Test(True)
# vim: ts=4:sw=4: