#!/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():
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)
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,
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())