Esempio n. 1
0
	def client(self,server,port=5001):
		cwd = os.getcwd()
		self.setExe(self.GITexe)
		if self.user is None:
			self.user =  pwd.getpwuid(os.geteuid()).pw_name 
		## Create a script so that we can pass parameters to ssh for clone
		self.gitssh = tempfile.mkstemp(dir=cwd)
		f = os.fdopen(self.gitssh[0],'w')
		os.fchmod(self.gitssh[0],stat.S_IRWXU)
		f.write(GitSSH % (self.userkey, int(port)))
		f.close()
		# Tell git to use our wrapper script
		os.environ['GIT_SSH'] = self.gitssh[1]
		# if self.isV6Test():
		#	server = self.v6Names[server]
		#	if server.find(":") >= 0:
		#		server = "[%s]" % server 

		# now create the arguments for git clone itself
		args = [self.gitAction,]
		ofile = self.outputFile.replace("'","")
		remote="%s@%s:%s" % (self.user, server,self.inputFile)
		if self.gitAction == 'clone':
			args.extend([remote])
			args.extend(["%s" % ofile])
		else:
			# This is a pull. chdir to the local repo, update the
			# remote origin url and then pull
			os.chdir(ofile)
			cmd = [self.GITexe,"config","remote.origin.url",remote]
			TimedExec.runTimedCmd(2,cmd)
			
		self.setArgs(args)
		print "client: " , args
		self.run()
Esempio n. 2
0
	def run(self):

		if self.hasRequirement("FileTransfer") and self.inputFile is not None:
			iFile = file(self.inputFile,'r')
		else:
			iFile = None

		if self.lowPort is None or self.highPort is None:
			targs=[self.exe]
			targs.extend(self.args)
			self.tstart=time.time()
			resultcode,output,err=TimedExec.runTimedCmd(self.timeout,
				targs, indata=iFile,
				outhandler=self.stdoutHandler, 
				errhandler=self.stderrHandler)
			self.tend=time.time()
			if resultcode < 0:
				sys.stdout.write("Result code: %d\n" % resultcode)
				if iFile is not None:
					iFile.close()
				raise TimeOutException(self.exe)	
		else:
			for self.port in range(self.lowPort,self.highPort):
				try:
					targs=[self.exe]
					targs.extend(self.args)
					targs.extend([self.portArg, "%d" % int(self.port)]),
					## in 2 seconds call the portReporter to indicate
					## which port is being used. If specific mover has
					## an error within 2 seconds, assumed that port is in use.
					## Then next port is tried.
					rd = TimedExec.RunDelayed(2,self.portReporter,self.port)
					rd.run()
					self.tstart=time.time()
					resultcode,output,err=TimedExec.runTimedCmd(self.timeout,
						targs, indata=iFile,
						outhandler=self.stdoutHandler, 
						errhandler=self.stderrHandler)
					self.tend=time.time()
					rd.join()
					if resultcode < 0:
						sys.stdout.write("Result code: %d\n" % resultcode)
						raise TimeOutException(self.exe)	
					break
				except PortInUseException,e:
					## Cancel the portReporter
					rd.cancel()
					sys.stderr.write(e.message + "\n")
					rd.join()

			if iFile is not None:
				iFile.close()
