Example #1
0
File: Debian.py Project: helgi/oz
    def _modify_iso(self):
        """
        Method to make the boot ISO auto-boot with appropriate parameters.
        """
        self.log.debug("Modifying ISO")

        self.log.debug("Copying preseed file")
        mkdir_p(join(self.iso_contents, "preseed"))

        outname = join(self.iso_contents, "preseed", "customiso.seed")

        if self.preseed_file == generate_full_auto_path("debian-" + self.tdl.update + "-jeos.preseed"):

            def _preseed_sub(line):
                """
                Method that is called back from oz.ozutil.copy_modify_file() to
                modify preseed files as appropriate for Debian.
                """
                if re.match('d-i passwd/root-password password', line):
                    return 'd-i passwd/root-password password ' + self.rootpw + '\n'
                elif re.match('d-i passwd/root-password-again password', line):
                    return 'd-i passwd/root-password-again password ' + self.rootpw + '\n'
                else:
                    return line

            copy_modify_file(self.preseed_file, outname, _preseed_sub)
        else:
            shutil.copy(self.preseed_file, outname)

        if self.tdl.arch == "x86_64":
            installdir = "/install.amd"
        else:
            # arch == i386
            installdir = "/install.386"

        self.log.debug("Modifying isolinux.cfg")
        isolinuxcfg = join(self.iso_contents, "isolinux", "isolinux.cfg")
        with open(isolinuxcfg, 'w') as f:
            f.write("""\
default customiso
timeout 1
prompt 0
label customiso
  menu label ^Customiso
  menu default
  kernel %s/vmlinuz\
  append file=/cdrom/preseed/customiso.seed %sdebian-installer/locale=en_US console-setup/layoutcode=us netcfg/choose_interface=auto priority=critical initrd=%s/initrd.gz --
""" % (installdir, extra, installdir))
Example #2
0
File: Ubuntu.py Project: helgi/oz
    def _modify_iso(self):
        """
        Method to make the boot ISO auto-boot with appropriate parameters.
        """
        self.log.debug("Modifying ISO")

        self.log.debug("Copying preseed file")
        outname = join(self.iso_contents, "preseed", "customiso.seed")
        outdir = dirname(outname)
        mkdir_p(outdir)

        self._copy_preseed(outname)

        self.log.debug("Modifying isolinux.cfg")
        isolinuxcfg = join(self.iso_contents, "isolinux", "isolinux.cfg")
        isolinuxdir = dirname(isolinuxcfg)
        if not isdir(isolinuxdir):
            mkdir_p(isolinuxdir)
            shutil.copyfile(join(self.iso_contents, "isolinux.bin"),
                            join(isolinuxdir, "isolinux.bin"))
            shutil.copyfile(join(self.iso_contents, "boot.cat"),
                            join(isolinuxdir, "boot.cat"))
        f = open(isolinuxcfg, 'w')

        if self.tdl.update in ["5.04", "5.10"]:
            f.write("DEFAULT /install/vmlinuz\n")
            f.write("APPEND initrd=/install/initrd.gz ramdisk_size=16384 root=/dev/rd/0 rw preseed/file=/cdrom/preseed/customiso.seed debian-installer/locale=en_US kbd-chooser/method=us netcfg/choose_interface=auto keyboard-configuration/layoutcode=us debconf/priority=critical --\n")
            f.write("TIMEOUT 1\n")
            f.write("PROMPT 0\n")
        else:
            f.write("default customiso\n")
            f.write("timeout 1\n")
            f.write("prompt 0\n")
            f.write("label customiso\n")
            f.write("  menu label ^Customiso\n")
            f.write("  menu default\n")
            if isdir(join(self.iso_contents, "casper")):
                f.write("  kernel /casper/vmlinuz\n")
                f.write("  append file=/cdrom/preseed/customiso.seed boot=casper automatic-ubiquity noprompt keyboard-configuration/layoutcode=us initrd=/casper/" + self.casper_initrd + "\n")
            else:
                keyboard = "console-setup/layoutcode=us"
                if self.tdl.update == "6.06":
                    keyboard = "kbd-chooser/method=us"
                f.write("  kernel /install/vmlinuz\n")
                f.write("  append preseed/file=/cdrom/preseed/customiso.seed debian-installer/locale=en_US " + keyboard + " netcfg/choose_interface=auto keyboard-configuration/layoutcode=us priority=critical initrd=/install/initrd.gz --\n")

        f.close()