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

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

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


Revision 1.10 - (hide annotations) (download) (as text)
Fri Jun 9 05:28:20 2006 UTC (18 years 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 slords 1.1 from installclass import BaseInstallClass
2     from rhpl.translate import N_, _
3     from rhpl.log import log
4 slords 1.2 from constants import *
5 slords 1.1
6     import os
7 slords 1.8 import iutil
8 slords 1.2 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 slords 1.1
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 slords 1.2 "findinstall",
68     "installtype",
69 slords 1.1 "partitionobjinit",
70     "upgrademount",
71     "upgrademigfind",
72     "upgrademigratefs",
73     "upgradecontinue",
74 slords 1.2 "bootloadersetup",
75 slords 1.1 "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 slords 1.8 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 gordonr 1.7 def postAction(self, rootPath, serial, intf):
102     win = intf.waitWindow(_("Post Upgrade Script"),
103     _("The post upgrade script is running..."))
104    
105 slords 1.3 script = ( "/sbin/syslogd &\n"
106     "sleep 2\n"
107     "/sbin/e-smith/signal-event post-upgrade\n" )
108 slords 1.2 s = Script(script, interp="/bin/sh", inChroot=1)
109     log("%s", s)
110     s.run(rootPath, serial)
111 gordonr 1.7 win.pop()
112 slords 1.1
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