Esempio n. 3
0
	def run(self):

		if self.inputFile is not None:
			iFile = file(self.inputFile,'r')
		else:
			iFile = None

		if self.lowPort is None or self.highPort is None:
			targs=[self.exe]
			targs.extend(self.args)
			self.tstart=time.time()
			resultcode,output,err=TimedExec.runTimedCmd(self.timeout,
				targs, indata=iFile,
				outhandler=self.stdoutHandler, 
				errhandler=self.stderrHandler)
			self.tend=time.time()
			if resultcode < 0:
				sys.stdout.write("Result code: %d\n" % resultcode)
				if iFile is not None:
					iFile.close()
				raise TimeOutException(self.exe)	
		else:
			for self.port in range(self.lowPort,self.highPort):
				try:
					targs=[self.exe]
					targs.extend(self.args)
					targs.extend([self.portArg, "%d" % int(self.port)]),
					## in 2 seconds call the portReporter to indicate
					## which port is being used. If specific mover has
					## an error within 2 seconds, assumed that port is in use.
					## Then next port is tried.
					rd = TimedExec.RunDelayed(2,self.portReporter,self.port)
					rd.run()
					self.tstart=time.time()
					resultcode,output,err=TimedExec.runTimedCmd(self.timeout,
						targs, indata=iFile,
						outhandler=self.stdoutHandler, 
						errhandler=self.stderrHandler)
					self.tend=time.time()
					rd.join()
					if resultcode < 0:
						sys.stdout.write("Result code: %d\n" % resultcode)
						raise TimeOutException(self.exe)	
					break
				except PortInUseException,e:
					## Cancel the portReporter
					rd.cancel()
					sys.stderr.write(e.message + "\n")
					rd.join()

			if iFile is not None:
				iFile.close()
Esempio n. 4
0
	def __init__(self):
		resultcode,out,err=TimedExec.runTimedCmd(defaultTimeout,
			["condor_config_val","LIBEXEC"])
		if (resultcode < 0):
			raise IDPLExecption.CondorConfigValException("Chirp Init")
		else:
			self.executable=os.path.join(out[0].strip(),"condor_chirp")
Esempio n. 5
0
	def ulog(self,message):
		""" condor chirp to log a message """  

		resultcode,out,err=TimedExec.runTimedCmd(defaultTimeout,
			[self.executable,"ulog", "'%s'" % message])
		if resultcode != 0:
			raise IDPLException.CondorChirpUlogException(message)
		else:
			return out 
Esempio n. 6
0
	def getJobAttr(self,attr):
		""" condor chirp to get a job attribute """
		resultcode,out,err=TimedExec.runTimedCmd(defaultTimeout,
			[self.executable,"get_job_attr", attr])
		if resultcode != 0:
			raise IDPLException.CondorChirpGetException(attr)
		else:
			if out[0].strip().lower() == "undefined":
				return None
			else:
				return out[0].strip()
Esempio n. 7
0
def iperfClient():
	interval = 5
	maxtries = 12*3
	serverInfo = chirp.getJobAttrWait("IperfServer",None,interval, maxtries)
	host,port = serverInfo.strip("'").split()
	tstart = time.time()
	resultcode,output,err=TimedExec.runTimedCmd(clientTimeout,[iperfExe,
					"-c", host,"-f","k","-p","%d" % int(port) ],iperfout, iperferr)
	tend = time.time()
	writeRecord("iperf",socket.getfqdn(),host,tstart,tend,1,tend-tstart,
			int(transferredKB))
Esempio n. 8
0
 def getJobAttr(self, attr):
     """ condor chirp to get a job attribute """
     resultcode, out, err = TimedExec.runTimedCmd(
         defaultTimeout, [self.executable, "get_job_attr", attr])
     if resultcode != 0:
         raise IDPLException.CondorChirpGetException(attr)
     else:
         if out[0].strip().lower() == "undefined":
             return None
         else:
             return out[0].strip()
Esempio n. 9
0
def iperfServer():
	for iperfPort in range(iperfPortLow,iperfPortHigh):
		try:
			resultcode,output,err=TimedExec.runTimedCmd(serverTimeout,[iperfExe,
					"-s", "-p", "%d" % iperfPort ],iperfout, iperferr)

			if resultcode < 0:
				sys.stdout.write("Result code: %d\n" % resultcode)
				raise TimeOutException("iperf")	
			break
		except PortInUseException,e:
			sys.stderr.write(e.message)
Esempio n. 10
0
    def setJobAttr(self, attr, val):
        """ condor chirp to set a job attribute
			if val == None, set it to 'UNDEFINED' """

        if val is None:
            val = "UNDEFINED"

        resultcode, out, err = TimedExec.runTimedCmd(
            defaultTimeout, [self.executable, "set_job_attr", attr, val])
        if resultcode != 0:
            raise IDPLException.CondorChirpSetException(attr + ":" + val)
        else:
            return out
