/[smeserver]/cdrom.image/product/installclasses/smeserver.py
ViewVC logotype

Annotation of /cdrom.image/product/installclasses/smeserver.py

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


Revision 1.2 - (hide annotations) (download) (as text)
Sat Jul 30 07:28:38 2005 UTC (19 years, 2 months ago) by slords
Branch: MAIN
Changes since 1.1: +136 -39 lines
Content type: text/x-python
First major pass as anaconda installer
- Install/Upgrade detection working
- Only screens we want are being displayed
- Raid/LVM partitioning all done for installer
- Except for post-install (run, status) install is done
- TODO: post-install script isn't running
- TODO: post-upgrade script isn't working
- TODO: raid migration for upgrades
- TODO: status message for post-{install,upgrade}

1 gordonr 1.1 from installclass import BaseInstallClass
2 slords 1.2 from autopart import getAutopartitionBoot, autoCreatePartitionRequests, autoCreateLVMPartitionRequests
3     from fsset import *
4     from rhpl.translate import N_, _
5     from rhpl.log import log
6 gordonr 1.1 from constants import *
7 slords 1.2
8 gordonr 1.1 import os
9     import iutil
10 slords 1.2 import partRequests
11     import partedUtils
12 gordonr 1.1
13     class InstallClass(BaseInstallClass):
14 slords 1.2 name = N_("Install SME Server")
15     sortPriority = 1
16 gordonr 1.1
17 slords 1.2 parentClass = ( _("SMEServer"), "" )
18 gordonr 1.1
19 slords 1.2 def requiredDisplayMode(self):
20     return 't'
21 gordonr 1.1
22     def setSteps(self, dispatch):
23 slords 1.2 dispatch.setStepList(
24     "language",
25     "keyboard",
26     "findrootparts",
27     "partitionobjinit",
28     "autopartitionexecute",
29     "partitiondone",
30     "bootloadersetup",
31     "languagesupport",
32     "timezone",
33     "readcomps",
34     "selectlangpackages",
35     "checkdeps",
36     "dependencies",
37     "install",
38     "enablefilesystems",
39     "migratefilesystems",
40     "setuptime",
41     "preinstallconfig",
42     "installpackages",
43     "postinstallconfig",
44     "writeconfig",
45     "instbootloader",
46     "dopostaction",
47     "methodcomplete",
48     "copylogs",
49     "setfilecon",
50     "complete"
51     )
52    
53     def setDefaultPartitioning(self, partitions, clear = CLEARPART_TYPE_LINUX, doClear = 1):
54     diskset = partedUtils.DiskSet()
55     drives = diskset.driveList()
56     if len(drives) > 0:
57     uniqueID = 100
58     raid1 = []
59     raid2 = []
60     (swapMin, swapMax) = iutil.swapSuggestion()
61    
62     for drive in drives:
63     filesystem = fileSystemTypeGet("software RAID")
64     request = partRequests.PartitionSpec(filesystem, drive=[drive], size=100, primary=1, format=1)
65     request.uniqueID = uniqueID
66     raid1.append(uniqueID)
67     partitions.autoPartitionRequests.append(request)
68    
69     filesystem = fileSystemTypeGet("software RAID")
70     request = partRequests.PartitionSpec(filesystem, drive=[drive], size=swapMin+1500,
71     grow=1, format=1);
72     request.uniqueID = uniqueID + 10
73     raid2.append(uniqueID + 10)
74     partitions.autoPartitionRequests.append(request)
75    
76     uniqueID = uniqueID + 1
77    
78     filesystem = fileSystemTypeGet("ext3")
79     request = partRequests.RaidRequestSpec(filesystem, mountpoint="/boot", raidminor=1,
80     raidmembers=raid1, raidlevel="RAID1", format=1, raidspares=0)
81     partitions.autoPartitionRequests.append(request)
82    
83     if len(drives) > 5:
84     raidLevel = "RAID6"
85     elif len(drives) > 2:
86     raidLevel = "RAID5"
87     else:
88     raidLevel = "RAID1"
89    
90     filesystem = fileSystemTypeGet("physical volume (LVM)")
91     request = partRequests.RaidRequestSpec(filesystem, raidmembers=raid2, raidminor=2,
92     raidlevel=raidLevel, format=1, raidspares=0)
93     request.uniqueID = 200
94     partitions.autoPartitionRequests.append(request)
95    
96     request = partRequests.VolumeGroupRequestSpec(vgname="vg_primary", physvols=[200],
97     pesize=4096, format=1)
98     request.uniqueID = 201
99     partitions.autoPartitionRequests.append(request)
100    
101     filesystem = fileSystemTypeGet("swap")
102     request = partRequests.LogicalVolumeRequestSpec(filesystem, format=1, grow=1,
103     size=swapMin, maxSizeMB=swapMax, volgroup=201, lvname="lv_swap")
104     partitions.autoPartitionRequests.append(request)
105    
106     filesystem = fileSystemTypeGet("ext3")
107     (size, maxSizeMB) = iutil.swapSuggestion()
108     request = partRequests.LogicalVolumeRequestSpec(filesystem, format=1, grow=1,
109     mountpoint="/", size=1300, volgroup=201, lvname="lv_root")
110     partitions.autoPartitionRequests.append(request)
111     else:
112     BaseInstallClass.setDefaultPartitioning(self, partitions, clear, doClear)
113    
114 gordonr 1.1 def setGroupSelection(self, grpset, intf):
115     grpset.unselectAll()
116 slords 1.2 grpset.selectGroup("Base")
117 gordonr 1.1
118 slords 1.2 def postAction(self, rootPath, serial):
119     if serial:
120     messages = "/tmp/postinstall.log"
121     else:
122     messages = "/dev/tty3"
123    
124     path = rootPath + "/tmp/postinstall.sh"
125     cmds = ["/sbin/syslogd &\n",
126     "sleep 2\n",
127     "/sbin/e-smith/signal-event post-install\n"]
128    
129     f = open(path, "w")
130     f.writelines(cmds)
131     f.close
132     os.chmod(path, 0700)
133    
134     rc = iutil.execWithRedirect("/bin/sh", ["/bin/sh", "/tmp/postinstall.sh"],
135     stdout=messages, stderr=messages, root=rootPath)
136     if rc != 0:
137     log("WARNING - Error code %s encountered running postinstall script", rc)
138     # os.unlink(path)
139    
140     def setInstallData(self, id, intf = None):
141     BaseInstallClass.setInstallData(self, id)
142     self.setSELinux(id, sel=0)
143     self.setAuthentication(id, useShadow=1, useMd5=1)
144     self.setRootPassword(id, pw="ThisIsGoingToBeDisabledAnyway", isCrypted=0)
145     self.setZeroMbr(id, zeroMbr=1)
146     self.setClearParts(id, clear=CLEARPART_TYPE_ALL, initAll=1)
147     self.setDefaultPartitioning(id.partitions, doClear=0)
148     self.setBootloader(id, useLilo=0, location="mbr", linear=1)
149 gordonr 1.1
150     def __init__(self, expert):
151 slords 1.2 BaseInstallClass.__init__(self, expert)

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