def check_values (self, values, args): def seen(option): return option in self.option_seen def usedTooNew(option): return option.introduced and option.introduced > self.version def usedDeprecated(option): return option.deprecated def usedRemoved(option): return option.removed and option.removed <= self.version for option in [o for o in self.option_list if isinstance(o, Option)]: if option.required and not seen(option): raise KickstartValueError(formatErrorMsg(self.lineno, _("Option %s is required") % option)) elif seen(option) and usedTooNew(option): mapping = {"option": option, "intro": versionToString(option.introduced), "version": versionToString(self.version)} self.error(_("The %(option)s option was introduced in version %(intro)s, but you are using kickstart syntax version %(version)s.") % mapping) elif seen(option) and usedRemoved(option): mapping = {"option": option, "removed": versionToString(option.removed), "version": versionToString(self.version)} if option.removed == self.version: self.error(_("The %(option)s option is no longer supported.") % mapping) else: self.error(_("The %(option)s option was removed in version %(removed)s, but you are using kickstart syntax version %(version)s.") % mapping) elif seen(option) and usedDeprecated(option) and self.version >= option.deprecated: mapping = {"lineno": self.lineno, "option": option} warnings.warn(_("Ignoring deprecated option on line %(lineno)s: The %(option)s option has been deprecated and no longer has any effect. It may be removed from future releases, which will result in a fatal error from kickstart. Please modify your kickstart file to remove this option.") % mapping, DeprecationWarning) return (values, args)
def _parse_optional(self, arg_string): def usedTooNew(action): return action.introduced and action.introduced > self.version def usedRemoved(action): return action.removed and action.removed <= self.version option_tuple = ArgumentParser._parse_optional(self, arg_string) if option_tuple is None or option_tuple[0] is None: return option_tuple action = option_tuple[0] if usedTooNew(action): mapping = {"option": action.option_strings[0], "intro": versionToString(action.introduced), "version": versionToString(self.version)} self.error(_("The %(option)s option was introduced in version %(intro)s, but you are using kickstart syntax version %(version)s.") % mapping) elif usedRemoved(action): mapping = {"option": action.option_strings[0], "removed": versionToString(action.removed), "version": versionToString(self.version)} if action.removed == self.version: self.error(_("The %(option)s option is no longer supported.") % mapping) else: self.error(_("The %(option)s option was removed in version %(removed)s, but you are using kickstart syntax version %(version)s.") % mapping) elif action.deprecated == True or (self.version and self.version >= action.deprecated): mapping = {"lineno": self.lineno, "option": action.option_strings[0]} warnings.warn(_("Ignoring deprecated option on line %(lineno)s: The %(option)s option has been deprecated and no longer has any effect. It may be removed from future releases, which will result in a fatal error from kickstart. Please modify your kickstart file to remove this option.") % mapping, DeprecationWarning) return option_tuple
def __str__(self): """Return a string formatted for output to a kickstart file.""" retval = "" if self.platform != "": retval += "#platform=%s\n" % self.platform retval += "#version=%s\n" % versionToString(self.version) lst = list(self._writeOrder.keys()) lst.sort() for prio in lst: for obj in self._writeOrder[prio]: obj_str = obj.__str__() if isinstance(obj_str, six.text_type) and not six.PY3: obj_str = obj_str.encode("utf-8") retval += obj_str for script in self.scripts: script_str = script.__str__() if isinstance(script_str, six.text_type) and not six.PY3: script_str = script_str.encode("utf-8") retval += script_str retval += self.packages.__str__() return retval
def __str__(self): """Return a string formatted for output to a kickstart file.""" retval = "" if self.platform: retval += "#platform=%s\n" % self.platform retval += "#version=%s\n" % versionToString(self.version) lst = list(self._writeOrder.keys()) lst.sort() for prio in lst: for obj in self._writeOrder[prio]: obj_str = obj.__str__() if isinstance(obj_str, six.text_type) and not six.PY3: obj_str = obj_str.encode("utf-8") retval += obj_str for script in self.scripts: script_str = script.__str__() if isinstance(script_str, six.text_type) and not six.PY3: script_str = script_str.encode("utf-8") retval += script_str retval += self.packages.__str__() return retval
def __str__(self): """Return a string formatted for output to a kickstart file.""" retval = "" if self.platform: retval += "#platform=%s\n" % self.platform retval += "#version=%s\n" % versionToString(self.version) retval += KickstartHandler.__str__(self) for script in self.scripts: script_str = script.__str__() if isinstance(script_str, six.text_type) and not six.PY3: script_str = script_str.encode("utf-8") retval += script_str if self._null_section_strings: retval += "\n" for s in self._null_section_strings: retval += s retval += self.packages.__str__() return retval
def __str__(self): """Return a string formatted for output to a kickstart file.""" retval = "" if self.platform != "": retval += "#platform=%s\n" % self.platform retval += "#version=%s\n" % versionToString(self.version) lst = self._writeOrder.keys() lst.sort() for prio in lst: for obj in self._writeOrder[prio]: retval += obj.__str__() for script in self.scripts: retval += script.__str__() retval += self.packages.__str__() return retval
def __str__(self): """Return a string formatted for output to a kickstart file.""" retval = "# Generated by pykickstart v%s\n" % __version__ if self.platform: retval += "#platform=%s\n" % self.platform retval += "#version=%s\n" % versionToString(self.version) retval += KickstartHandler.__str__(self) for script in self.scripts: retval += script.__str__() if self._null_section_strings: retval += "\n" for s in self._null_section_strings: retval += s retval += self.packages.__str__() return retval
def writeKS(self, filename): f = open(filename, "w") f.write("# Kickstart file automatically generated by anaconda.\n\n") f.write("#version=%s\n" % versionToString(RHEL6)) if self.upgrade: f.write("upgrade\n") else: f.write("install\n") m = None if self.anaconda.methodstr: m = self.anaconda.methodstr elif self.anaconda.stage2: m = self.anaconda.stage2 if m: if m.startswith("cdrom:"): f.write("cdrom\n") elif m.startswith("hd:"): if m.count(":") == 3: (part, fs, dir) = string.split(m[3:], ":") else: (part, dir) = string.split(m[3:], ":") f.write("harddrive --partition=%s --dir=%s\n" % (part, dir)) elif m.startswith("nfs:") or m.startswith("nfsiso:"): if m.count(":") == 3: (method, opts, server, dir) = m.split(":") f.write("nfs --server=%s --opts=%s --dir=%s\n" % (server, opts, dir)) else: (method, server, dir) = m.split(":") f.write("nfs --server=%s --dir=%s\n" % (server, dir)) elif m.startswith("ftp://") or m.startswith("http"): ssl = "" if flags.noverifyssl: ssl = " --noverifyssl" f.write("url --url=%s%s\n" % (urllib.unquote(m), ssl)) self.instLanguage.writeKS(f) if not self.isHeadless: self.keyboard.writeKS(f) self.network.writeKS(f) if self.rootPassword["isCrypted"]: args = " --iscrypted %s" % self.rootPassword["password"] else: args = " --iscrypted %s" % users.cryptPassword( self.rootPassword["password"], algo=self.getPassAlgo()) if self.rootPassword["lock"]: args += " --lock" f.write("rootpw %s\n" % args) # Some kickstart commands do not correspond to any anaconda UI # component. If this is a kickstart install, we need to make sure # the information from the input file ends up in the output file. if self.anaconda.isKickstart: f.write(self.ksdata.user.__str__()) f.write(self.ksdata.services.__str__()) f.write(self.ksdata.reboot.__str__()) self.firewall.writeKS(f) if self.auth.strip() != "": f.write("authconfig %s\n" % self.auth) self.security.writeKS(f) self.timezone.writeKS(f) self.bootloader.writeKS(f) self.storage.writeKS(f) if self.backend is not None: self.backend.writeKS(f) self.backend.writePackagesKS(f, self.anaconda) # Also write out any scripts from the input ksfile. if self.anaconda.isKickstart: for s in self.ksdata.scripts: f.write(s.__str__()) # make it so only root can read, could have password os.chmod(filename, 0600)
def writeKS(self, filename): import urllib from pykickstart.version import versionToString, DEVEL from flags import flags f = open(filename, "w") f.write("# Kickstart file automatically generated by anaconda.\n\n") f.write("#version=%s\n" % versionToString(DEVEL)) if self.upgrade: f.write("upgrade\n") else: f.write("install\n") m = None if self.methodstr: m = self.methodstr elif self.stage2: m = self.stage2 if m: if m.startswith("cdrom:"): f.write("cdrom\n") elif m.startswith("hd:"): if m.count(":") == 3: (part, fs, dir) = string.split(m[3:], ":") else: (part, dir) = string.split(m[3:], ":") f.write("harddrive --partition=%s --dir=%s\n" % (part, dir)) elif m.startswith("nfs:"): if m.count(":") == 3: (opts, server, dir) = string.split(m[4:], ":") f.write("nfs --server=%s --opts=%s --dir=%s\n" % (server, opts, dir)) else: (server, dir) = string.split(m[4:], ":") f.write("nfs --server=%s --dir=%s\n" % (server, dir)) elif m.startswith("ftp://") or m.startswith("http"): ssl = "" if flags.noverifyssl: ssl = " --noverifyssl" f.write("url --url=%s%s\n" % (urllib.unquote(m), ssl)) # Some kickstart commands do not correspond to any anaconda UI # component. If this is a kickstart install, we need to make sure # the information from the input file ends up in the output file. if self.ksdata: f.write(self.ksdata.user.__str__()) f.write(self.ksdata.services.__str__()) f.write(self.ksdata.reboot.__str__()) self.instLanguage.writeKS(f) if not self.isHeadless: self.keyboard.writeKS(f) self.network.writeKS(f) self.timezone.writeKS(f) self.users.writeKS(f) self.security.writeKS(f) self.firewall.writeKS(f) self.storage.writeKS(f) self.bootloader.writeKS(f) if self.backend: self.backend.writeKS(f) self.backend.writePackagesKS(f, self) # Also write out any scripts from the input ksfile. if self.ksdata: for s in self.ksdata.scripts: f.write(s.__str__()) # make it so only root can read, could have password os.chmod(filename, 0600)
def writeKS(self, filename): f = open(filename, "w") f.write("# Kickstart file automatically generated by anaconda.\n\n") f.write("#version=%s\n" % versionToString(RHEL6)) if self.upgrade: f.write("upgrade\n") else: f.write("install\n") m = None if self.anaconda.methodstr: m = self.anaconda.methodstr elif self.anaconda.stage2: m = self.anaconda.stage2 if m: if m.startswith("cdrom:"): f.write("cdrom\n") elif m.startswith("hd:"): if m.count(":") == 3: (part, fs, dir) = string.split(m[3:], ":") else: (part, dir) = string.split(m[3:], ":") f.write("harddrive --partition=%s --dir=%s\n" % (part, dir)) elif m.startswith("nfs:") or m.startswith("nfsiso:"): if m.count(":") == 3: (method, opts, server, dir) = m.split(":") f.write("nfs --server=%s --opts=%s --dir=%s\n" % (server, opts, dir)) else: (method, server, dir) = m.split(":") f.write("nfs --server=%s --dir=%s\n" % (server, dir)) elif m.startswith("ftp://") or m.startswith("http"): ssl = "" if flags.noverifyssl: ssl = " --noverifyssl" f.write("url --url=%s%s\n" % (urllib.unquote(m), ssl)) self.instLanguage.writeKS(f) if not self.isHeadless: self.keyboard.writeKS(f) self.network.writeKS(f) if self.rootPassword["isCrypted"]: args = " --iscrypted %s" % self.rootPassword["password"] else: args = " --iscrypted %s" % users.cryptPassword(self.rootPassword["password"], algo=self.getPassAlgo()) if self.rootPassword["lock"]: args += " --lock" f.write("rootpw %s\n" % args) # Some kickstart commands do not correspond to any anaconda UI # component. If this is a kickstart install, we need to make sure # the information from the input file ends up in the output file. if self.anaconda.isKickstart: f.write(self.ksdata.user.__str__()) f.write(self.ksdata.services.__str__()) f.write(self.ksdata.reboot.__str__()) self.firewall.writeKS(f) if self.auth.strip() != "": f.write("authconfig %s\n" % self.auth) self.security.writeKS(f) self.timezone.writeKS(f) self.bootloader.writeKS(f) self.storage.writeKS(f) if self.backend is not None: self.backend.writeKS(f) self.backend.writePackagesKS(f, self.anaconda) # abiquo kickstarts self.abiquo.writeKS(f) self.abiquo_rs.writeKS(f) # Also write out any scripts from the input ksfile. if self.anaconda.isKickstart: for s in self.ksdata.scripts: f.write(s.__str__()) # make it so only root can read, could have password os.chmod(filename, 0600)
def writeKS(self, filename): import urllib from pykickstart.version import versionToString, DEVEL f = open(filename, "w") f.write("# Kickstart file automatically generated by anaconda.\n\n") f.write("#version=%s\n" % versionToString(DEVEL)) if self.upgrade: f.write("upgrade\n") else: f.write("install\n") m = None if self.methodstr: m = self.methodstr elif self.stage2: m = self.stage2 if m: if m.startswith("cdrom:"): f.write("cdrom\n") elif m.startswith("hd:"): if m.count(":") == 3: (part, fs, dir) = string.split(m[3:], ":") else: (part, dir) = string.split(m[3:], ":") f.write("harddrive --partition=%s --dir=%s\n" % (part, dir)) elif m.startswith("nfs:"): if m.count(":") == 3: (opts, server, dir) = string.split(m[4:], ":") f.write("nfs --server=%s --opts=%s --dir=%s\n" % (server, opts, dir)) else: (server, dir) = string.split(m[4:], ":") f.write("nfs --server=%s --dir=%s\n" % (server, dir)) elif m.startswith("ftp://") or m.startswith("http"): f.write("url --url=%s\n" % urllib.unquote(m)) # Some kickstart commands do not correspond to any anaconda UI # component. If this is a kickstart install, we need to make sure # the information from the input file ends up in the output file. if self.ksdata: f.write(self.ksdata.user.__str__()) f.write(self.ksdata.services.__str__()) f.write(self.ksdata.reboot.__str__()) self.instLanguage.writeKS(f) if not self.isHeadless: self.keyboard.writeKS(f) self.network.writeKS(f) self.timezone.writeKS(f) self.users.writeKS(f) self.security.writeKS(f) self.firewall.writeKS(f) self.storage.writeKS(f) self.bootloader.writeKS(f) if self.backend: self.backend.writeKS(f) self.backend.writePackagesKS(f, self) # Also write out any scripts from the input ksfile. if self.ksdata: for s in self.ksdata.scripts: f.write(s.__str__()) # make it so only root can read, could have password os.chmod(filename, 0600)