From: Hasan Wan Date: Mon, 20 May 2013 06:15:44 +0000 (+0800) Subject: create temp configuration file when runs on slave X-Git-Tag: 0.14~177 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2939c64d2e96f55b9a8efbd5fc880e4f4037d70b;p=services%2Fjenkins-scripts.git create temp configuration file when runs on slave Change-Id: Ie22e6cf6b9f74f5834afdd006509b9f0e1809907 --- diff --git a/job_imager.py b/job_imager.py index 07fcd83..4ab49b0 100755 --- a/job_imager.py +++ b/job_imager.py @@ -1,14 +1,62 @@ #!/usr/bin/env python -import os, sys + +import os +import sys import subprocess -from datetime import datetime +import tempfile +from common.buildtrigger import trigger_info -try: - import json -except ImportError: - import simplejson as json +kvmic_conf_template =""" +[general] +resdir = /usr/share/kvmic +imgdir = /var/tmp/mic2image -from common.buildtrigger import trigger_info +[run] +usekvm = no +usescreen = no +tmpimgdir = /var/tmp/mic2image.tmp + +[deploy] +; + +; Following configurations are for mic +[common] +; general settings +distro_name = Tizen +plugin_dir = /usr/lib/mic/plugins + +[create] +base_buildid = invalid_id +tmpdir= %(tmpdir)s +cachedir= %(cachedir)s +outdir= %(outdir)s +runtime= %(runtime)s + +pkgmgr = auto + +# to skip all ssl verification for repos +#ssl_verify = no + +[bootstrap] +rootdir=/var/tmp/mic-bootstrap +packages=mic-bootstrap-x86-arm + +""" + +def gen_kvmic_conf(): + kvmic_conf_string = kvmic_conf_template %{ + "tmpdir": os.getenv("MIC_TMPDIR", "/var/tmp/mic"), + "cachedir": os.getenv("MIC_CACHEDIR", "/var/tmp/mic/cache"), + "outdir": os.path.join(os.getenv("WORKSPACE"),"image"), + "runtime": os.getenv("MIC_RUNTIME", "native") + } + + (fds, path) = tempfile.mkstemp(prefix=".kvmic_conf") + os.close(fds) + with file(path, 'w+') as fobj: + fobj.write(kvmic_conf_string) + + return path def main(): @@ -18,11 +66,9 @@ def main(): kickstart = fields["kickstart"] buildid = fields.get("buildid") or 'prerelease' name = fields["name"] - timeout = '90m' - starttime = fields.get("starttime") or datetime.now() image_pub_path = fields.get("images_path") image_dest_path = image_pub_path.replace(\ - os.getenv('IMG_PUB_PATH_BASE'), os.getenv('IMG_DEST_PATH_BASE')) + os.getenv('IMG_PUB_PATH_BASE','_NULL_'), os.getenv('IMG_DEST_PATH_BASE','_NULL_')) except KeyError, e: print 'Lost field: %s' % str(e) @@ -38,13 +84,14 @@ def main(): with open(ks_path, 'w') as ks_fh: ks_fh.write(kickstart) + # Temp configuration + kvmic_conf = gen_kvmic_conf() print 'starting kvmic instance to create image...' - kvmic_cmd = "/usr/bin/kvmic -b %s -k %s -d %s -T %s" %(buildid, - ks_path, - output_path, - timeout) - print kvmic_cmd - + kvmic_cmd = "/usr/bin/kvmic -b %s -k %s -d %s -T %s -c %s" %(buildid, + ks_path, + output_path, + '20m', + kvmic_conf) ret = subprocess.call(kvmic_cmd, stdout=sys.stdout, stderr=sys.stderr, @@ -54,15 +101,12 @@ def main(): status = {0: 'ok', 1: 'failed', 2: 'timeout'}[ret] except KeyError: status = 'kvmic runtime error' - - if not os.path.isdir(image_dest_path): - os.makedirs(image_dest_path) - - os.system('mv %s/%s/images/* %s/' %(output_path, buildid, image_dest_path)) + os.unlink(kvmic_conf) print 'kvmic quit, with status: %s' % status + return ret if __name__ == "__main__": - main() + sys.exit(main())