2 from micng.pluginbase.imager_plugin import ImagerPlugin
3 import micng.imager as imager
4 import micng.configmgr as cfgmgr
5 import micng.utils as utils
6 import micng.utils.cmdln as cmdln
9 class LivecdPlugin(ImagerPlugin):
11 def do_options(self, parser):
12 parser.add_argument("-vid", "--volumeid", type="string", default=None, help="Specify volume id")
13 parser.add_argument("ksfile", help="kickstart file")
16 def do_create(self, args):
18 print "please specify kickstart file"
21 self.configmgr = cfgmgr.getConfigMgr()
22 self.configmgr.setProperty('ksfile', args.ksfile)
24 fs_label = utils.kickstart.build_name(
26 "%s-" % self.configmgr.name,
28 suffix = "%s-%s" %(os.uname()[4], time.strftime("%Y%m%d%H%M")))
30 creator = imager.livecd.LivecdImageCreator(
31 self.configmgr.kickstart, self.configmgr.name, fs_label)
33 creator.skip_compression = False
34 creator.skip_minimize = False
36 creator.tmpdir = self.configmgr.tmpdir
37 creator._alt_initrd_name = None
38 creator._recording_pkgs = None
39 creator._include_src = False
40 creator._local_pkgs_path = None
41 creator._genchecksum = False
42 creator.distro_name = self.configmgr.name
43 creator.image_format = "livecd"
46 utils.kickstart.resolve_groups(creator, self.configmgr.repometadata, False)
48 imgname = creator.name
51 creator.check_depend_tools()
52 creator.mount(None, self.configmgr.cache)
55 creator.configure(self.configmgr.repometadata)
57 creator.package(self.configmgr.outdir)
58 outimage = creator.outimage
60 creator.package_output("livecd", self.configmgr.outdir, "none")
61 creator.print_outimage_info()
62 outimage = creator.outimage
65 raise Exception("failed to create image : %s" % e)
71 mic_plugin = ["livecd", LivecdPlugin]