[Ocfs2-test-devel] [PATCH 08/11] buildkernel

tristan tristan.ye at oracle.com
Wed Jun 16 19:03:47 PDT 2010


Signed-off-by: Tristan Ye <tristan.ye at oracle.com>

Marcos Matsunaga wrote:
> ocfs2-test: changed to accept an alternate NIC to be used by the test.
>
> - added the makelog logfile to separate the output of the build from
>   the general logfile.
>
> Signed-off-by: Marcos Matsunaga <Marcos.Matsunaga at oracle.com>
> Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
> ---
>  programs/buildkernel/buildkernel.py     |   88 ++++++++++---------------------
>  programs/buildkernel/run_buildkernel.py |   19 +++++--
>  2 files changed, 43 insertions(+), 64 deletions(-)
>
> diff --git a/programs/buildkernel/buildkernel.py b/programs/buildkernel/buildkernel.py
> index 6ce8dee..4f0be74 100755
> --- a/programs/buildkernel/buildkernel.py
> +++ b/programs/buildkernel/buildkernel.py
> @@ -29,7 +29,7 @@
>  # E-mail		  : Marcos.Matsunaga at oracle.com
>  
>  #
> -import os, sys, time, optparse, socket, string, o2tf, pdb, timing, time, config
> +import os, sys, time, optparse, socket, string, o2tf, pdb, timing, time, config, platform
>  #
>  DEBUGON = os.getenv('DEBUG',0)
>  #
> @@ -50,13 +50,9 @@ def tbuild(thrid, command):
>  	'	 command - command to be executed'
>  	if DEBUGON:
>  		o2tf.printlog('buildkernel:tbuild - current directory %s' % os.getcwd(), 
> -			logfile, 
> -			0, 
> -			'')
> +			logfile, 0, '')
>  		o2tf.printlog('buildkernel:tbuild - command	%s ' % command, 
> -			logfile, 
> -			0, 
> -			'')
> +			logfile, 0, '')
>  	pidlist[thrid] = os.spawnv(os.P_NOWAIT, 
>  			'/bin/bash', 
>  			['bash', 
> @@ -69,38 +65,25 @@ def check_thread(logfile):
>  	'check_thread takes 1 argument:'
>  	'	 logfile - logfile name'
>  	o2tf.printlog('buildkernel:check_thread: Waiting for processes to finish '
> -		'on thread ',
> -		logfile, 
> -		0, 
> -		'')
> +		'on thread ', logfile, 0, '')
>  	while len(pidlist) > 0:
>  		o2tf.printlog('buildkernel:check_thread: Checking thread processes',
> -			logfile, 
> -			0, 
> -			'')
> +			logfile, 0, '')
>  		o2tf.printlog('buildkernel:check_thread: pid list %s' % (pidlist), 
> -			logfile, 
> -			0, 
> -			'')
> +			logfile, 0, '')
>  		for z in range(len(pidlist)):
>  			out = os.waitpid(pidlist[z],os.WNOHANG)
>  			o2tf.printlog('buildkernel:check_thread: z=%s, out=%s' % (z, out[1]), 
> -				logfile, 
> -				0, 
> -				'')
> +				logfile, 0, '')
>  			if out[0] > 0:
>  				o2tf.printlog('buildkernel:check_thread: Removing pid '
>  					'%s from the list' %	pidlist[z], 
> -					logfile, 
> -					0, 
> -					'')
> +					logfile, 0, '')
>  				t2 = time.time()
>  				o2tf.printlog('buildkernel:check_thread: %s [%s]: Build '
>  					'time is %f seconds' % 
>  					(str(socket.gethostname()), pidlist[z], t2 - t1), 
> -					logfile, 
> -					0, 
> -					'')
> +					logfile, 0, '')
>  				pidlist.remove(out[0])
>  				break
>  		time.sleep(CHECKTHREAD_SLEEPTIME)
> @@ -200,34 +183,20 @@ if __name__=='__main__':
>  #
>  if DEBUGON:
>  	o2tf.printlog('buildkernel: cleardir = (%s)' % cleardir, 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	o2tf.printlog('buildkernel: dirlist = (%s)' % dirlist, 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	o2tf.printlog('buildkernel: dirlen = (%s)' % dirlen, 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	o2tf.printlog('buildkernel: logfile = (%s)' % logfile, 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	o2tf.printlog('buildkernel: nodelist = (%s)' % nodelist, 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	if options.extract_tar:
>  		o2tf.printlog('buildkernel: tarfile = (%s)' % tarfile, 
> -			logfile, 
> -			0, 
> -			'')
> +			logfile, 0, '')
>  	o2tf.printlog('buildkernel: extract_tar = (%s)' % extract_tar, 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  #
>  if cleardir:
>  	o2tf.ClearDir(DEBUGON, logfile, options.dirlist)
> @@ -262,29 +231,28 @@ import os.path
>  logdir = os.path.dirname(logfile)
>  pidlist = [0] * dirlen * 2
>  for x in range(dirlen):
> +	logdate = str(time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()))
> +	arch = str(platform.machine())
> +	hostname = str(socket.gethostname())
> +	makelog = os.path.join(logdir,logdate+'_make_'+arch+'_'+hostname)
> +	o2tf.printlog('buildkernel:Main - build logfiles %s' % makelog,
> +		logfile, 0, '')
> +
>  	wdir = dirlist[x] + '/' + str(socket.gethostname()) +'/'+ config.KERNELDIR
>  	cmd = 'cd ' + wdir + '; \
>  		make mrproper 1>>%s 2>&1; \
>  		make defconfig 1>>%s 2>&1; \
> -		/usr/bin/make -j2 V=1 1>>%s 2>&1' %  (logfile, logfile, logfile)
> +		/usr/bin/make -j2 V=1 1>>%s 2>&1' %  (makelog, makelog, makelog)
>  #
>  	if DEBUGON:
>  		o2tf.printlog('buildkernel:Main - current directory %s' % os.getcwd(),
> -			logfile,
> -			0,
> -			'')
> +			logfile, 0, '')
>  		o2tf.printlog('buildkernel:Main - working directory %s' % dirlist[x],
> -			logfile,
> -			0,
> -			'')
> +			logfile, 0, '')
>  		o2tf.printlog('buildkernel:Main - wdir =  %s' %  wdir,
> -			logfile,
> -			0,
> -			'')
> +			logfile, 0, '')
>  		o2tf.printlog('buildkernel:Main - cmd = %s' % cmd,
> -			logfile,
> -			0,
> -			'')
> +			logfile, 0, '')
>  	t1 = time.time()
>  	tbuild(x, cmd)
>  	cmd = 'cd ' + dirlist[x] + '/' + nodefind + '; \
> diff --git a/programs/buildkernel/run_buildkernel.py b/programs/buildkernel/run_buildkernel.py
> index 494713e..26bda2b 100755
> --- a/programs/buildkernel/run_buildkernel.py
> +++ b/programs/buildkernel/run_buildkernel.py
> @@ -91,6 +91,7 @@ def Initialize():
>  			options.logfile) ),
>  			options.nodelist, 
>  			'ssh',
> +			options.interface,
>  			options.logfile,
>  			'WAIT')
>  #
> @@ -102,6 +103,7 @@ def Initialize():
>  			tarfile) ),
>  			options.nodelist, 
>  			'ssh',
> +			options.interface,
>  			options.logfile,
>  			'WAIT')
>  	o2tf.printlog('Directories initialization completed.', logfile, 0, '')
> @@ -109,10 +111,11 @@ def Initialize():
>  Usage = 'Usage: %prog [-c|--count count] \
>  [-d|--directorylist dirlist] \
>  [-h|--help] \
> -[-i|--initialize] \
> +[--initialize] \
> +[-i|--if <Network Interface>] \
>  [-l|-logfile logfilename] \
>  [-n|--nodes nodelist] \
> -[-nocheck] \
> +[--nocheck] \
>  [-t|--tarfile fullpath tar filename] \
>  [-u|--user username]'
>  #
> @@ -138,13 +141,18 @@ if __name__=='__main__':
>  		type='string',
>  		help='List of directories that will be used by the test.')
>  #
> -	parser.add_option('-i',
> -		'--initialize', 
> +	parser.add_option('--initialize', 
>  		action="store_true",
>  		dest='initialize',
>  		default=False,
>  		help='Initialize directories before each run. Default=False.')
>  #
> +	parser.add_option('-i', 
> +		'--if', 
> +		dest='interface',
> +		type='string',
> +		help='Network interface to be used by the test.')
> +#
>  	parser.add_option('-l', 
>  		'--logfile', 
>  		dest='logfile',
> @@ -187,6 +195,7 @@ if __name__=='__main__':
>  	else:
>  		nodelist = options.nodelist.split(',')
>  	logfile = options.logfile
> +	interface = options.interface
>  	tarfile = options.tarfile
>  	if nodelen > config.NPROC:
>  	   nproc = nodelen
> @@ -202,6 +211,7 @@ if DEBUGON:
>     o2tf.printlog('run_buildkernel: dirlist = (%s)' % dirlist, logfile, 0, '')
>     o2tf.printlog('run_buildkernel: dirlen = (%s)' % dirlen, logfile, 0, '')
>     o2tf.printlog('run_buildkernel: nodelist = (%s)' % nodelist, logfile, 0, '')
> +   o2tf.printlog('run_buildkernel: interface = (%s)' % interface, logfile, 0, '')
>     o2tf.printlog('run_buildkernel: nodelen = (%s)' % nodelen, logfile, 0, '')
>     o2tf.printlog('run_buildkernel: logfile = (%s)' % logfile, logfile, 0, '')
>     o2tf.printlog('run_buildkernel: tarfile = (%s)' % tarfile, logfile, 0, '')
> @@ -224,6 +234,7 @@ for i in range(options.count):
>  			options.nodelist) ), 
>  			options.nodelist, 
>  			'ssh',
> +			options.interface,
>  			options.logfile,
>  			'WAIT' )
>  if not ret:
>   




More information about the Ocfs2-test-devel mailing list