summaryrefslogtreecommitdiffstats
path: root/instdata.py
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2001-06-20 04:39:53 +0000
committerMatt Wilson <msw@redhat.com>2001-06-20 04:39:53 +0000
commitc4249bbe06e028e95f6514adb7f90ae11ab3b43b (patch)
tree408350beb14885893b86938d27a46688c4986003 /instdata.py
parent8a566ec58b79dc8c583a4610a27a5182b31bacb8 (diff)
downloadanaconda-c4249bbe06e028e95f6514adb7f90ae11ab3b43b.tar.gz
anaconda-c4249bbe06e028e95f6514adb7f90ae11ab3b43b.tar.xz
anaconda-c4249bbe06e028e95f6514adb7f90ae11ab3b43b.zip
merge dispatch to HEAD
Diffstat (limited to 'instdata.py')
-rw-r--r--instdata.py143
1 files changed, 143 insertions, 0 deletions
diff --git a/instdata.py b/instdata.py
new file mode 100644
index 000000000..fa19390c0
--- /dev/null
+++ b/instdata.py
@@ -0,0 +1,143 @@
+import language
+import kbd
+import network
+import firewall
+import timezone
+import desktop
+import users
+import fsset
+import partitioning
+import bootloader
+from simpleconfig import SimpleConfigFile
+from translate import _
+
+class Boolean:
+ def set(self, val):
+ self.val = val
+
+ def get(self):
+ return self.val
+
+ def __init__(self, val = 0):
+ self.val = val
+
+# Collector class for all data related to an install/upgrade.
+
+class InstallData:
+
+ def reset(self):
+ # Reset everything except:
+ #
+ # - The mouse
+ # - The install language
+ # - The keyboard
+
+ self.langSupport = language.Language(0)
+ self.instClass = None
+ self.network = network.Network()
+ self.firewall = firewall.Firewall()
+ self.timezone = timezone.Timezone()
+ self.accounts = users.Accounts()
+ self.rootPassword = users.RootPassword ()
+ self.auth = users.Authentication()
+ self.desktop = desktop.Desktop()
+ self.hdList = None
+ self.comps = None
+ self.upgrade = Boolean()
+ self.fsset.reset()
+ self.diskset = partitioning.DiskSet()
+ self.partrequests = partitioning.PartitionRequests(self.diskset)
+ self.bootloader = bootloader.x86BootloaderInfo()
+
+ def setInstallProgressClass(self, c):
+ self.instProgress = c
+
+ # expects a Mouse object
+ def setMouse(self, mouse):
+ self.mouse = mouse
+
+ # expects a VideoCardInfo object
+ def setVideoCard(self, video):
+ self.videocard = video
+
+ # expects a Monitor object
+ def setMonitor(self, monitor):
+ self.monitor = monitor
+
+ # expects a XF86Config object
+ def setXconfig(self, xconfig):
+ self.xconfig = xconfig
+
+ def write(self, instPath):
+ self.langSupport.write (instPath)
+ self.mouse.write(instPath)
+ self.keyboard.write (instPath)
+ self.network.write (instPath)
+ self.auth.write (instPath)
+ self.firewall.write (instPath)
+ self.rootPassword.write (instPath, self.auth)
+ self.accounts.write (instPath, self.auth)
+ self.desktop.write (instPath)
+ self.fsset.write (instPath)
+
+ def writeKS(self, filename):
+ # make it so only root can read, could have password
+ f = open(filename, "w", 0600)
+
+ f.write("# Kickstart file automatically generated by anaconda.\n\n")
+ if self.upgrade.get():
+ f.write("upgrade\n");
+ else:
+ f.write("install\n");
+
+ self.instLanguage.writeKS(f)
+ self.langSupport.writeKS(f)
+ self.keyboard.writeKS(f)
+ self.mouse.writeKS(f)
+ self.xconfig.writeKS(f)
+ self.network.writeKS(f)
+ self.rootPassword.writeKS(f)
+ self.firewall.writeKS(f)
+ self.auth.writeKS(f)
+ self.timezone.writeKS(f)
+
+ f.write("\n%packages\n")
+ packages = {}
+ for comp in self.comps:
+ if comp.isSelected():
+ if comp.isSelected(justManual = 1) and comp.name != "Base":
+ f.write("@ %s\n" % comp.name)
+
+ for pkg in comp.packages():
+ packages[pkg] = 1
+
+ for pkg in self.hdList.values():
+ if not packages.has_key(pkg) and pkg.isSelected():
+ f.write("%s\n" % pkg.name)
+ if pkg.wasForcedOff():
+ f.write("-%s\n" %(pkg.name))
+
+ f.write("\n%post\n")
+ self.accounts.writeKScommands(f, self.auth)
+
+ # XXX
+ #self.monitor
+ #self.mouse
+ #self.videoCard
+ #self.fstab
+ #self.desktop
+ #
+
+
+ def __init__(self, extraModules):
+ self.instLanguage = language.InstallTimeLanguage()
+ self.keyboard = kbd.Keyboard()
+
+ self.mouse = None
+ self.monitor = None
+ self.videocard = None
+ self.xconfig = None
+ self.extraModules = extraModules
+ self.fsset = fsset.FileSystemSet()
+
+ self.reset()