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

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

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


Revision 1.1 - (hide annotations) (download) (as text)
Sat Jun 6 23:51:54 2009 UTC (15 years, 5 months ago) by slords
Branch: MAIN
Content type: text/x-python
Split trees

1 slords 1.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     "upgrademigfind",
72     "upgrademigratefs",
73     "upgradecontinue",
74     "readcomps",
75     "findpackages",
76     "checkdeps",
77     "dependencies",
78     "install",
79     "migratefilesystems",
80     "preinstallconfig",
81     "installpackages",
82     "postinstallconfig",
83     "instbootloader",
84     "dopostaction",
85     "methodcomplete",
86     "copylogs",
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