Esempio n. 11
0
def iperfClient():
    interval = 5
    maxtries = 12 * 3
    serverInfo = chirp.getJobAttrWait("IperfServer", None, interval, maxtries)
    host, port = serverInfo.strip("'").split()
    tstart = time.time()
    resultcode, output, err = TimedExec.runTimedCmd(
        clientTimeout,
        [iperfExe, "-c", host, "-f", "k", "-p",
         "%d" % int(port)], iperfout, iperferr)
    tend = time.time()
    writeRecord("iperf", socket.getfqdn(), host, tstart, tend, 1,
                tend - tstart, int(transferredKB))
Esempio n. 12
0
def iperfServer():
    for iperfPort in range(iperfPortLow, iperfPortHigh):
        try:
            resultcode, output, err = TimedExec.runTimedCmd(
                serverTimeout,
                [iperfExe, "-s", "-p", "%d" % iperfPort], iperfout, iperferr)

            if resultcode < 0:
                sys.stdout.write("Result code: %d\n" % resultcode)
                raise TimeOutException("iperf")
            break
        except PortInUseException, e:
            sys.stderr.write(e.message)
Esempio n. 13
0
	def setJobAttr(self,attr,val):
		""" condor chirp to set a job attribute
			if val == None, set it to 'UNDEFINED' """

		if val is None:
			val = "UNDEFINED"

		resultcode,out,err=TimedExec.runTimedCmd(defaultTimeout,
			[self.executable,"set_job_attr", attr, val])
		if resultcode != 0:
			raise IDPLException.CondorChirpSetException(attr + ":" + val)
		else:
			return out 
Esempio n. 14
0
	def genkey(self,bname,type="rsa"):
		"""generates host/user key in a temporary file"""
		cwd = os.getcwd()
		fh,key= tempfile.mkstemp(dir=cwd,text=True)
		os.close(fh)
		keypub = "%s.pub" % key 
		if os.path.isfile(key):
			os.unlink(key)
		if os.path.isfile(keypub):
			os.unlink(keypub)
		keygencmd = [self.KEYGENexe,"-q","-f",key,"-t", type, "-N", ""]
		opcode,out,err = TimedExec.runTimedCmd(5,keygencmd)
		if opcode != 0:
			print out
			print err
			raise SSHServerException("ssh-keygen",err)
		return (key,keypub)
Esempio n. 15
0
	def genkey(self,bname,type="rsa"):
		"""generates host/user key in a temporary file"""
		cwd = os.getcwd()
		fh,key= tempfile.mkstemp(dir=cwd,text=True)
		os.close(fh)
		keypub = "%s.pub" % key 
		if os.path.isfile(key):
			os.unlink(key)
		if os.path.isfile(keypub):
			os.unlink(keypub)
		keygencmd = [self.KEYGENexe,"-q","-f",key,"-t", type, "-N", ""]
		opcode,out,err = TimedExec.runTimedCmd(5,keygencmd)
		if opcode != 0:
			print out
			print err
			raise SSHServerException("ssh-keygen",err)
		return (key,keypub)
Esempio n. 16
0
try:
    opts, args = getopt.getopt(sys.argv[1:], "hl:p:c:",
                               ["help", "log_path=", "port=", "config="])
except getopt.GetoptError:
    usage()
    sys.exit()

for opt, arg in opts:
    if opt in ("-h", "--help"):
        usage()
        sys.exit()
    elif opt in ("-l", "--log_path"):
        log_path = arg
    elif opt in ("-p", "--port"):
        port = arg
    elif opt in ("-c", "--config"):
        config = arg

resultcode, output, err = TimedExec.runTimedCmd(
    timeout, [sslexe, "-l", log_path, "-p", port, "-c", config])
print("".join(output))
if resultcode < 0:
    side = int(os.environ['_CONDOR_PROCNO'])
    print("Timeout! Result code %d" % resultcode)
    if side == 0:
        raise TimeOutException("client")
    else:
        raise TimeOutException("server")

