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

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

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

Revision 1.1 by slords, Sat Jul 30 07:28:39 2005 UTC Revision 1.10 by gordonr, Fri Jun 9 05:28:20 2006 UTC
# Line 1  Line 1 
1  from installclass import BaseInstallClass  from installclass import BaseInstallClass
2  from rhpl.translate import N_, _  from rhpl.translate import N_, _
3  from rhpl.log import log  from rhpl.log import log
4    from constants import *
5    
6  import os  import os
7  import iutil  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):  class InstallClass(BaseInstallClass):
53      name = N_("Upgrade Existing System")      name = N_("Upgrade Existing System")
# Line 20  class InstallClass(BaseInstallClass): Line 64  class InstallClass(BaseInstallClass):
64                      "language",                      "language",
65                      "keyboard",                      "keyboard",
66                      "findrootparts",                      "findrootparts",
67                        "findinstall",
68                        "installtype",
69                      "partitionobjinit",                      "partitionobjinit",
70                      "upgrademount",                      "upgrademount",
71                      "upgrademigfind",                      "upgrademigfind",
72                      "upgrademigratefs",                      "upgrademigratefs",
73                      "upgradecontinue",                      "upgradecontinue",
74                        "bootloadersetup",
75                      "readcomps",                      "readcomps",
76                      "findpackages",                      "findpackages",
77                      "checkdeps",                      "checkdeps",
# Line 41  class InstallClass(BaseInstallClass): Line 88  class InstallClass(BaseInstallClass):
88                      "complete"                      "complete"
89                  )                  )
90    
91      def postAction(self, rootPath, serial):          if iutil.getPPCMachine() == "iSeries":
92          if serial:              dispatch.skipStep("bootloadersetup", skip = 0)
93              messages = "/tmp/postupgrade.log"  
94          else:          if iutil.getArch() != "i386" and iutil.getArch() != "x86_64":
95              messages = "/dev/tty3"              dispatch.skipStep("bootloader")
96          args = [ "/usr/sbin/lokkit", "--quiet", "--nostart", "--selinux=disabled"]              dispatch.skipStep("bootloaderadvanced")
97    
98          try:          if iutil.getArch() != "i386" and iutil.getArch() != "x86_64":
99              iutil.execWithRedirect(args[0], args, root=rootPath,              dispatch.skipStep("upgbootloader")            
100                                     stdout=messages, stderr=messages)  
101          except RuntimeError, msg:      def postAction(self, rootPath, serial, intf):
102              log ("lokkit run failed: %s", msg)          win = intf.waitWindow(_("Post Upgrade Script"),
103          except OSError, (errno, msg):             _("The post upgrade script is running..."))
104              log ("lokkit run failed: %s", msg)  
105            script = ( "/sbin/syslogd &\n"
106          path = rootPath + "/tmp/postupgrade.sh"                     "sleep 2\n"
107          cmds = ["/sbin/syslogd &", "sleep 2", "/sbin/e-smith/signal-event post-upgrade"]                     "/sbin/e-smith/signal-event post-upgrade\n" )
108            s = Script(script, interp="/bin/sh", inChroot=1)
109          f = open(path, "w")          log("%s", s)
110          f.writelines(cmds)          s.run(rootPath, serial)
111          f.close          win.pop()
         os.chmod(path, 0700)  
   
         rc = iutil.execWithRedirect("/bin/sh", ["/bin/sh", "/tmp/postupgrade.sh"],  
                        stdout=messages, stderr=messages, root=rootPath)  
         if rc != 0:  
             log("WARNING - Error code %s encountered running postupgrade script", rc)  
         os.unlink(path)  
112    
113      def setInstallData(self, id):      def setInstallData(self, id):
114          BaseInstallClass.setInstallData(self, id)          BaseInstallClass.setInstallData(self, id)


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

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