/[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.10 - (show annotations) (download) (as text)
Fri Jun 9 05:28:20 2006 UTC (18 years, 5 months ago) by gordonr
Branch: MAIN
CVS Tags: SME7
Branch point for: SME8
Changes since 1.9: +0 -0 lines
Content type: text/x-python
Re-add smeupgradeclass.py - special to SME Server

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 "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 if iutil.getPPCMachine() == "iSeries":
92 dispatch.skipStep("bootloadersetup", skip = 0)
93
94 if iutil.getArch() != "i386" and iutil.getArch() != "x86_64":
95 dispatch.skipStep("bootloader")
96 dispatch.skipStep("bootloaderadvanced")
97
98 if iutil.getArch() != "i386" and iutil.getArch() != "x86_64":
99 dispatch.skipStep("upgbootloader")
100
101 def postAction(self, rootPath, serial, intf):
102 win = intf.waitWindow(_("Post Upgrade Script"),
103 _("The post upgrade script is running..."))
104
105 script = ( "/sbin/syslogd &\n"
106 "sleep 2\n"
107 "/sbin/e-smith/signal-event post-upgrade\n" )
108 s = Script(script, interp="/bin/sh", inChroot=1)
109 log("%s", s)
110 s.run(rootPath, serial)
111 win.pop()
112
113 def setInstallData(self, id):
114 BaseInstallClass.setInstallData(self, id)
115 id.upgrade.set(1)
116
117 def __init__(self, expert):
118 BaseInstallClass.__init__(self, expert)

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