from installclass import BaseInstallClass from rhpl.translate import N_, _ from rhpl.log import log import os import iutil class InstallClass(BaseInstallClass): name = N_("Upgrade Existing System") pixmap = "upgrade.png" sortPriority = 999999 parentClass = ( _("Upgrade"), "upgrade.png" ) def requiredDisplayMode(self): return 't' def setSteps(self, dispatch): dispatch.setStepList( "language", "keyboard", "findrootparts", "partitionobjinit", "upgrademount", "upgrademigfind", "upgrademigratefs", "upgradecontinue", "readcomps", "findpackages", "checkdeps", "dependencies", "install", "migratefilesystems", "preinstallconfig", "installpackages", "postinstallconfig", "instbootloader", "dopostaction", "methodcomplete", "copylogs", "complete" ) def postAction(self, rootPath, serial): if serial: messages = "/tmp/postupgrade.log" else: messages = "/dev/tty3" args = [ "/usr/sbin/lokkit", "--quiet", "--nostart", "--selinux=disabled"] try: iutil.execWithRedirect(args[0], args, root=rootPath, stdout=messages, stderr=messages) except RuntimeError, msg: log ("lokkit run failed: %s", msg) except OSError, (errno, msg): log ("lokkit run failed: %s", msg) path = rootPath + "/tmp/postupgrade.sh" cmds = ["/sbin/syslogd &", "sleep 2", "/sbin/e-smith/signal-event post-upgrade"] f = open(path, "w") f.writelines(cmds) f.close os.chmod(path, 0700) rc = iutil.execWithRedirect("/bin/sh", ["/bin/sh", "/tmp/postupgrade.sh"], stdout=messages, stderr=messages, root=rootPath) if rc != 0: log("WARNING - Error code %s encountered running postupgrade script", rc) os.unlink(path) def setInstallData(self, id): BaseInstallClass.setInstallData(self, id) id.upgrade.set(1) def __init__(self, expert): BaseInstallClass.__init__(self, expert)