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

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

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


Revision 1.5 - (show annotations) (download) (as text)
Tue Sep 20 14:16:48 2005 UTC (18 years, 8 months ago) by cbrady
Branch: MAIN
Changes since 1.4: +5 -1 lines
Content type: text/x-python
Add message screen to announce post installation/update scripts running.

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 string
8 import iutil
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 "findrootparts",
67 "findinstall",
68 "installtype",
69 "partitionobjinit",
70 "upgrademount",
71 "upgrademigfind",
72 "upgrademigratefs",
73 "upgradecontinue",
74 "bootloadersetup",
75 "readcomps",
76 "findpackages",
77 "checkdeps",
78 "dependencies",
79 "install",
80 "migratefilesystems",
81 "preinstallconfig",
82 "installpackages",
83 "postinstallconfig",
84 "instbootloader",
85 "dopostaction",
86 "methodcomplete",
87 "copylogs",
88 "complete"
89 )
90
91 def postAction(self, rootPath, serial, intf):
92 win = intf.waitWindow(_("Post Upgrade Script"),
93 _("The post upgrade script is running..."))
94
95 script = ( "/sbin/syslogd &\n"
96 "sleep 2\n"
97 "/sbin/e-smith/signal-event post-upgrade\n" )
98 s = Script(script, interp="/bin/sh", inChroot=1)
99 log("%s", s)
100 s.run(rootPath, serial)
101 win.pop()
102
103 def setInstallData(self, id):
104 BaseInstallClass.setInstallData(self, id)
105 id.upgrade.set(1)
106
107 def __init__(self, expert):
108 BaseInstallClass.__init__(self, expert)

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