# vim: ts=4:sw=4
Esempio n. 17
0
#!/usr/bin/env python
import TimedExec
import sys

#This is used to create new subprocess and it will return output as well as error
resultcode, output, err = TimedExec.runTimedCmd(30, ["/usr/bin/iperf", "-s"])
sys.stdout.write("Result code: %d\n" % resultcode)
print "==== Command stdout ==="
for line in output:
    sys.stdout.write(line)
print "=======Command Stderr===="
for line in err:
    sys.stdout.write(line)
# vim: ts=4:sw=4:tw=78
Esempio n. 18
0
#!/usr/bin/env python
import TimedExec 
import sys


#This is used to create new subprocess and it will return output as well as error 
resultcode,output,err=TimedExec.runTimedCmd(30,["/usr/bin/iperf","-s"])
sys.stdout.write("Result code: %d\n" % resultcode)
print "==== Command stdout ==="
for line in output:
	sys.stdout.write(line)
print "=======Command Stderr===="
for line in err:
	sys.stdout.write(line)
# vim: ts=4:sw=4:tw=78
Esempio n. 19
0
    sys.exit()

try:
    opts, args = getopt.getopt(sys.argv[1:], "hl:p:c:", ["help", "log_path=", "port=", "config="])
except getopt.GetoptError:
    usage()
    sys.exit()

for opt, arg in opts:
    if opt in ("-h", "--help"):
        usage()
        sys.exit()
    elif opt in ("-l", "--log_path"):
        log_path = arg
    elif opt in ("-p", "--port"):
        port = arg
    elif opt in ("-c", "--config"):
        config = arg

resultcode, output, err = TimedExec.runTimedCmd(timeout, [sslexe, "-l", log_path, "-p", port, "-c", config])
print("".join(output))
if resultcode < 0:
    side = int(os.environ["_CONDOR_PROCNO"])
    print("Timeout! Result code %d" % resultcode)
    if side == 0:
        raise TimeOutException("client")
    else:
        raise TimeOutException("server")

# vim: ts=4:sw=4
Esempio n. 20
0
if len(sys.argv) < 3:
    print("val number error")
for string in sys.argv:
    print string

path = sys.argv[1]
host = ""
port = sys.argv[2]
config = sys.argv[3]

print path, host, port, config
if int(os.environ['_CONDOR_PROCNO']) == 0:
    #client = socketClient.Client(config)
    print("client start")
    print socket.gethostname(), socket.gethostbyname(socket.gethostname())
    resultcode, output, err = TimedExec.runTimedCmd(clientTimeout,
                                                    [client, config])
    if resultcode < 0:
        print("Timeout! Result code: %d" % resultcode)
        raise TimeOutException("client")
    #client.demand()
else:
    print("server start")
    #server = socketServer.Server(path, host, port)
    resultcode, output, err = TimedExec.runTimedCmd(serverTimeout,
                                                    [server, path, host, port])
    if resultcode < 0:
        print("Result code: %d" % resultcode)
        raise TimeOutException("server")
    #server.serve()
Esempio n. 21
0
if len(sys.argv) < 3:
	print ("val number error")
for string in sys.argv:
	print string

path = sys.argv[1]
host = ""
port = sys.argv[2]
config = sys.argv[3]

print path, host, port, config
if int(os.environ['_CONDOR_PROCNO']) == 0:
	#client = socketClient.Client(config)
	print ("client start")
	print socket.gethostname(), socket.gethostbyname(socket.gethostname()) 
	resultcode,output,err=TimedExec.runTimedCmd(clientTimeout,[client, config])
	if resultcode < 0:
                print("Timeout! Result code: %d" % resultcode)
                raise TimeOutException("client")
	#client.demand()		
else:
	print("server start")
	#server = socketServer.Server(path, host, port)
	resultcode,output,err=TimedExec.runTimedCmd(serverTimeout, [server, path, host, port])
	if resultcode < 0:
		print("Result code: %d" % resultcode)
		raise TimeOutException("server")
	#server.serve()