-#!/usr/bin/python -tt
+#! /usr/bin/python2
#
# Copyright (c) 2011 Intel, Inc.
#
from mic import chroot, msger, rt_util
from mic.utils import misc, errors, fs_related, runner
from mic.imager import fs
-from mic.conf import configmgr
from mic.plugin import pluginmgr
from mic.pluginbase import ImagerPlugin
def do_create(self, args):
"""${cmd_name}: create fs image
- Usage:
- ${name} ${cmd_name} <ksfile> [OPTS]
-
- ${cmd_option_list}
"""
-
- if args is None:
- raise errors.Usage("Invalid arguments.")
-
- creatoropts = configmgr.create
- ksconf = args.ksfile
-
- if creatoropts['runtime'] == 'bootstrap':
- configmgr._ksconf = ksconf
- rt_util.bootstrap_mic()
-
- recording_pkgs = []
- if len(creatoropts['record_pkgs']) > 0:
- recording_pkgs = creatoropts['record_pkgs']
-
- if creatoropts['release'] is not None:
- if 'name' not in recording_pkgs:
- recording_pkgs.append('name')
- if 'vcs' not in recording_pkgs:
- recording_pkgs.append('vcs')
-
- configmgr._ksconf = ksconf
-
- # try to find the pkgmgr
- pkgmgr = None
- backends = pluginmgr.get_plugins('backend')
- if 'auto' == creatoropts['pkgmgr']:
- for key in configmgr.prefer_backends:
- if key in backends:
- pkgmgr = backends[key]
- break
- else:
- for key in backends.keys():
- if key == creatoropts['pkgmgr']:
- pkgmgr = backends[key]
- break
-
- if not pkgmgr:
- raise errors.CreatorError("Can't find backend: %s, "
- "available choices: %s" %
- (creatoropts['pkgmgr'],
- ','.join(backends.keys())))
+ creatoropts, pkgmgr, recording_pkgs = rt_util.prepare_create(args)
creator = fs.FsImageCreator(creatoropts, pkgmgr)
creator._include_src = args.include_src
creator.package(creatoropts["destdir"])
creator.create_manifest()
if creatoropts['release'] is not None:
- creator.release_output(ksconf, creatoropts['destdir'],
+ creator.release_output(args.ksfile, creatoropts['destdir'],
creatoropts['release'])
creator.print_outimage_info()
except errors.CreatorError:
cmd = creatoropts['run_script']
try:
runner.show(cmd)
- except OSError,err:
+ except OSError as err:
msger.warning(str(err))