diff options
Diffstat (limited to 'scripts/lib/mic/kickstart/custom_commands')
6 files changed, 403 insertions, 0 deletions
diff --git a/scripts/lib/mic/kickstart/custom_commands/__init__.py b/scripts/lib/mic/kickstart/custom_commands/__init__.py new file mode 100644 index 0000000000..5f4c440369 --- /dev/null +++ b/scripts/lib/mic/kickstart/custom_commands/__init__.py @@ -0,0 +1,12 @@ +from desktop import Mic_Desktop +from micrepo import Mic_Repo, Mic_RepoData +from partition import Mic_Partition +from installerfw import Mic_installerfw + +__all__ = ( + "Mic_Desktop", + "Mic_Repo", + "Mic_RepoData", + "Mic_Partition", + "Mic_installerfw", +) diff --git a/scripts/lib/mic/kickstart/custom_commands/desktop.py b/scripts/lib/mic/kickstart/custom_commands/desktop.py new file mode 100644 index 0000000000..c8bd647ae3 --- /dev/null +++ b/scripts/lib/mic/kickstart/custom_commands/desktop.py @@ -0,0 +1,95 @@ +#!/usr/bin/python -tt +# +# Copyright (c) 2008, 2009, 2010 Intel, Inc. +# +# Yi Yang <yi.y.yang@intel.com> +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; version 2 of the License +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +from pykickstart.base import * +from pykickstart.errors import * +from pykickstart.options import * + +class Mic_Desktop(KickstartCommand): + def __init__(self, writePriority=0, + defaultdesktop=None, + defaultdm=None, + autologinuser=None, + session=None): + + KickstartCommand.__init__(self, writePriority) + + self.__new_version = False + self.op = self._getParser() + + self.defaultdesktop = defaultdesktop + self.autologinuser = autologinuser + self.defaultdm = defaultdm + self.session = session + + def __str__(self): + retval = "" + + if self.defaultdesktop != None: + retval += " --defaultdesktop=%s" % self.defaultdesktop + if self.session != None: + retval += " --session=\"%s\"" % self.session + if self.autologinuser != None: + retval += " --autologinuser=%s" % self.autologinuser + if self.defaultdm != None: + retval += " --defaultdm=%s" % self.defaultdm + + if retval != "": + retval = "# Default Desktop Settings\ndesktop %s\n" % retval + + return retval + + def _getParser(self): + try: + op = KSOptionParser(lineno=self.lineno) + except TypeError: + # the latest version has not lineno argument + op = KSOptionParser() + self.__new_version = True + + op.add_option("--defaultdesktop", dest="defaultdesktop", + action="store", + type="string", + nargs=1) + op.add_option("--autologinuser", dest="autologinuser", + action="store", + type="string", + nargs=1) + op.add_option("--defaultdm", dest="defaultdm", + action="store", + type="string", + nargs=1) + op.add_option("--session", dest="session", + action="store", + type="string", + nargs=1) + return op + + def parse(self, args): + if self.__new_version: + (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno) + else: + (opts, extra) = self.op.parse_args(args=args) + + if extra: + m = _("Unexpected arguments to %(command)s command: %(options)s") \ + % {"command": "desktop", "options": extra} + raise KickstartValueError, formatErrorMsg(self.lineno, msg=m) + + self._setToSelf(self.op, opts) diff --git a/scripts/lib/mic/kickstart/custom_commands/installerfw.py b/scripts/lib/mic/kickstart/custom_commands/installerfw.py new file mode 100644 index 0000000000..2466f1dc07 --- /dev/null +++ b/scripts/lib/mic/kickstart/custom_commands/installerfw.py @@ -0,0 +1,63 @@ +#!/usr/bin/python -tt +# +# Copyright (c) 2013 Intel, Inc. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; version 2 of the License +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +from pykickstart.base import * +from pykickstart.options import * + +class Mic_installerfw(KickstartCommand): + """ This class implements the "installerfw" KS option. The argument + of the option is a comman-separated list of MIC features which have to be + disabled and instead, will be done in the installer. For example, + "installerfw=extlinux" disables all the MIC code which installs extlinux to + the target images, and instead, the extlinux or whatever boot-loader will + be installed by the installer instead. + + The installer is a tool which is external to MIC, it comes from the + installation repositories and can be executed by MIC in order to perform + various configuration actions. The main point here is to make sure MIC has + no hard-wired knoledge about the target OS configuration. """ + + removedKeywords = KickstartCommand.removedKeywords + removedAttrs = KickstartCommand.removedAttrs + + def __init__(self, *args, **kwargs): + KickstartCommand.__init__(self, *args, **kwargs) + self.op = self._getParser() + self.features = kwargs.get("installerfw", None) + + def __str__(self): + retval = KickstartCommand.__str__(self) + + if self.features: + retval += "# Enable installer framework features\ninstallerfw\n" + + return retval + + def _getParser(self): + op = KSOptionParser() + return op + + def parse(self, args): + (_, extra) = self.op.parse_args(args=args, lineno=self.lineno) + + if len(extra) != 1: + msg = "Kickstart command \"installerfw\" requires one " \ + "argumet - a list of legacy features to disable" + raise KickstartValueError, formatErrorMsg(self.lineno, msg = msg) + + self.features = extra[0].split(",") + return self diff --git a/scripts/lib/mic/kickstart/custom_commands/micboot.py b/scripts/lib/mic/kickstart/custom_commands/micboot.py new file mode 100644 index 0000000000..66d1678aa7 --- /dev/null +++ b/scripts/lib/mic/kickstart/custom_commands/micboot.py @@ -0,0 +1,49 @@ +#!/usr/bin/python -tt +# +# Copyright (c) 2008, 2009, 2010 Intel, Inc. +# +# Anas Nashif +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; version 2 of the License +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +from pykickstart.base import * +from pykickstart.errors import * +from pykickstart.options import * +from pykickstart.commands.bootloader import * + +class Mic_Bootloader(F8_Bootloader): + def __init__(self, writePriority=10, appendLine="", driveorder=None, + forceLBA=False, location="", md5pass="", password="", + upgrade=False, menus=""): + F8_Bootloader.__init__(self, writePriority, appendLine, driveorder, + forceLBA, location, md5pass, password, upgrade) + + self.menus = "" + self.ptable = "msdos" + + def _getArgsAsStr(self): + ret = F8_Bootloader._getArgsAsStr(self) + + if self.menus == "": + ret += " --menus=%s" %(self.menus,) + if self.ptable: + ret += " --ptable=\"%s\"" %(self.ptable,) + return ret + + def _getParser(self): + op = F8_Bootloader._getParser(self) + op.add_option("--menus", dest="menus") + op.add_option("--ptable", dest="ptable", type="string") + return op + diff --git a/scripts/lib/mic/kickstart/custom_commands/micrepo.py b/scripts/lib/mic/kickstart/custom_commands/micrepo.py new file mode 100644 index 0000000000..b31576e400 --- /dev/null +++ b/scripts/lib/mic/kickstart/custom_commands/micrepo.py @@ -0,0 +1,127 @@ +#!/usr/bin/python -tt +# +# Copyright (c) 2008, 2009, 2010 Intel, Inc. +# +# Yi Yang <yi.y.yang@intel.com> +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; version 2 of the License +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +from pykickstart.base import * +from pykickstart.errors import * +from pykickstart.options import * +from pykickstart.commands.repo import * + +class Mic_RepoData(F8_RepoData): + + def __init__(self, baseurl="", mirrorlist=None, name="", priority=None, + includepkgs=(), excludepkgs=(), save=False, proxy=None, + proxy_username=None, proxy_password=None, debuginfo=False, + source=False, gpgkey=None, disable=False, ssl_verify="yes", + nocache=False): + kw = {} + # F8_RepoData keywords + if includepkgs: + kw['includepkgs'] = includepkgs + if excludepkgs: + kw['excludepkgs'] = excludepkgs + + #FC6_RepoData keywords + if baseurl: + kw['baseurl'] = baseurl + if mirrorlist: + kw['mirrorlist'] = mirrorlist + if name: + kw['name'] = name + + F8_RepoData.__init__(self, **kw) + self.save = save + self.proxy = proxy + self.proxy_username = proxy_username + self.proxy_password = proxy_password + self.debuginfo = debuginfo + self.disable = disable + self.source = source + self.gpgkey = gpgkey + self.ssl_verify = ssl_verify.lower() + self.priority = priority + self.nocache = nocache + + def _getArgsAsStr(self): + retval = F8_RepoData._getArgsAsStr(self) + + if self.save: + retval += " --save" + if self.proxy: + retval += " --proxy=%s" % self.proxy + if self.proxy_username: + retval += " --proxyuser=%s" % self.proxy_username + if self.proxy_password: + retval += " --proxypasswd=%s" % self.proxy_password + if self.debuginfo: + retval += " --debuginfo" + if self.source: + retval += " --source" + if self.gpgkey: + retval += " --gpgkey=%s" % self.gpgkey + if self.disable: + retval += " --disable" + if self.ssl_verify: + retval += " --ssl_verify=%s" % self.ssl_verify + if self.priority: + retval += " --priority=%s" % self.priority + if self.nocache: + retval += " --nocache" + + return retval + +class Mic_Repo(F8_Repo): + def __init__(self, writePriority=0, repoList=None): + F8_Repo.__init__(self, writePriority, repoList) + + def __str__(self): + retval = "" + for repo in self.repoList: + retval += repo.__str__() + + return retval + + def _getParser(self): + def list_cb (option, opt_str, value, parser): + for d in value.split(','): + parser.values.ensure_value(option.dest, []).append(d) + + op = F8_Repo._getParser(self) + op.add_option("--save", action="store_true", dest="save", + default=False) + op.add_option("--proxy", type="string", action="store", dest="proxy", + default=None, nargs=1) + op.add_option("--proxyuser", type="string", action="store", + dest="proxy_username", default=None, nargs=1) + op.add_option("--proxypasswd", type="string", action="store", + dest="proxy_password", default=None, nargs=1) + op.add_option("--debuginfo", action="store_true", dest="debuginfo", + default=False) + op.add_option("--source", action="store_true", dest="source", + default=False) + op.add_option("--disable", action="store_true", dest="disable", + default=False) + op.add_option("--gpgkey", type="string", action="store", dest="gpgkey", + default=None, nargs=1) + op.add_option("--ssl_verify", type="string", action="store", + dest="ssl_verify", default="yes") + op.add_option("--priority", type="int", action="store", dest="priority", + default=None) + op.add_option("--nocache", action="store_true", dest="nocache", + default=False) + return op diff --git a/scripts/lib/mic/kickstart/custom_commands/partition.py b/scripts/lib/mic/kickstart/custom_commands/partition.py new file mode 100644 index 0000000000..59a87fb486 --- /dev/null +++ b/scripts/lib/mic/kickstart/custom_commands/partition.py @@ -0,0 +1,57 @@ +#!/usr/bin/python -tt +# +# Marko Saukko <marko.saukko@cybercom.com> +# +# Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +# +# This copyrighted material is made available to anyone wishing to use, modify, +# copy, or redistribute it subject to the terms and conditions of the GNU +# General Public License v.2. This program is distributed in the hope that it +# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the +# implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +from pykickstart.commands.partition import * + +class Mic_PartData(FC4_PartData): + removedKeywords = FC4_PartData.removedKeywords + removedAttrs = FC4_PartData.removedAttrs + + def __init__(self, *args, **kwargs): + FC4_PartData.__init__(self, *args, **kwargs) + self.deleteRemovedAttrs() + self.align = kwargs.get("align", None) + self.extopts = kwargs.get("extopts", None) + self.part_type = kwargs.get("part_type", None) + + def _getArgsAsStr(self): + retval = FC4_PartData._getArgsAsStr(self) + + if self.align: + retval += " --align" + if self.extopts: + retval += " --extoptions=%s" % self.extopts + if self.part_type: + retval += " --part-type=%s" % self.part_type + + return retval + +class Mic_Partition(FC4_Partition): + removedKeywords = FC4_Partition.removedKeywords + removedAttrs = FC4_Partition.removedAttrs + + def _getParser(self): + op = FC4_Partition._getParser(self) + # The alignment value is given in kBytes. e.g., value 8 means that + # the partition is aligned to start from 8096 byte boundary. + op.add_option("--align", type="int", action="store", dest="align", + default=None) + op.add_option("--extoptions", type="string", action="store", dest="extopts", + default=None) + op.add_option("--part-type", type="string", action="store", dest="part_type", + default=None) + return op |