summaryrefslogtreecommitdiff
path: root/scripts/lib/mic/kickstart/custom_commands
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/mic/kickstart/custom_commands')
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/__init__.py12
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/desktop.py95
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/installerfw.py63
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/micboot.py49
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/micrepo.py127
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/partition.py57
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