from installclass import BaseInstallClass import os import iutil from autopart import autoCreatePartitionRequests from kickstart import AnacondaKSScript import types import logging log = logging.getLogger("anaconda") class FermiInstallClass(BaseInstallClass): pixmap = "workstation.png" def getPackagePaths(self, uri): rc = {} for (name, path) in self.repopaths.items(): log.info("package is %s path is %s" %(name,path,)) if not type(uri) == types.ListType: uri = [uri,] if not type(path) == types.ListType: path = [path,] lst = [] for i in uri: for p in path: lst.append("%s/%s" % (i, p)) rc[name] = lst log.info("package paths is %s" %(rc,)) return rc def setGroupSelection(self, grpset, intf): BaseInstallClass.__init__(self, grpset) grpset.unselectAll() def postAction(self, rootPath, serial): log.info("Not Running post.sh script for workgroup now") # for script in self.postScripts: # AnacondaKSScript.run(rootPath, serial) def getFermiTextFile(self, filename): file = "" # fullfilename = todo.method.getFilename(filename,None) # fullfilename = "/mnt/source/" + filename if (os.access('/mnt/source/RHupdates/fermi',os.R_OK)): fullfilename = "/mnt/source/RHupdates/fermi/" + filename else: if (os.access('/tmp/updates/fermi',os.R_OK)): fullfilename = "/tmp/updates/fermi/" + filename else: fullfilename = "/usr/lib/anaconda/fermi/" + filename log.debug("Set fullfilename to: %s", fullfilename) for n in open(fullfilename).readlines(): file = file + n # log.debug("Just read %s into file", fullfilename) return file def setInstallData(self, anaconda): anaconda.id.reset(anaconda) anaconda.id.instClass = self anaconda.id.partitions.useAutopartitioning = 0 anaconda.id.partitions.autoClearPartType = -1 autorequests = [ ("/", None, 5000, None, 0, 1) ] (minswap, maxswap) = iutil.swapSuggestion() self.setTimezoneInfo( anaconda.id ,"America/Chicago") # self.setFirewall( id, enable = 1, trusts = [], ports = "") self.setAuthentication( anaconda.id , "--useshadow --enablemd5 --enablekrb5 --krb5realm=FNAL.GOV --krb5kdc=krb-fnal-1.fnal.gov:88,krb-fnal-2.fnal.gov:88,krb-fnal-3.fnal.gov:88,krb-fnal-4.fnal.gov:88,krb-fnal-5.fnal.gov:88 --krb5adminserver=krb-fnal-admin.fnal.gov:88" ) def __init__(self, expert): BaseInstallClass.__init__(self, expert) self.repopaths = { "base": "%s/RPMS" %(productPath,) } self.repopaths["fermi"] = "%s/SITERPMS" %(productPath,) self.repopaths["fermiupdates"] = "sites/Fermi/updates/security" self.postScripts = [] scriptInterp="/bin/sh" scriptChroot=0 ferminame = "post.sh" script = self.getFermiTextFile(ferminame) # log.info("Just called Script ") # s = AnacondaKSScript(script) # self.postScripts.append(s)