/[smeserver]/cdrom.image/sme7/updates/smeupgradeclass.py
ViewVC logotype

Contents of /cdrom.image/sme7/updates/smeupgradeclass.py

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download) (as text)
Thu Aug 26 22:09:11 2010 UTC (13 years, 8 months ago) by slords
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +2 -2 lines
Content type: text/x-python
Installer classes cleanup to fix dmraid crashes

1 from installclass import BaseInstallClass
2 from rhpl.translate import N_, _
3 from rhpl.log import log
4 from constants import *
5
6 import os
7 import iutil
8 import string
9 import security
10
11 class Script:
12 def __repr__(self):
13 str = ("(s: '%s' i: %s c: %d)") % \
14 (self.script, self.interp, self.inChroot)
15 return string.replace(str, "\n", "|")
16
17 def __init__(self, script, interp, inChroot, logfile = None):
18 self.script = script
19 self.interp = interp
20 self.inChroot = inChroot
21 self.logfile = logfile
22
23 def run(self, chroot, serial):
24 scriptRoot = "/"
25 if self.inChroot:
26 scriptRoot = chroot
27
28 path = scriptRoot + "/tmp/sme-script"
29
30 f = open(path, "w")
31 f.write(self.script)
32 f.close()
33 os.chmod(path, 0700)
34
35 if self.logfile is not None:
36 messages = self.logfile
37 elif serial:
38 messages = "/tmp/sme-script.log"
39 else:
40 messages = "/dev/tty3"
41
42 rc = iutil.execWithRedirect(self.interp,
43 [self.interp,"/tmp/sme-script"],
44 stdout = messages, stderr = messages,
45 root = scriptRoot)
46
47 if rc != 0:
48 log("WARNING - Error code %s encountered running a sme script", rc)
49
50 os.unlink(path)
51
52 class InstallClass(BaseInstallClass):
53 name = N_("Upgrade Existing System")
54 pixmap = "upgrade.png"
55 sortPriority = 999999
56
57 parentClass = ( _("Upgrade"), "upgrade.png" )
58
59 def requiredDisplayMode(self):
60 return 't'
61
62 def setSteps(self, dispatch):
63 dispatch.setStepList(
64 "language",
65 "keyboard",
66 "installtype",
67 "findrootparts",
68 "findinstall",
69 "partitionobjinit",
70 "upgrademount",
71 "upgradecontinue",
72 "upgrademigfind",
73 "upgrademigratefs",
74 "readcomps",
75 "findpackages",
76 "checkdeps",
77 "dependencies",
78 "install",
79 "migratefilesystems",
80 "preinstallconfig",
81 "installpackages",
82 "postinstallconfig",
83 "instbootloader",
84 "copylogs",
85 "dopostaction",
86 "methodcomplete",
87 "complete"
88 )
89
90 if iutil.getPPCMachine() == "iSeries":
91 dispatch.skipStep("bootloadersetup", skip = 0)
92
93 if iutil.getArch() != "i386" and iutil.getArch() != "x86_64":
94 dispatch.skipStep("bootloader")
95 dispatch.skipStep("bootloaderadvanced")
96
97 if iutil.getArch() != "i386" and iutil.getArch() != "x86_64":
98 dispatch.skipStep("upgbootloader")
99
100 def postAction(self, rootPath, serial, intf):
101 win = intf.waitWindow(_("Post Upgrade Script"),
102 _("The post upgrade script is running..."))
103
104 script = ( "/sbin/syslogd &\n"
105 "sleep 2\n"
106 "/sbin/e-smith/signal-event post-upgrade\n" )
107 s = Script(script, interp="/bin/sh", inChroot=1)
108 log("%s", s)
109 s.run(rootPath, serial)
110 win.pop()
111
112 def setInstallData(self, id):
113 BaseInstallClass.setInstallData(self, id)
114 id.upgrade.set(1)
115
116 def __init__(self, expert):
117 BaseInstallClass.__init__(self, expert)

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed