change the path of pykickstart module
authorJF Ding <jian-feng.ding@intel.com>
Fri, 19 Aug 2011 13:28:35 +0000 (21:28 +0800)
committerJF Ding <jian-feng.ding@intel.com>
Fri, 19 Aug 2011 13:28:35 +0000 (21:28 +0800)
168 files changed:
mic/__init__.py
mic/configmgr.py
mic/imager/baseimager.py
mic/imager/loop.py
mic/kickstart/__init__.py
mic/kickstart/pykickstart/__init__.py [deleted file]
mic/kickstart/pykickstart/base.py [deleted file]
mic/kickstart/pykickstart/commands/__init__.py [deleted file]
mic/kickstart/pykickstart/commands/authconfig.py [deleted file]
mic/kickstart/pykickstart/commands/autopart.py [deleted file]
mic/kickstart/pykickstart/commands/autostep.py [deleted file]
mic/kickstart/pykickstart/commands/bootloader.py [deleted file]
mic/kickstart/pykickstart/commands/clearpart.py [deleted file]
mic/kickstart/pykickstart/commands/device.py [deleted file]
mic/kickstart/pykickstart/commands/deviceprobe.py [deleted file]
mic/kickstart/pykickstart/commands/displaymode.py [deleted file]
mic/kickstart/pykickstart/commands/dmraid.py [deleted file]
mic/kickstart/pykickstart/commands/driverdisk.py [deleted file]
mic/kickstart/pykickstart/commands/fcoe.py [deleted file]
mic/kickstart/pykickstart/commands/firewall.py [deleted file]
mic/kickstart/pykickstart/commands/firstboot.py [deleted file]
mic/kickstart/pykickstart/commands/group.py [deleted file]
mic/kickstart/pykickstart/commands/ignoredisk.py [deleted file]
mic/kickstart/pykickstart/commands/interactive.py [deleted file]
mic/kickstart/pykickstart/commands/iscsi.py [deleted file]
mic/kickstart/pykickstart/commands/iscsiname.py [deleted file]
mic/kickstart/pykickstart/commands/key.py [deleted file]
mic/kickstart/pykickstart/commands/keyboard.py [deleted file]
mic/kickstart/pykickstart/commands/lang.py [deleted file]
mic/kickstart/pykickstart/commands/langsupport.py [deleted file]
mic/kickstart/pykickstart/commands/lilocheck.py [deleted file]
mic/kickstart/pykickstart/commands/logging.py [deleted file]
mic/kickstart/pykickstart/commands/logvol.py [deleted file]
mic/kickstart/pykickstart/commands/mediacheck.py [deleted file]
mic/kickstart/pykickstart/commands/method.py [deleted file]
mic/kickstart/pykickstart/commands/monitor.py [deleted file]
mic/kickstart/pykickstart/commands/mouse.py [deleted file]
mic/kickstart/pykickstart/commands/multipath.py [deleted file]
mic/kickstart/pykickstart/commands/network.py [deleted file]
mic/kickstart/pykickstart/commands/partition.py [deleted file]
mic/kickstart/pykickstart/commands/raid.py [deleted file]
mic/kickstart/pykickstart/commands/reboot.py [deleted file]
mic/kickstart/pykickstart/commands/repo.py [deleted file]
mic/kickstart/pykickstart/commands/rescue.py [deleted file]
mic/kickstart/pykickstart/commands/rootpw.py [deleted file]
mic/kickstart/pykickstart/commands/selinux.py [deleted file]
mic/kickstart/pykickstart/commands/services.py [deleted file]
mic/kickstart/pykickstart/commands/skipx.py [deleted file]
mic/kickstart/pykickstart/commands/sshpw.py [deleted file]
mic/kickstart/pykickstart/commands/timezone.py [deleted file]
mic/kickstart/pykickstart/commands/updates.py [deleted file]
mic/kickstart/pykickstart/commands/upgrade.py [deleted file]
mic/kickstart/pykickstart/commands/user.py [deleted file]
mic/kickstart/pykickstart/commands/vnc.py [deleted file]
mic/kickstart/pykickstart/commands/volgroup.py [deleted file]
mic/kickstart/pykickstart/commands/xconfig.py [deleted file]
mic/kickstart/pykickstart/commands/zerombr.py [deleted file]
mic/kickstart/pykickstart/commands/zfcp.py [deleted file]
mic/kickstart/pykickstart/constants.py [deleted file]
mic/kickstart/pykickstart/errors.py [deleted file]
mic/kickstart/pykickstart/handlers/__init__.py [deleted file]
mic/kickstart/pykickstart/handlers/control.py [deleted file]
mic/kickstart/pykickstart/handlers/f10.py [deleted file]
mic/kickstart/pykickstart/handlers/f11.py [deleted file]
mic/kickstart/pykickstart/handlers/f12.py [deleted file]
mic/kickstart/pykickstart/handlers/f13.py [deleted file]
mic/kickstart/pykickstart/handlers/f14.py [deleted file]
mic/kickstart/pykickstart/handlers/f15.py [deleted file]
mic/kickstart/pykickstart/handlers/f16.py [deleted file]
mic/kickstart/pykickstart/handlers/f7.py [deleted file]
mic/kickstart/pykickstart/handlers/f8.py [deleted file]
mic/kickstart/pykickstart/handlers/f9.py [deleted file]
mic/kickstart/pykickstart/handlers/fc3.py [deleted file]
mic/kickstart/pykickstart/handlers/fc4.py [deleted file]
mic/kickstart/pykickstart/handlers/fc5.py [deleted file]
mic/kickstart/pykickstart/handlers/fc6.py [deleted file]
mic/kickstart/pykickstart/handlers/rhel3.py [deleted file]
mic/kickstart/pykickstart/handlers/rhel4.py [deleted file]
mic/kickstart/pykickstart/handlers/rhel5.py [deleted file]
mic/kickstart/pykickstart/handlers/rhel6.py [deleted file]
mic/kickstart/pykickstart/ko.py [deleted file]
mic/kickstart/pykickstart/options.py [deleted file]
mic/kickstart/pykickstart/parser.py [deleted file]
mic/kickstart/pykickstart/sections.py [deleted file]
mic/kickstart/pykickstart/version.py [deleted file]
mic/pykickstart/__init__.py [new file with mode: 0644]
mic/pykickstart/base.py [new file with mode: 0644]
mic/pykickstart/commands/__init__.py [new file with mode: 0644]
mic/pykickstart/commands/authconfig.py [new file with mode: 0644]
mic/pykickstart/commands/autopart.py [new file with mode: 0644]
mic/pykickstart/commands/autostep.py [new file with mode: 0644]
mic/pykickstart/commands/bootloader.py [new file with mode: 0644]
mic/pykickstart/commands/clearpart.py [new file with mode: 0644]
mic/pykickstart/commands/device.py [new file with mode: 0644]
mic/pykickstart/commands/deviceprobe.py [new file with mode: 0644]
mic/pykickstart/commands/displaymode.py [new file with mode: 0644]
mic/pykickstart/commands/dmraid.py [new file with mode: 0644]
mic/pykickstart/commands/driverdisk.py [new file with mode: 0644]
mic/pykickstart/commands/fcoe.py [new file with mode: 0644]
mic/pykickstart/commands/firewall.py [new file with mode: 0644]
mic/pykickstart/commands/firstboot.py [new file with mode: 0644]
mic/pykickstart/commands/group.py [new file with mode: 0644]
mic/pykickstart/commands/ignoredisk.py [new file with mode: 0644]
mic/pykickstart/commands/interactive.py [new file with mode: 0644]
mic/pykickstart/commands/iscsi.py [new file with mode: 0644]
mic/pykickstart/commands/iscsiname.py [new file with mode: 0644]
mic/pykickstart/commands/key.py [new file with mode: 0644]
mic/pykickstart/commands/keyboard.py [new file with mode: 0644]
mic/pykickstart/commands/lang.py [new file with mode: 0644]
mic/pykickstart/commands/langsupport.py [new file with mode: 0644]
mic/pykickstart/commands/lilocheck.py [new file with mode: 0644]
mic/pykickstart/commands/logging.py [new file with mode: 0644]
mic/pykickstart/commands/logvol.py [new file with mode: 0644]
mic/pykickstart/commands/mediacheck.py [new file with mode: 0644]
mic/pykickstart/commands/method.py [new file with mode: 0644]
mic/pykickstart/commands/monitor.py [new file with mode: 0644]
mic/pykickstart/commands/mouse.py [new file with mode: 0644]
mic/pykickstart/commands/multipath.py [new file with mode: 0644]
mic/pykickstart/commands/network.py [new file with mode: 0644]
mic/pykickstart/commands/partition.py [new file with mode: 0644]
mic/pykickstart/commands/raid.py [new file with mode: 0644]
mic/pykickstart/commands/reboot.py [new file with mode: 0644]
mic/pykickstart/commands/repo.py [new file with mode: 0644]
mic/pykickstart/commands/rescue.py [new file with mode: 0644]
mic/pykickstart/commands/rootpw.py [new file with mode: 0644]
mic/pykickstart/commands/selinux.py [new file with mode: 0644]
mic/pykickstart/commands/services.py [new file with mode: 0644]
mic/pykickstart/commands/skipx.py [new file with mode: 0644]
mic/pykickstart/commands/sshpw.py [new file with mode: 0644]
mic/pykickstart/commands/timezone.py [new file with mode: 0644]
mic/pykickstart/commands/updates.py [new file with mode: 0644]
mic/pykickstart/commands/upgrade.py [new file with mode: 0644]
mic/pykickstart/commands/user.py [new file with mode: 0644]
mic/pykickstart/commands/vnc.py [new file with mode: 0644]
mic/pykickstart/commands/volgroup.py [new file with mode: 0644]
mic/pykickstart/commands/xconfig.py [new file with mode: 0644]
mic/pykickstart/commands/zerombr.py [new file with mode: 0644]
mic/pykickstart/commands/zfcp.py [new file with mode: 0644]
mic/pykickstart/constants.py [new file with mode: 0644]
mic/pykickstart/errors.py [new file with mode: 0644]
mic/pykickstart/handlers/__init__.py [new file with mode: 0644]
mic/pykickstart/handlers/control.py [new file with mode: 0644]
mic/pykickstart/handlers/f10.py [new file with mode: 0644]
mic/pykickstart/handlers/f11.py [new file with mode: 0644]
mic/pykickstart/handlers/f12.py [new file with mode: 0644]
mic/pykickstart/handlers/f13.py [new file with mode: 0644]
mic/pykickstart/handlers/f14.py [new file with mode: 0644]
mic/pykickstart/handlers/f15.py [new file with mode: 0644]
mic/pykickstart/handlers/f16.py [new file with mode: 0644]
mic/pykickstart/handlers/f7.py [new file with mode: 0644]
mic/pykickstart/handlers/f8.py [new file with mode: 0644]
mic/pykickstart/handlers/f9.py [new file with mode: 0644]
mic/pykickstart/handlers/fc3.py [new file with mode: 0644]
mic/pykickstart/handlers/fc4.py [new file with mode: 0644]
mic/pykickstart/handlers/fc5.py [new file with mode: 0644]
mic/pykickstart/handlers/fc6.py [new file with mode: 0644]
mic/pykickstart/handlers/rhel3.py [new file with mode: 0644]
mic/pykickstart/handlers/rhel4.py [new file with mode: 0644]
mic/pykickstart/handlers/rhel5.py [new file with mode: 0644]
mic/pykickstart/handlers/rhel6.py [new file with mode: 0644]
mic/pykickstart/ko.py [new file with mode: 0644]
mic/pykickstart/options.py [new file with mode: 0644]
mic/pykickstart/parser.py [new file with mode: 0644]
mic/pykickstart/sections.py [new file with mode: 0644]
mic/pykickstart/version.py [new file with mode: 0644]
mic/utils/errors.py
plugins/backend/yumpkgmgr.py
setup.py

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..92649b993e8604616b8bc5a17e748d4916da22e5 100644 (file)
@@ -0,0 +1,3 @@
+import os, sys
+
+sys.path.insert(0, os.path.dirname(__file__) or '.')
index 717a755839871a8bf1cc6194677533f081a37312..1ba75e2cf6a4bfe4c0b403ea9c3d352df6f8a979 100644 (file)
@@ -22,6 +22,7 @@ import logging
 import ConfigParser
 import mic.utils as utils
 import mic.utils.errors as errors
+from mic import kickstart
 from mic import msger
 
 DEFAULT_GSITECONF='/etc/mic/mic.conf'
@@ -75,7 +76,6 @@ class ConfigMgr(object):
     def __set_ksconf(self, ksconf):
         self.ksconf = ksconf
         self.parse_kickstart(ksconf)
-        pass
     def __get_ksconf(self):
         return self.ksconf
     _ksconf = property(__get_ksconf, __set_ksconf)
@@ -111,17 +111,17 @@ class ConfigMgr(object):
             return
 
         try:
-            kickstart = utils.kickstart.read_kickstart(ksconf)
-            ksrepos = utils.misc.get_repostrs_from_ks(kickstart)
+            ks = kickstart.read_kickstart(ksconf)
+            ksrepos = utils.misc.get_repostrs_from_ks(ks)
             msger.info("Retrieving repo metadata:")
             repometadata = utils.misc.get_metadata_from_repos(ksrepos, self.create['cachedir'])
-            msger.info("\nDONE")
+            msger.raw(" DONE")
 
-            self.create['ks'] = kickstart
+            self.create['ks'] = ks
             self.create['repomd'] = repometadata
             self.create['name'] = os.path.splitext(os.path.basename(ksconf))[0]
         except Exception, e:
-            raise errors.KickstartError("Unable to load kickstart file '%s': %s" % (ksconf, e))
+            raise errors.KsError("Unable to load kickstart file '%s': %s" % (ksconf, e))
 
     def setProperty(self, key, value):
         if not hasattr(self, key):
index 4089d101ba66056c6933fc8ff5b25fd090ad4795..a4fab4aed62c3665bbb44fb88ec225043d103fba 100644 (file)
@@ -139,8 +139,8 @@ class BaseImageCreator(object):
                 vdso_value = vdso_fh.read().strip()
                 vdso_fh.close()
                 if (int)(vdso_value) == 1:
-                    msger.warning("vdso is enabled on your host, which might cause problems with arm emulations.\n" +
-                                  "\tYou can disable vdso with following command before starting image build:\n" +
+                    msger.warning("vdso is enabled on your host, which might cause problems with arm emulations.\n"
+                                  "\tYou can disable vdso with following command before starting image build:\n"
                                   "\techo 0 | sudo tee /proc/sys/vm/vdso_enabled")
 
         return True
index bd584faefd08e0fe6169b6b02dd845354680895e..c3e111d41429333c15d92d05bdedf234f7fed26c 100644 (file)
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 import os
-import os.path
 import subprocess
-import mic.kickstart as kickstart
 from baseimager import BaseImageCreator
 from mic.utils.errors import *
 from mic.utils.fs_related import *
 from mic.utils.misc import *
+from mic import kickstart
 
 FSLABEL_MAXLEN = 32
 """The maximum string length supported for LoopImageCreator.fslabel."""
index 8e280038a7f8163bd25f54b705173cefc85a4453..9055f804f424c55ab3e4ac6d27234c550e5cc8d7 100644 (file)
@@ -28,9 +28,6 @@ from mic.utils import misc
 from mic.utils import fs_related as fs
 from mic import msger
 
-sys.path.insert(0, os.path.dirname(__file__) or '.')
-import pykickstart
-
 import pykickstart.commands as kscommands
 import pykickstart.constants as ksconstants
 import pykickstart.errors as kserrors
@@ -72,11 +69,11 @@ def read_kickstart(path):
     try:
         ks.readKickstart(path)
     except IOError, (err, msg):
-        raise errors.KickstartError("Failed to read kickstart file "
-                                    "'%s' : %s" % (path, msg))
-    except kserrors.KickstartError, e:
-        raise errors.KickstartError("Failed to parse kickstart file "
-                                    "'%s' : %s" % (path, e))
+        raise errors.KsError("Failed to read kickstart file "
+                             "'%s' : %s" % (path, msg))
+    except kserrors.KickstartParseError, e:
+        raise errors.KsError("Failed to parse kickstart file "
+                             "'%s' : %s" % (path, e))
     return ks
 
 def build_name(kscfg, prefix = None, suffix = None, maxlen = None):
@@ -136,7 +133,7 @@ class KickstartConfig(object):
     def call(self, args):
         if not os.path.exists("%s/%s" %(self.instroot, args[0])):
             msger.warning("%s/%s" %(self.instroot, args[0]))
-            raise errors.KickstartError("Unable to run %s!" %(args))
+            raise errors.KsError("Unable to run %s!" %(args))
         subprocess.call(args, preexec_fn = self.chroot)
 
     def apply(self):
@@ -179,7 +176,7 @@ class TimezoneConfig(KickstartConfig):
             shutil.copyfile(self.path("/usr/share/zoneinfo/%s" %(tz,)),
                             self.path("/etc/localtime"))
         except (IOError, OSError), (errno, msg):
-            raise errors.KickstartError("Error copying timezone info: %s" %(msg,))
+            raise errors.KsError("Error copying timezone info: %s" %(msg,))
 
 
 class AuthConfig(KickstartConfig):
@@ -216,7 +213,7 @@ class RootPasswordConfig(KickstartConfig):
     def set_unencrypted(self, password):
         for p in ("/bin/echo", "/usr/sbin/chpasswd"):
             if not os.path.exists("%s/%s" %(self.instroot, p)):
-                raise errors.KickstartError("Unable to set unencrypted password due to lack of %s" % p)
+                raise errors.KsError("Unable to set unencrypted password due to lack of %s" % p)
 
         p1 = subprocess.Popen(["/bin/echo", "root:%s" %password],
                               stdout = subprocess.PIPE,
@@ -245,7 +242,7 @@ class UserConfig(KickstartConfig):
     def set_unencrypted_passwd(self, user, password):
         for p in ("/bin/echo", "/usr/sbin/chpasswd"):
             if not os.path.exists("%s/%s" %(self.instroot, p)):
-                raise errors.KickstartError("Unable to set unencrypted password due to lack of %s" % p)
+                raise errors.KsError("Unable to set unencrypted password due to lack of %s" % p)
 
         p1 = subprocess.Popen(["/bin/echo", "%s:%s" %(user, password)],
                               stdout = subprocess.PIPE,
@@ -276,7 +273,7 @@ class UserConfig(KickstartConfig):
             else:
                 self.set_empty_passwd(userconfig.name)
         else:
-            raise errors.KickstartError("Invalid kickstart command: %s" % userconfig.__str__())
+            raise errors.KsError("Invalid kickstart command: %s" % userconfig.__str__())
 
     def apply(self, user):
         for userconfig in user.userList:
@@ -559,12 +556,12 @@ class NetworkConfig(KickstartConfig):
 
         for network in ksnet.network:
             if not network.device:
-                raise errors.KickstartError("No --device specified with "
+                raise errors.KsError("No --device specified with "
                                             "network kickstart command")
 
             if (network.onboot and network.bootProto.lower() != "dhcp" and
                 not (network.ip and network.netmask)):
-                raise errors.KickstartError("No IP address and/or netmask "
+                raise errors.KsError("No IP address and/or netmask "
                                             "specified with static "
                                             "configuration for '%s'" %
                                             network.device)
diff --git a/mic/kickstart/pykickstart/__init__.py b/mic/kickstart/pykickstart/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mic/kickstart/pykickstart/base.py b/mic/kickstart/pykickstart/base.py
deleted file mode 100644 (file)
index e6c8f56..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-Base classes for creating commands and syntax version object.
-
-This module exports several important base classes:
-
-    BaseData - The base abstract class for all data objects.  Data objects
-               are contained within a BaseHandler object.
-
-    BaseHandler - The base abstract class from which versioned kickstart
-                  handler are derived.  Subclasses of BaseHandler hold
-                  BaseData and KickstartCommand objects.
-
-    DeprecatedCommand - An abstract subclass of KickstartCommand that should
-                        be further subclassed by users of this module.  When
-                        a subclass is used, a warning message will be
-                        printed.
-
-    KickstartCommand - The base abstract class for all kickstart commands.
-                       Command objects are contained within a BaseHandler
-                       object.
-"""
-import gettext
-gettext.textdomain("pykickstart")
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-import types
-import warnings
-from pykickstart.errors import *
-from pykickstart.ko import *
-from pykickstart.parser import Packages
-from pykickstart.version import versionToString
-
-###
-### COMMANDS
-###
-class KickstartCommand(KickstartObject):
-    """The base class for all kickstart commands.  This is an abstract class."""
-    removedKeywords = []
-    removedAttrs = []
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        """Create a new KickstartCommand instance.  This method must be
-           provided by all subclasses, but subclasses must call
-           KickstartCommand.__init__ first.  Instance attributes:
-
-           currentCmd    -- The name of the command in the input file that
-                            caused this handler to be run.
-           currentLine   -- The current unprocessed line from the input file
-                            that caused this handler to be run.
-           handler       -- A reference to the BaseHandler subclass this
-                            command is contained withing.  This is needed to
-                            allow referencing of Data objects.
-           lineno        -- The current line number in the input file.
-           writePriority -- An integer specifying when this command should be
-                            printed when iterating over all commands' __str__
-                            methods.  The higher the number, the later this
-                            command will be written.  All commands with the
-                            same priority will be written alphabetically.
-        """
-
-        # We don't want people using this class by itself.
-        if self.__class__ is KickstartCommand:
-            raise TypeError, "KickstartCommand is an abstract class."
-
-        KickstartObject.__init__(self, *args, **kwargs)
-
-        self.writePriority = writePriority
-
-        # These will be set by the dispatcher.
-        self.currentCmd = ""
-        self.currentLine = ""
-        self.handler = None
-        self.lineno = 0
-
-        # If a subclass provides a removedKeywords list, remove all the
-        # members from the kwargs list before we start processing it.  This
-        # ensures that subclasses don't continue to recognize arguments that
-        # were removed.
-        for arg in filter(kwargs.has_key, self.removedKeywords):
-            kwargs.pop(arg)
-
-    def __call__(self, *args, **kwargs):
-        """Set multiple attributes on a subclass of KickstartCommand at once
-           via keyword arguments.  Valid attributes are anything specified in
-           a subclass, but unknown attributes will be ignored.
-        """
-        for (key, val) in kwargs.items():
-            # Ignore setting attributes that were removed in a subclass, as
-            # if they were unknown attributes.
-            if key in self.removedAttrs:
-                continue
-
-            if hasattr(self, key):
-                setattr(self, key, val)
-
-    def __str__(self):
-        """Return a string formatted for output to a kickstart file.  This
-           method must be provided by all subclasses.
-        """
-        return KickstartObject.__str__(self)
-
-    def parse(self, args):
-        """Parse the list of args and set data on the KickstartCommand object.
-           This method must be provided by all subclasses.
-        """
-        raise TypeError, "parse() not implemented for KickstartCommand"
-
-    def apply(self, instroot="/"):
-        """Write out the configuration related to the KickstartCommand object.
-           Subclasses which do not provide this method will not have their
-           configuration written out.
-        """
-        return
-
-    def dataList(self):
-        """For commands that can occur multiple times in a single kickstart
-           file (like network, part, etc.), return the list that we should
-           append more data objects to.
-        """
-        return None
-
-    def deleteRemovedAttrs(self):
-        """Remove all attributes from self that are given in the removedAttrs
-           list.  This method should be called from __init__ in a subclass,
-           but only after the superclass's __init__ method has been called.
-        """
-        for attr in filter(lambda k: hasattr(self, k), self.removedAttrs):
-            delattr(self, attr)
-
-    # Set the contents of the opts object (an instance of optparse.Values
-    # returned by parse_args) as attributes on the KickstartCommand object.
-    # It's useful to call this from KickstartCommand subclasses after parsing
-    # the arguments.
-    def _setToSelf(self, optParser, opts):
-        self._setToObj(optParser, opts, self)
-
-    # Sets the contents of the opts object (an instance of optparse.Values
-    # returned by parse_args) as attributes on the provided object obj.  It's
-    # useful to call this from KickstartCommand subclasses that handle lists
-    # of objects (like partitions, network devices, etc.) and need to populate
-    # a Data object.
-    def _setToObj(self, optParser, opts, obj):
-        for key in filter (lambda k: getattr(opts, k) != None, optParser.keys()):
-            setattr(obj, key, getattr(opts, key))
-
-class DeprecatedCommand(KickstartCommand):
-    """Specify that a command is deprecated and no longer has any function.
-       Any command that is deprecated should be subclassed from this class,
-       only specifying an __init__ method that calls the superclass's __init__.
-       This is an abstract class.
-    """
-    def __init__(self, writePriority=None, *args, **kwargs):
-        # We don't want people using this class by itself.
-        if self.__class__ is KickstartCommand:
-            raise TypeError, "DeprecatedCommand is an abstract class."
-
-        # Create a new DeprecatedCommand instance.
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-
-    def __str__(self):
-        """Placeholder since DeprecatedCommands don't work anymore."""
-        return ""
-
-    def parse(self, args):
-        """Print a warning message if the command is seen in the input file."""
-        mapping = {"lineno": self.lineno, "cmd": self.currentCmd}
-        warnings.warn(_("Ignoring deprecated command on line %(lineno)s:  The %(cmd)s command 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 command.") % mapping, DeprecationWarning)
-
-
-###
-### HANDLERS
-###
-class BaseHandler(KickstartObject):
-    """Each version of kickstart syntax is provided by a subclass of this
-       class.  These subclasses are what users will interact with for parsing,
-       extracting data, and writing out kickstart files.  This is an abstract
-       class.
-
-       version -- The version this syntax handler supports.  This is set by
-                  a class attribute of a BaseHandler subclass and is used to
-                  set up the command dict.  It is for read-only use.
-    """
-    version = None
-
-    def __init__(self, mapping=None, dataMapping=None, commandUpdates=None,
-                 dataUpdates=None, *args, **kwargs):
-        """Create a new BaseHandler instance.  This method must be provided by
-           all subclasses, but subclasses must call BaseHandler.__init__ first.
-
-           mapping          -- A custom map from command strings to classes,
-                               useful when creating your own handler with
-                               special command objects.  It is otherwise unused
-                               and rarely needed.  If you give this argument,
-                               the mapping takes the place of the default one
-                               and so must include all commands you want
-                               recognized.
-           dataMapping      -- This is the same as mapping, but for data
-                               objects.  All the same comments apply.
-           commandUpdates   -- This is similar to mapping, but does not take
-                               the place of the defaults entirely.  Instead,
-                               this mapping is applied after the defaults and
-                               updates it with just the commands you want to
-                               modify.
-           dataUpdates      -- This is the same as commandUpdates, but for
-                               data objects.
-
-
-           Instance attributes:
-
-           commands -- A mapping from a string command to a KickstartCommand
-                       subclass object that handles it.  Multiple strings can
-                       map to the same object, but only one instance of the
-                       command object should ever exist.  Most users should
-                       never have to deal with this directly, as it is
-                       manipulated internally and called through dispatcher.
-           currentLine -- The current unprocessed line from the input file
-                          that caused this handler to be run.
-           packages -- An instance of pykickstart.parser.Packages which
-                       describes the packages section of the input file.
-           platform -- A string describing the hardware platform, which is
-                       needed only by system-config-kickstart.
-           scripts  -- A list of pykickstart.parser.Script instances, which is
-                       populated by KickstartParser.addScript and describes the
-                       %pre/%post/%traceback script section of the input file.
-        """
-
-        # We don't want people using this class by itself.
-        if self.__class__ is BaseHandler:
-            raise TypeError, "BaseHandler is an abstract class."
-
-        KickstartObject.__init__(self, *args, **kwargs)
-
-        # This isn't really a good place for these, but it's better than
-        # everything else I can think of.
-        self.scripts = []
-        self.packages = Packages()
-        self.platform = ""
-
-        # These will be set by the dispatcher.
-        self.commands = {}
-        self.currentLine = 0
-
-        # A dict keyed by an integer priority number, with each value being a
-        # list of KickstartCommand subclasses.  This dict is maintained by
-        # registerCommand and used in __str__.  No one else should be touching
-        # it.
-        self._writeOrder = {}
-
-        self._registerCommands(mapping, dataMapping, commandUpdates, dataUpdates)
-
-    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 _insertSorted(self, lst, obj):
-        length = len(lst)
-        i = 0
-
-        while i < length:
-            # If the two classes have the same name, it's because we are
-            # overriding an existing class with one from a later kickstart
-            # version, so remove the old one in favor of the new one.
-            if obj.__class__.__name__ > lst[i].__class__.__name__:
-                i += 1
-            elif obj.__class__.__name__ == lst[i].__class__.__name__:
-                lst[i] = obj
-                return
-            elif obj.__class__.__name__ < lst[i].__class__.__name__:
-                break
-
-        if i >= length:
-            lst.append(obj)
-        else:
-            lst.insert(i, obj)
-
-    def _setCommand(self, cmdObj):
-        # Add an attribute on this version object.  We need this to provide a
-        # way for clients to access the command objects.  We also need to strip
-        # off the version part from the front of the name.
-        if cmdObj.__class__.__name__.find("_") != -1:
-            name = unicode(cmdObj.__class__.__name__.split("_", 1)[1])
-        else:
-            name = unicode(cmdObj.__class__.__name__).lower()
-
-        setattr(self, name.lower(), cmdObj)
-
-        # Also, add the object into the _writeOrder dict in the right place.
-        if cmdObj.writePriority is not None:
-            if self._writeOrder.has_key(cmdObj.writePriority):
-                self._insertSorted(self._writeOrder[cmdObj.writePriority], cmdObj)
-            else:
-                self._writeOrder[cmdObj.writePriority] = [cmdObj]
-
-    def _registerCommands(self, mapping=None, dataMapping=None, commandUpdates=None,
-                          dataUpdates=None):
-        if mapping == {} or mapping == None:
-            from pykickstart.handlers.control import commandMap
-            cMap = commandMap[self.version]
-        else:
-            cMap = mapping
-
-        if dataMapping == {} or dataMapping == None:
-            from pykickstart.handlers.control import dataMap
-            dMap = dataMap[self.version]
-        else:
-            dMap = dataMapping
-
-        if type(commandUpdates) == types.DictType:
-            cMap.update(commandUpdates)
-
-        if type(dataUpdates) == types.DictType:
-            dMap.update(dataUpdates)
-
-        for (cmdName, cmdClass) in cMap.iteritems():
-            # First make sure we haven't instantiated this command handler
-            # already.  If we have, we just need to make another mapping to
-            # it in self.commands.
-            cmdObj = None
-
-            for (key, val) in self.commands.iteritems():
-                if val.__class__.__name__ == cmdClass.__name__:
-                    cmdObj = val
-                    break
-
-            # If we didn't find an instance in self.commands, create one now.
-            if cmdObj == None:
-                cmdObj = cmdClass()
-                self._setCommand(cmdObj)
-
-            # Finally, add the mapping to the commands dict.
-            self.commands[cmdName] = cmdObj
-            self.commands[cmdName].handler = self
-
-        # We also need to create attributes for the various data objects.
-        # No checks here because dMap is a bijection.  At least, that's what
-        # the comment says.  Hope no one screws that up.
-        for (dataName, dataClass) in dMap.iteritems():
-            setattr(self, dataName, dataClass)
-
-    def dispatcher(self, args, lineno):
-        """Call the appropriate KickstartCommand handler for the current line
-           in the kickstart file.  A handler for the current command should
-           be registered, though a handler of None is not an error.  Returns
-           the data object returned by KickstartCommand.parse.
-
-           args    -- A list of arguments to the current command
-           lineno  -- The line number in the file, for error reporting
-        """
-        cmd = args[0]
-
-        if not self.commands.has_key(cmd):
-            raise KickstartParseError, formatErrorMsg(lineno, msg=_("Unknown command: %s" % cmd))
-        elif self.commands[cmd] != None:
-            self.commands[cmd].currentCmd = cmd
-            self.commands[cmd].currentLine = self.currentLine
-            self.commands[cmd].lineno = lineno
-
-            # The parser returns the data object that was modified.  This could
-            # be a BaseData subclass that should be put into a list, or it
-            # could be the command handler object itself.
-            obj = self.commands[cmd].parse(args[1:])
-            lst = self.commands[cmd].dataList()
-            if lst is not None:
-                lst.append(obj)
-
-            return obj
-
-    def maskAllExcept(self, lst):
-        """Set all entries in the commands dict to None, except the ones in
-           the lst.  All other commands will not be processed.
-        """
-        self._writeOrder = {}
-
-        for (key, val) in self.commands.iteritems():
-            if not key in lst:
-                self.commands[key] = None
-
-    def hasCommand(self, cmd):
-        """Return true if there is a handler for the string cmd."""
-        return hasattr(self, cmd)
-
-
-###
-### DATA
-###
-class BaseData(KickstartObject):
-    """The base class for all data objects.  This is an abstract class."""
-    removedKeywords = []
-    removedAttrs = []
-
-    def __init__(self, *args, **kwargs):
-        """Create a new BaseData instance.
-        
-           lineno -- Line number in the ks-file where this object was defined
-        """
-
-        # We don't want people using this class by itself.
-        if self.__class__ is BaseData:
-            raise TypeError, "BaseData is an abstract class."
-
-        KickstartObject.__init__(self, *args, **kwargs)
-        self.lineno = 0
-
-    def __str__(self):
-        """Return a string formatted for output to a kickstart file."""
-        return ""
-
-    def __call__(self, *args, **kwargs):
-        """Set multiple attributes on a subclass of BaseData at once via
-           keyword arguments.  Valid attributes are anything specified in a
-           subclass, but unknown attributes will be ignored.
-        """
-        for (key, val) in kwargs.items():
-            # Ignore setting attributes that were removed in a subclass, as
-            # if they were unknown attributes.
-            if key in self.removedAttrs:
-                continue
-
-            if hasattr(self, key):
-                setattr(self, key, val)
-
-    def deleteRemovedAttrs(self):
-        """Remove all attributes from self that are given in the removedAttrs
-           list.  This method should be called from __init__ in a subclass,
-           but only after the superclass's __init__ method has been called.
-        """
-        for attr in filter(lambda k: hasattr(self, k), self.removedAttrs):
-            delattr(self, attr)
diff --git a/mic/kickstart/pykickstart/commands/__init__.py b/mic/kickstart/pykickstart/commands/__init__.py
deleted file mode 100644 (file)
index da48ff5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-import authconfig, autopart, autostep, bootloader, clearpart, device
-import deviceprobe, displaymode, dmraid, driverdisk, fcoe, firewall, firstboot
-import group, ignoredisk, interactive, iscsi, iscsiname, key, keyboard, lang
-import langsupport, lilocheck, logging, logvol, mediacheck, method, monitor
-import mouse, multipath, network, partition, raid, reboot, repo, rescue, rootpw
-import selinux, services, skipx, sshpw, timezone, updates, upgrade, user, vnc
-import volgroup, xconfig, zerombr, zfcp
diff --git a/mic/kickstart/pykickstart/commands/authconfig.py b/mic/kickstart/pykickstart/commands/authconfig.py
deleted file mode 100644 (file)
index 9af9c0f..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-
-class FC3_Authconfig(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, *args, **kwargs)
-        self.authconfig = kwargs.get("authconfig", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.authconfig:
-            retval += "# System authorization information\nauth %s\n" % self.authconfig
-
-        return retval
-
-    def parse(self, args):
-        self.authconfig = self.currentLine[len(self.currentCmd):].strip()
-        return self
diff --git a/mic/kickstart/pykickstart/commands/autopart.py b/mic/kickstart/pykickstart/commands/autopart.py
deleted file mode 100644 (file)
index cf28b5c..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_AutoPart(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=100, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.autopart = kwargs.get("autopart", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.autopart:
-            retval += "autopart\n"
-
-        return retval
-
-    def parse(self, args):
-        if len(args) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "autopart")
-
-        self.autopart = True
-        return self
-
-class F9_AutoPart(FC3_AutoPart):
-    removedKeywords = FC3_AutoPart.removedKeywords
-    removedAttrs = FC3_AutoPart.removedAttrs
-
-    def __init__(self, writePriority=100, *args, **kwargs):
-        FC3_AutoPart.__init__(self, writePriority=writePriority, *args, **kwargs)
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-        self.op = self._getParser()
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.autopart:
-            retval += "autopart"
-
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\""% self.passphrase
-
-        if retval != "":
-            retval += "\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        self.autopart = True
-        return self
-
-class F12_AutoPart(F9_AutoPart):
-    removedKeywords = F9_AutoPart.removedKeywords
-    removedAttrs = F9_AutoPart.removedAttrs
-
-    def __init__(self, writePriority=100, *args, **kwargs):
-        F9_AutoPart.__init__(self, writePriority=writePriority, *args, **kwargs)
-
-        self.escrowcert = kwargs.get("escrowcert", "")
-        self.backuppassphrase = kwargs.get("backuppassphrase", False)
-
-    def __str__(self):
-        retval = F9_AutoPart.__str__(self)
-
-        if self.encrypted and self.escrowcert != "":
-            retval = retval.strip()
-
-            retval += " --escrowcert=\"%s\"" % self.escrowcert
-
-            if self.backuppassphrase:
-                retval += " --backuppassphrase"
-
-            retval += "\n"
-
-        return retval
-
-    def _getParser(self):
-        op = F9_AutoPart._getParser(self)
-        op.add_option("--escrowcert")
-        op.add_option("--backuppassphrase", action="store_true", default=False)
-        return op
diff --git a/mic/kickstart/pykickstart/commands/autostep.py b/mic/kickstart/pykickstart/commands/autostep.py
deleted file mode 100644 (file)
index e6ae71c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-class FC3_AutoStep(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.autostep = kwargs.get("autostep", False)
-        self.autoscreenshot = kwargs.get("autoscreenshot", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.autostep:
-            if self.autoscreenshot:
-                retval += "autostep --autoscreenshot\n"
-            else:
-                retval += "autostep\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--autoscreenshot", dest="autoscreenshot",
-                      action="store_true", default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        self.autostep = True
-        return self
diff --git a/mic/kickstart/pykickstart/commands/bootloader.py b/mic/kickstart/pykickstart/commands/bootloader.py
deleted file mode 100644 (file)
index b227fac..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-class FC3_Bootloader(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=10, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.driveorder = kwargs.get("driveorder", [])
-        self.appendLine = kwargs.get("appendLine", "")
-        self.forceLBA = kwargs.get("forceLBA", False)
-        self.linear = kwargs.get("linear", True)
-        self.location = kwargs.get("location", "")
-        self.md5pass = kwargs.get("md5pass", "")
-        self.password = kwargs.get("password", "")
-        self.upgrade = kwargs.get("upgrade", False)
-        self.useLilo = kwargs.get("useLilo", False)
-
-        self.deleteRemovedAttrs()
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.appendLine != "":
-            retval += " --append=\"%s\"" % self.appendLine
-        if self.linear:
-            retval += " --linear"
-        if self.location:
-            retval += " --location=%s" % self.location
-        if hasattr(self, "forceLBA") and self.forceLBA:
-            retval += " --lba32"
-        if self.password != "":
-            retval += " --password=\"%s\"" % self.password
-        if self.md5pass != "":
-            retval += " --md5pass=\"%s\"" % self.md5pass
-        if self.upgrade:
-            retval += " --upgrade"
-        if self.useLilo:
-            retval += " --useLilo"
-        if len(self.driveorder) > 0:
-            retval += " --driveorder=\"%s\"" % ",".join(self.driveorder)
-
-        return retval
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.location != "":
-            retval += "# System bootloader configuration\nbootloader"
-            retval += self._getArgsAsStr() + "\n"
-
-        return retval
-
-    def _getParser(self):
-        def driveorder_cb (option, opt_str, value, parser):
-            for d in value.split(','):
-                parser.values.ensure_value(option.dest, []).append(d)
-
-        op = KSOptionParser()
-        op.add_option("--append", dest="appendLine")
-        op.add_option("--linear", dest="linear", action="store_true",
-                      default=True)
-        op.add_option("--nolinear", dest="linear", action="store_false")
-        op.add_option("--location", dest="location", type="choice",
-                      default="mbr",
-                      choices=["mbr", "partition", "none", "boot"])
-        op.add_option("--lba32", dest="forceLBA", action="store_true",
-                      default=False)
-        op.add_option("--password", dest="password", default="")
-        op.add_option("--md5pass", dest="md5pass", default="")
-        op.add_option("--upgrade", dest="upgrade", action="store_true",
-                      default=False)
-        op.add_option("--useLilo", dest="useLilo", action="store_true",
-                      default=False)
-        op.add_option("--driveorder", dest="driveorder", action="callback",
-                      callback=driveorder_cb, nargs=1, type="string")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-
-        if self.currentCmd == "lilo":
-            self.useLilo = True
-
-        return self
-
-class FC4_Bootloader(FC3_Bootloader):
-    removedKeywords = FC3_Bootloader.removedKeywords + ["linear", "useLilo"]
-    removedAttrs = FC3_Bootloader.removedAttrs + ["linear", "useLilo"]
-
-    def __init__(self, writePriority=10, *args, **kwargs):
-        FC3_Bootloader.__init__(self, writePriority, *args, **kwargs)
-
-    def _getArgsAsStr(self):
-        retval = ""
-        if self.appendLine != "":
-            retval += " --append=\"%s\"" % self.appendLine
-        if self.location:
-            retval += " --location=%s" % self.location
-        if hasattr(self, "forceLBA") and self.forceLBA:
-            retval += " --lba32"
-        if self.password != "":
-            retval += " --password=\"%s\"" % self.password
-        if self.md5pass != "":
-            retval += " --md5pass=\"%s\"" % self.md5pass
-        if self.upgrade:
-            retval += " --upgrade"
-        if len(self.driveorder) > 0:
-            retval += " --driveorder=\"%s\"" % ",".join(self.driveorder)
-        return retval
-
-    def _getParser(self):
-        op = FC3_Bootloader._getParser(self)
-        op.remove_option("--linear")
-        op.remove_option("--nolinear")
-        op.remove_option("--useLilo")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        return self
-
-class F8_Bootloader(FC4_Bootloader):
-    removedKeywords = FC4_Bootloader.removedKeywords
-    removedAttrs = FC4_Bootloader.removedAttrs
-
-    def __init__(self, writePriority=10, *args, **kwargs):
-        FC4_Bootloader.__init__(self, writePriority, *args, **kwargs)
-
-        self.timeout = kwargs.get("timeout", None)
-        self.default = kwargs.get("default", "")
-
-    def _getArgsAsStr(self):
-        ret = FC4_Bootloader._getArgsAsStr(self)
-
-        if self.timeout is not None:
-            ret += " --timeout=%d" %(self.timeout,)
-        if self.default:
-            ret += " --default=%s" %(self.default,)
-
-        return ret
-
-    def _getParser(self):
-        op = FC4_Bootloader._getParser(self)
-        op.add_option("--timeout", dest="timeout", type="int")
-        op.add_option("--default", dest="default")
-        return op
-
-class F12_Bootloader(F8_Bootloader):
-    removedKeywords = F8_Bootloader.removedKeywords
-    removedAttrs = F8_Bootloader.removedAttrs
-
-    def _getParser(self):
-        op = F8_Bootloader._getParser(self)
-        op.add_option("--lba32", dest="forceLBA", deprecated=1, action="store_true")
-        return op
-
-class F14_Bootloader(F12_Bootloader):
-    removedKeywords = F12_Bootloader.removedKeywords + ["forceLBA"]
-    removedAttrs = F12_Bootloader.removedKeywords + ["forceLBA"]
-
-    def _getParser(self):
-        op = F12_Bootloader._getParser(self)
-        op.remove_option("--lba32")
-        return op
-
-class F15_Bootloader(F14_Bootloader):
-    removedKeywords = F14_Bootloader.removedKeywords
-    removedAttrs = F14_Bootloader.removedAttrs
-
-    def __init__(self, writePriority=10, *args, **kwargs):
-        F14_Bootloader.__init__(self, writePriority, *args, **kwargs)
-
-        self.isCrypted = kwargs.get("isCrypted", False)
-
-    def _getArgsAsStr(self):
-        ret = F14_Bootloader._getArgsAsStr(self)
-
-        if self.isCrypted:
-            ret += " --iscrypted"
-
-        return ret
-
-    def _getParser(self):
-        def password_cb(option, opt_str, value, parser):
-            parser.values.isCrypted = True
-            parser.values.password = value
-
-        op = F14_Bootloader._getParser(self)
-        op.add_option("--iscrypted", dest="isCrypted", action="store_true", default=False)
-        op.add_option("--md5pass", action="callback", callback=password_cb, nargs=1, type="string")
-        return op
-
-class RHEL5_Bootloader(FC4_Bootloader):
-    removedKeywords = FC4_Bootloader.removedKeywords
-    removedAttrs = FC4_Bootloader.removedAttrs
-
-    def __init__(self, writePriority=10, *args, **kwargs):
-        FC4_Bootloader.__init__(self, writePriority, *args, **kwargs)
-
-        self.hvArgs = kwargs.get("hvArgs", "")
-
-    def _getArgsAsStr(self):
-        ret = FC4_Bootloader._getArgsAsStr(self)
-
-        if self.hvArgs:
-            ret += " --hvargs=\"%s\"" %(self.hvArgs,)
-
-        return ret
-
-    def _getParser(self):
-        op = FC4_Bootloader._getParser(self)
-        op.add_option("--hvargs", dest="hvArgs", type="string")
-        return op
-
-class RHEL6_Bootloader(F12_Bootloader):
-    removedKeywords = F12_Bootloader.removedKeywords
-    removedAttrs = F12_Bootloader.removedAttrs
-
-    def __init__(self, writePriority=10, *args, **kwargs):
-        F12_Bootloader.__init__(self, writePriority, *args, **kwargs)
-
-        self.isCrypted = kwargs.get("isCrypted", False)
-
-    def _getArgsAsStr(self):
-        ret = F12_Bootloader._getArgsAsStr(self)
-
-        if self.isCrypted:
-            ret += " --iscrypted"
-
-        return ret
-
-    def _getParser(self):
-        def password_cb(option, opt_str, value, parser):
-            parser.values.isCrypted = True
-            parser.values.password = value
-
-        op = F12_Bootloader._getParser(self)
-        op.add_option("--iscrypted", dest="isCrypted", action="store_true", default=False)
-        op.add_option("--md5pass", action="callback", callback=password_cb, nargs=1, type="string")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/clearpart.py b/mic/kickstart/pykickstart/commands/clearpart.py
deleted file mode 100644 (file)
index a8089fc..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-class FC3_ClearPart(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=120, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.drives = kwargs.get("drives", [])
-        self.initAll = kwargs.get("initAll", False)
-        self.type = kwargs.get("type", None)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.type is None:
-            return retval
-
-        if self.type == CLEARPART_TYPE_NONE:
-            clearstr = "--none"
-        elif self.type == CLEARPART_TYPE_LINUX:
-            clearstr = "--linux"
-        elif self.type == CLEARPART_TYPE_ALL:
-            clearstr = "--all"
-        else:
-            clearstr = ""
-
-        if self.initAll:
-            initstr = "--initlabel"
-        else:
-            initstr = ""
-
-        if len(self.drives) > 0:
-            drivestr = "--drives=" + ",".join(self.drives)
-        else:
-            drivestr = ""
-
-        retval += "# Partition clearing information\nclearpart %s %s %s\n" % (clearstr, initstr, drivestr)
-        return retval
-
-    def _getParser(self):
-        def drive_cb (option, opt_str, value, parser):
-            for d in value.split(','):
-                parser.values.ensure_value(option.dest, []).append(d)
-
-        op = KSOptionParser()
-        op.add_option("--all", dest="type", action="store_const",
-                      const=CLEARPART_TYPE_ALL)
-        op.add_option("--drives", dest="drives", action="callback",
-                      callback=drive_cb, nargs=1, type="string")
-        op.add_option("--initlabel", dest="initAll", action="store_true",
-                      default=False)
-        op.add_option("--linux", dest="type", action="store_const",
-                      const=CLEARPART_TYPE_LINUX)
-        op.add_option("--none", dest="type", action="store_const",
-                      const=CLEARPART_TYPE_NONE)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        return self
diff --git a/mic/kickstart/pykickstart/commands/device.py b/mic/kickstart/pykickstart/commands/device.py
deleted file mode 100644 (file)
index 321410e..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class F8_DeviceData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.moduleName = kwargs.get("moduleName", "")
-        self.moduleOpts = kwargs.get("moduleOpts", "")
-
-    def __eq__(self, y):
-        return self.moduleName == y.moduleName
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-
-        if self.moduleName != "":
-            retval += "device %s" % self.moduleName
-
-            if self.moduleOpts != "":
-                retval += " --opts=\"%s\"" % self.moduleOpts
-
-        return retval + "\n"
-
-class FC3_Device(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.type = kwargs.get("type", "")
-        self.moduleName = kwargs.get("moduleName", "")
-        self.moduleOpts = kwargs.get("moduleOpts", "")
-
-    def __eq__(self, y):
-        return self.moduleName == y.moduleName
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.moduleName != "":
-            retval += "device %s %s" % (self.type, self.moduleName)
-
-            if self.moduleOpts != "":
-                retval += " --opts=\"%s\"" % self.moduleOpts
-
-        return retval + "\n"
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--opts", dest="moduleOpts", default="")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) != 2:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("device command requires two arguments: module type and name"))
-
-        self.moduleOpts = opts.moduleOpts
-        self.type = extra[0]
-        self.moduleName = extra[1]
-        return self
-
-class F8_Device(FC3_Device):
-    removedKeywords = FC3_Device.removedKeywords
-    removedAttrs = FC3_Device.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_Device.__init__(self, writePriority, *args, **kwargs)
-        self.deviceList = kwargs.get("deviceList", [])
-
-    def __str__(self):
-        retval = ""
-        for device in self.deviceList:
-            retval += device.__str__()
-
-        return retval
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("%s command requires a single argument: %s") % ("device", "module name"))
-
-        dd = F8_DeviceData()
-        self._setToObj(self.op, opts, dd)
-        dd.lineno = self.lineno
-        dd.moduleName = extra[0]
-
-        # Check for duplicates in the data list.
-        if dd in self.dataList():
-            warnings.warn(_("A module with the name %s has already been defined.") % dd.moduleName)
-
-        return dd
-
-    def dataList(self):
-        return self.deviceList
diff --git a/mic/kickstart/pykickstart/commands/deviceprobe.py b/mic/kickstart/pykickstart/commands/deviceprobe.py
deleted file mode 100644 (file)
index 9f462fd..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-
-class FC3_DeviceProbe(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.deviceprobe = kwargs.get("deviceprobe", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.deviceprobe != "":
-            retval += "deviceprobe %s\n" % self.deviceprobe
-
-        return retval
-
-    def parse(self, args):
-        self.deviceprobe = " ".join(args)
-        return self
diff --git a/mic/kickstart/pykickstart/commands/displaymode.py b/mic/kickstart/pykickstart/commands/displaymode.py
deleted file mode 100644 (file)
index 6a12d58..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_DisplayMode(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.displayMode = kwargs.get("displayMode", None)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.displayMode is None:
-            return retval
-
-        if self.displayMode == DISPLAY_MODE_CMDLINE:
-            retval += "cmdline\n"
-        elif self.displayMode == DISPLAY_MODE_GRAPHICAL:
-            retval += "# Use graphical install\ngraphical\n"
-        elif self.displayMode == DISPLAY_MODE_TEXT:
-            retval += "# Use text mode install\ntext\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 0:
-            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % self.currentCmd)
-
-        if self.currentCmd == "cmdline":
-            self.displayMode = DISPLAY_MODE_CMDLINE
-        elif self.currentCmd == "graphical":
-            self.displayMode = DISPLAY_MODE_GRAPHICAL
-        elif self.currentCmd == "text":
-            self.displayMode = DISPLAY_MODE_TEXT
-
-        return self
diff --git a/mic/kickstart/pykickstart/commands/dmraid.py b/mic/kickstart/pykickstart/commands/dmraid.py
deleted file mode 100644 (file)
index 993575a..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-# Peter Jones <pjones@redhat.com>
-#
-# Copyright 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_DmRaidData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-
-        self.name = kwargs.get("name", "")
-        self.devices = kwargs.get("devices", [])
-        self.dmset = kwargs.get("dmset", None)
-
-    def __eq__(self, y):
-        return self.name == y.name and self.devices == y.devices
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "dmraid --name=%s" % self.name
-
-        for dev in self.devices:
-            retval += " --dev=\"%s\"" % dev
-
-        return retval + "\n"
-
-class FC6_DmRaid(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=60, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.dmraids = kwargs.get("dmraids", [])
-
-    def __str__(self):
-        retval = ""
-        for dm in self.dmraids:
-            retval += dm.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--name", dest="name", action="store", type="string",
-                      required=1)
-        op.add_option("--dev", dest="devices", action="append", type="string",
-                      required=1)
-        return op
-
-    def parse(self, args):
-        dm = FC6_DmRaidData()
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        dm.name = dm.name.split('/')[-1]
-        self._setToObj(self.op, opts, dm)
-        dm.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if dm in self.dataList():
-            warnings.warn(_("A DM RAID device with the name %s and devices %s has already been defined.") % (dm.name, dm.devices))
-
-        return dm
-
-    def dataList(self):
-        return self.dmraids
diff --git a/mic/kickstart/pykickstart/commands/driverdisk.py b/mic/kickstart/pykickstart/commands/driverdisk.py
deleted file mode 100644 (file)
index 82a58c0..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_DriverDiskData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-
-        self.partition = kwargs.get("partition", "")
-        self.source = kwargs.get("source", "")
-        self.type = kwargs.get("type", "")
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.partition:
-            retval += "%s" % self.partition
-
-            if hasattr(self, "type") and self.type:
-                retval += " --type=%s" % self.type
-        elif self.source:
-            retval += "--source=%s" % self.source
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "driverdisk %s\n" % self._getArgsAsStr()
-        return retval
-
-class FC4_DriverDiskData(FC3_DriverDiskData):
-    removedKeywords = FC3_DriverDiskData.removedKeywords
-    removedAttrs = FC3_DriverDiskData.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_DriverDiskData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.biospart = kwargs.get("biospart", "")
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.partition:
-            retval += "%s" % self.partition
-
-            if hasattr(self, "type") and self.type:
-                retval += " --type=%s" % self.type
-        elif self.source:
-            retval += "--source=%s" % self.source
-        elif self.biospart:
-            retval += "--biospart=%s" % self.biospart
-
-        return retval
-
-class F12_DriverDiskData(FC4_DriverDiskData):
-    removedKeywords = FC4_DriverDiskData.removedKeywords + ["type"]
-    removedAttrs = FC4_DriverDiskData.removedAttrs + ["type"]
-
-    def __init__(self, *args, **kwargs):
-        FC4_DriverDiskData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-F14_DriverDiskData = F12_DriverDiskData
-
-class FC3_DriverDisk(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.driverdiskList = kwargs.get("driverdiskList", [])
-
-    def __str__(self):
-        retval = ""
-        for dd in self.driverdiskList:
-            retval += dd.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--source")
-        op.add_option("--type")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one partition may be specified for driverdisk command."))
-
-        if len(extra) == 1 and opts.source:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --source and partition may be specified for driverdisk command."))
-
-        if not extra and not opts.source:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --source or partition must be specified for driverdisk command."))
-
-        ddd = self.handler.DriverDiskData()
-        self._setToObj(self.op, opts, ddd)
-        ddd.lineno = self.lineno
-        if len(extra) == 1:
-            ddd.partition = extra[0]
-
-        return ddd
-
-    def dataList(self):
-        return self.driverdiskList
-
-class FC4_DriverDisk(FC3_DriverDisk):
-    removedKeywords = FC3_DriverDisk.removedKeywords
-    removedAttrs = FC3_DriverDisk.removedKeywords
-
-    def _getParser(self):
-        op = FC3_DriverDisk._getParser(self)
-        op.add_option("--biospart")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one partition may be specified for driverdisk command."))
-
-        if len(extra) == 1 and opts.source:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --source and partition may be specified for driverdisk command."))
-        elif len(extra) == 1 and opts.biospart:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --biospart and partition may be specified for driverdisk command."))
-        elif opts.source and opts.biospart:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --biospart and --source may be specified for driverdisk command."))
-
-        if not extra and not opts.source and not opts.biospart:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --source, --biospart, or partition must be specified for driverdisk command."))
-
-        ddd = self.handler.DriverDiskData()
-        self._setToObj(self.op, opts, ddd)
-        ddd.lineno = self.lineno
-        if len(extra) == 1:
-            ddd.partition = extra[0]
-
-        return ddd
-
-class F12_DriverDisk(FC4_DriverDisk):
-    removedKeywords = FC4_DriverDisk.removedKeywords
-    removedAttrs = FC4_DriverDisk.removedKeywords
-
-    def _getParser(self):
-        op = FC4_DriverDisk._getParser(self)
-        op.add_option("--type", deprecated=1)
-        return op
-
-class F14_DriverDisk(F12_DriverDisk):
-    removedKeywords = F12_DriverDisk.removedKeywords
-    removedAttrs = F12_DriverDisk.removedKeywords
-
-    def _getParser(self):
-        op = F12_DriverDisk._getParser(self)
-        op.remove_option("--type")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/fcoe.py b/mic/kickstart/pykickstart/commands/fcoe.py
deleted file mode 100644 (file)
index 3320849..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-# Hans de Goede <hdegoede@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class F12_FcoeData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.nic = kwargs.get("nic", None)
-
-    def __eq__(self, y):
-        return self.nic == y.nic
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.nic:
-            retval += " --nic=%s" % self.nic
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "fcoe%s\n" % self._getArgsAsStr()
-        return retval
-
-class F13_FcoeData(F12_FcoeData):
-    removedKeywords = F12_FcoeData.removedKeywords
-    removedAttrs = F12_FcoeData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F12_FcoeData.__init__(self, *args, **kwargs)
-        self.dcb = kwargs.get("dcb", False)
-
-    def _getArgsAsStr(self):
-        retval = F12_FcoeData._getArgsAsStr(self)
-
-        if self.dcb:
-            retval += " --dcb"
-
-        return retval
-
-class F12_Fcoe(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=71, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.fcoe = kwargs.get("fcoe", [])
-
-    def __str__(self):
-        retval = ""
-        for fcoe in self.fcoe:
-            retval += fcoe.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--nic", dest="nic", required=1)
-        return op
-
-    def parse(self, args):
-        zd = self.handler.FcoeData()
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) > 0:
-            mapping = {"command": "fcoe", "options": extra}
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
-
-        self._setToObj(self.op, opts, zd)
-        zd.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if zd in self.dataList():
-            warnings.warn(_("A FCOE device with the name %s has already been defined.") % zd.nic)
-
-        return zd
-
-    def dataList(self):
-        return self.fcoe
-
-class F13_Fcoe(F12_Fcoe):
-    removedKeywords = F12_Fcoe.removedKeywords
-    removedAttrs = F12_Fcoe.removedAttrs
-
-    def _getParser(self):
-        op = F12_Fcoe._getParser(self)
-        op.add_option("--dcb", dest="dcb", action="store_true", default=False)
-        return op
diff --git a/mic/kickstart/pykickstart/commands/firewall.py b/mic/kickstart/pykickstart/commands/firewall.py
deleted file mode 100644 (file)
index 24a01bd..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Firewall(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.enabled = kwargs.get("enabled", None)
-        self.ports = kwargs.get("ports", [])
-        self.trusts = kwargs.get("trusts", [])
-
-    def __str__(self):
-        extra = []
-        filteredPorts = []
-
-        retval = KickstartCommand.__str__(self)
-
-        if self.enabled is None:
-            return retval
-
-        if self.enabled:
-            # It's possible we have words in the ports list instead of
-            # port:proto (s-c-kickstart may do this).  So, filter those
-            # out into their own list leaving what we expect.
-            for port in self.ports:
-                if port == "ssh":
-                    extra.append(" --ssh")
-                elif port == "telnet":
-                    extra.append(" --telnet")
-                elif port == "smtp":
-                    extra.append(" --smtp")
-                elif port == "http":
-                    extra.append(" --http")
-                elif port == "ftp":
-                    extra.append(" --ftp")
-                else:
-                    filteredPorts.append(port)
-
-            # All the port:proto strings go into a comma-separated list.
-            portstr = ",".join(filteredPorts)
-            if len(portstr) > 0:
-                portstr = " --port=" + portstr
-            else:
-                portstr = ""
-
-            extrastr = "".join(extra)
-            truststr = ",".join(self.trusts)
-
-            if len(truststr) > 0:
-                truststr = " --trust=" + truststr
-
-            # The output port list consists only of port:proto for
-            # everything that we don't recognize, and special options for
-            # those that we do.
-            retval += "# Firewall configuration\nfirewall --enabled%s%s%s\n" % (extrastr, portstr, truststr)
-        else:
-            retval += "# Firewall configuration\nfirewall --disabled\n"
-
-        return retval
-
-    def _getParser(self):
-        def firewall_port_cb (option, opt_str, value, parser):
-            for p in value.split(","):
-                p = p.strip()
-                if p.find(":") == -1:
-                    p = "%s:tcp" % p
-                parser.values.ensure_value(option.dest, []).append(p)
-
-        op = KSOptionParser(mapping={"ssh":["22:tcp"], "telnet":["23:tcp"],
-                             "smtp":["25:tcp"], "http":["80:tcp", "443:tcp"],
-                             "ftp":["21:tcp"]})
-
-        op.add_option("--disable", "--disabled", dest="enabled",
-                      action="store_false")
-        op.add_option("--enable", "--enabled", dest="enabled",
-                      action="store_true", default=True)
-        op.add_option("--ftp", "--http", "--smtp", "--ssh", "--telnet",
-                      dest="ports", action="map_extend")
-        op.add_option("--high", deprecated=1)
-        op.add_option("--medium", deprecated=1)
-        op.add_option("--port", dest="ports", action="callback",
-                      callback=firewall_port_cb, nargs=1, type="string")
-        op.add_option("--trust", dest="trusts", action="append")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        
-        if len(extra) != 0:
-            mapping = {"command": "firewall", "options": extra}
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
-            
-        self._setToSelf(self.op, opts)
-        return self
-
-class F9_Firewall(FC3_Firewall):
-    removedKeywords = FC3_Firewall.removedKeywords
-    removedAttrs = FC3_Firewall.removedAttrs
-
-    def _getParser(self):
-        op = FC3_Firewall._getParser(self)
-        op.remove_option("--high")
-        op.remove_option("--medium")
-        return op
-
-class F10_Firewall(F9_Firewall):
-    removedKeywords = F9_Firewall.removedKeywords
-    removedAttrs = F9_Firewall.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        F9_Firewall.__init__(self, writePriority, *args, **kwargs)
-        self.services = kwargs.get("services", [])
-
-    def __str__(self):
-        if self.enabled is None:
-            return ""
-
-        retval = F9_Firewall.__str__(self)
-        if self.enabled:
-            retval = retval.strip()
-
-            svcstr = ",".join(self.services)
-            if len(svcstr) > 0:
-                svcstr = " --service=" + svcstr
-            else:
-                svcstr = ""
-
-            return retval + "%s\n" % svcstr
-        else:
-            return retval
-
-    def _getParser(self):
-        def service_cb (option, opt_str, value, parser):
-            # python2.4 does not support action="append_const" that we were
-            # using for these options.  Instead, we have to fake it by
-            # appending whatever the option string is to the service list.
-            if not value:
-                parser.values.ensure_value(option.dest, []).append(opt_str[2:])
-                return
-
-            for p in value.split(","):
-                p = p.strip()
-                parser.values.ensure_value(option.dest, []).append(p)
-
-        op = F9_Firewall._getParser(self)
-        op.add_option("--service", dest="services", action="callback",
-                      callback=service_cb, nargs=1, type="string")
-        op.add_option("--ftp", dest="services", action="callback",
-                      callback=service_cb)
-        op.add_option("--http", dest="services", action="callback",
-                      callback=service_cb)
-        op.add_option("--smtp", dest="services", action="callback",
-                      callback=service_cb)
-        op.add_option("--ssh", dest="services", action="callback",
-                      callback=service_cb)
-        op.add_option("--telnet", deprecated=1)
-        return op
-
-class F14_Firewall(F10_Firewall):
-    removedKeywords = F10_Firewall.removedKeywords + ["telnet"]
-    removedAttrs = F10_Firewall.removedAttrs + ["telnet"]
-
-    def _getParser(self):
-        op = F10_Firewall._getParser(self)
-        op.remove_option("--telnet")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/firstboot.py b/mic/kickstart/pykickstart/commands/firstboot.py
deleted file mode 100644 (file)
index 05c0ac1..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.options import *
-
-class FC3_Firstboot(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.firstboot = kwargs.get("firstboot", None)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.firstboot is None:
-            return retval
-
-        if self.firstboot == FIRSTBOOT_SKIP:
-            retval += "firstboot --disable\n"
-        elif self.firstboot == FIRSTBOOT_DEFAULT:
-            retval += "# Run the Setup Agent on first boot\nfirstboot --enable\n"
-        elif self.firstboot == FIRSTBOOT_RECONFIG:
-            retval += "# Run the Setup Agent on first boot\nfirstboot --reconfig\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--disable", "--disabled", dest="firstboot",
-                      action="store_const", const=FIRSTBOOT_SKIP)
-        op.add_option("--enable", "--enabled", dest="firstboot",
-                      action="store_const", const=FIRSTBOOT_DEFAULT)
-        op.add_option("--reconfig", dest="firstboot", action="store_const",
-                      const=FIRSTBOOT_RECONFIG)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self.firstboot = opts.firstboot
-        return self
diff --git a/mic/kickstart/pykickstart/commands/group.py b/mic/kickstart/pykickstart/commands/group.py
deleted file mode 100644 (file)
index 80ba5bd..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class F12_GroupData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.name = kwargs.get("name", "")
-        self.gid = kwargs.get("gid", None)
-
-    def __eq__(self, y):
-        return self.name == y.name
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "group"
-
-        if self.name:
-            retval += " --name=%s" % self.name
-        if self.gid:
-            retval += " --gid=%s" % self.gid
-
-        return retval + "\n"
-
-class F12_Group(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.groupList = kwargs.get("groupList", [])
-
-    def __str__(self):
-        retval = ""
-        for user in self.groupList:
-            retval += user.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--name", required=1)
-        op.add_option("--gid", type="int")
-        return op
-
-    def parse(self, args):
-        gd = self.handler.GroupData()
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToObj(self.op, opts, gd)
-        gd.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if gd in self.dataList():
-            warnings.warn(_("A group with the name %s has already been defined.") % gd.name)
-
-        return gd
-
-    def dataList(self):
-        return self.groupList
diff --git a/mic/kickstart/pykickstart/commands/ignoredisk.py b/mic/kickstart/pykickstart/commands/ignoredisk.py
deleted file mode 100644 (file)
index 676d080..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_IgnoreDisk(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.ignoredisk = kwargs.get("ignoredisk", [])
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if len(self.ignoredisk) > 0:
-            retval += "ignoredisk --drives=%s\n" % ",".join(self.ignoredisk)
-
-        return retval
-
-    def _getParser(self):
-        def drive_cb (option, opt_str, value, parser):
-            for d in value.split(','):
-                parser.values.ensure_value(option.dest, []).append(d)
-
-        op = KSOptionParser()
-        op.add_option("--drives", dest="ignoredisk", action="callback",
-                      callback=drive_cb, nargs=1, type="string", required=1)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        return self
-
-class F8_IgnoreDisk(FC3_IgnoreDisk):
-    removedKeywords = FC3_IgnoreDisk.removedKeywords
-    removedAttrs = FC3_IgnoreDisk.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_IgnoreDisk.__init__(self, writePriority, *args, **kwargs)
-
-        self.onlyuse = kwargs.get("onlyuse", [])
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if len(self.ignoredisk) > 0:
-            retval += "ignoredisk --drives=%s\n" % ",".join(self.ignoredisk)
-        elif len(self.onlyuse) > 0:
-            retval += "ignoredisk --only-use=%s\n" % ",".join(self.onlyuse)
-
-        return retval
-
-    def parse(self, args, errorCheck=True):
-        retval = FC3_IgnoreDisk.parse(self, args)
-
-        if errorCheck:
-            if (len(self.ignoredisk) == 0 and len(self.onlyuse) == 0) or (len(self.ignoredisk) > 0 and (len(self.onlyuse) > 0)):
-                raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --drives or --only-use must be specified for ignoredisk command."))
-
-        return retval
-
-    def _getParser(self):
-        def drive_cb (option, opt_str, value, parser):
-            for d in value.split(','):
-                parser.values.ensure_value(option.dest, []).append(d)
-
-        op = FC3_IgnoreDisk._getParser(self)
-        op.add_option("--drives", dest="ignoredisk", action="callback",
-                      callback=drive_cb, nargs=1, type="string")
-        op.add_option("--only-use", dest="onlyuse", action="callback",
-                      callback=drive_cb, nargs=1, type="string")
-        return op
-
-class RHEL6_IgnoreDisk(F8_IgnoreDisk):
-    removedKeywords = F8_IgnoreDisk.removedKeywords
-    removedAttrs = F8_IgnoreDisk.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        F8_IgnoreDisk.__init__(self, writePriority, *args, **kwargs)
-
-        self.interactive = kwargs.get("interactive", False)
-        if self.interactive:
-            self.ignoredisk = []
-
-    def __str__(self):
-        retval = F8_IgnoreDisk.__str__(self)
-
-        if self.interactive:
-            retval = "ignoredisk --interactive\n"
-
-        return retval
-
-    def parse(self, args):
-        retval = F8_IgnoreDisk.parse(self, args, errorCheck=False)
-
-        howmany = 0
-        if len(self.ignoredisk) > 0:
-            howmany += 1
-        if len(self.onlyuse) > 0:
-            howmany += 1
-        if self.interactive:
-            howmany += 1
-        if howmany != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --drives , --only-use , or --interactive must be specified for ignoredisk command."))
-
-        return retval
-
-    def _getParser(self):
-        op = F8_IgnoreDisk._getParser(self)
-        op.add_option("--interactive", dest="interactive", action="store_true",
-                      default=False)
-        return op
-
-F14_IgnoreDisk = RHEL6_IgnoreDisk
diff --git a/mic/kickstart/pykickstart/commands/interactive.py b/mic/kickstart/pykickstart/commands/interactive.py
deleted file mode 100644 (file)
index fa3dc02..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Interactive(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.interactive = kwargs.get("interactive", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.interactive:
-            retval += "# Use interactive kickstart installation method\ninteractive\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "interactive")
-
-        self.interactive = True
-        return self
-
-class F14_Interactive(DeprecatedCommand):
-    def __init__(self):
-        DeprecatedCommand.__init__(self)
diff --git a/mic/kickstart/pykickstart/commands/iscsi.py b/mic/kickstart/pykickstart/commands/iscsi.py
deleted file mode 100644 (file)
index da5a544..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-# Peter Jones <pjones@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc.
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_IscsiData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.ipaddr = kwargs.get("ipaddr", "")
-        self.port = kwargs.get("port", "3260")
-        self.target = kwargs.get("target", "")
-        self.user = kwargs.get("user", None)
-        self.password = kwargs.get("password", None)
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.target != "":
-            retval += " --target=%s" % self.target
-        if self.ipaddr != "":
-            retval += " --ipaddr=%s" % self.ipaddr
-        if self.port != "3260":
-            retval += " --port=%s" % self.port
-        if self.user is not None:
-            retval += " --user=%s" % self.user
-        if self.password is not None:
-            retval += " --password=%s" % self.password
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "iscsi%s\n" % self._getArgsAsStr()
-        return retval
-
-class F10_IscsiData(FC6_IscsiData):
-    removedKeywords = FC6_IscsiData.removedKeywords
-    removedAttrs = FC6_IscsiData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC6_IscsiData.__init__(self, *args, **kwargs)
-        self.user_in = kwargs.get("user_in", None)
-        self.password_in = kwargs.get("password_in", None)
-
-    def _getArgsAsStr(self):
-        retval = FC6_IscsiData._getArgsAsStr(self)
-
-        if self.user_in is not None:
-            retval += " --reverse-user=%s" % self.user_in
-        if self.password_in is not None:
-            retval += " --reverse-password=%s" % self.password_in
-
-        return retval
-
-class FC6_Iscsi(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=71, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.iscsi = kwargs.get("iscsi", [])
-
-    def __str__(self):
-        retval = ""
-        for iscsi in self.iscsi:
-            retval += iscsi.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--target", dest="target", action="store", type="string")
-        op.add_option("--ipaddr", dest="ipaddr", action="store", type="string",
-                      required=1)
-        op.add_option("--port", dest="port", action="store", type="string")
-        op.add_option("--user", dest="user", action="store", type="string")
-        op.add_option("--password", dest="password", action="store",
-                      type="string")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) != 0:
-            mapping = {"command": "iscsi", "options": extra}
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
-
-        dd = self.handler.IscsiData()
-        self._setToObj(self.op, opts, dd)
-        dd.lineno = self.lineno
-        return dd
-
-    def dataList(self):
-        return self.iscsi
-
-class F10_Iscsi(FC6_Iscsi):
-    removedKeywords = FC6_Iscsi.removedKeywords
-    removedAttrs = FC6_Iscsi.removedAttrs
-
-    def _getParser(self):
-        op = FC6_Iscsi._getParser(self)
-        op.add_option("--reverse-user", dest="user_in", action="store",
-                      type="string")
-        op.add_option("--reverse-password", dest="password_in", action="store",
-                      type="string")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/iscsiname.py b/mic/kickstart/pykickstart/commands/iscsiname.py
deleted file mode 100644 (file)
index a87d063..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-# Peter Jones <pjones@redhat.com>
-#
-# Copyright 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_IscsiName(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=70, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.iscsiname = kwargs.get("iscsiname", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.iscsiname != "":
-            retval += "iscsiname %s\n" % self.iscsiname
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "iscsiname")
-        self.iscsiname = extra[0]
-        return self
diff --git a/mic/kickstart/pykickstart/commands/key.py b/mic/kickstart/pykickstart/commands/key.py
deleted file mode 100644 (file)
index c20c423..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class RHEL5_Key(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.key = kwargs.get("key", "")
-        self.skip = kwargs.get("skip", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.key == KS_INSTKEY_SKIP:
-            retval += "key --skip\n"
-        elif self.key != "":
-            retval += "key %s\n" % self.key
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--skip", action="store_true", default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-
-        if self.skip:
-            self.key = KS_INSTKEY_SKIP
-        elif len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "key")
-        else:
-            self.key = extra[0]
-
-        return self
diff --git a/mic/kickstart/pykickstart/commands/keyboard.py b/mic/kickstart/pykickstart/commands/keyboard.py
deleted file mode 100644 (file)
index babc2ac..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Keyboard(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.keyboard = kwargs.get("keyboard", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.keyboard != "":
-            retval += "# System keyboard\nkeyboard %s\n" % self.keyboard
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno) 
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "keyboard")
-
-        self.keyboard = extra[0]
-        return self
diff --git a/mic/kickstart/pykickstart/commands/lang.py b/mic/kickstart/pykickstart/commands/lang.py
deleted file mode 100644 (file)
index cf5e46c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Lang(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.lang = kwargs.get("lang", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.lang != "":
-            retval += "# System language\nlang %s\n" % self.lang
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "lang")
-
-        self.lang = extra[0]
-        return self
-
-    def apply(self, instroot="/"):
-        if self.lang == "": return
-        f = open(instroot + "/etc/sysconfig/i18n", "w+")
-        f.write("LANG=\"%s\"\n" %(self.lang,))
-        f.close()
diff --git a/mic/kickstart/pykickstart/commands/langsupport.py b/mic/kickstart/pykickstart/commands/langsupport.py
deleted file mode 100644 (file)
index 73a9e53..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-class FC3_LangSupport(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.deflang = kwargs.get("deflang", "")
-        self.supported = kwargs.get("supported", [])
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.deflang:
-            retval += "langsupport --default=%s" % self.deflang
-
-            if self.supported:
-                retval += " %s" % " ".join(self.supported)
-
-        return retval + "\n"
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--default", dest="deflang", default="en_US.UTF-8")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        self.supported = extra
-        return self
-
-class FC5_LangSupport(DeprecatedCommand):
-    def __init__(self):
-        DeprecatedCommand.__init__(self)
diff --git a/mic/kickstart/pykickstart/commands/lilocheck.py b/mic/kickstart/pykickstart/commands/lilocheck.py
deleted file mode 100644 (file)
index 92b3f93..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_LiloCheck(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.check = kwargs.get("check", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.check:
-            retval += "lilocheck\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "lilocheck")
-
-        self.check = True
-        return self
diff --git a/mic/kickstart/pykickstart/commands/logging.py b/mic/kickstart/pykickstart/commands/logging.py
deleted file mode 100644 (file)
index 6985619..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007, 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_Logging(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.host = kwargs.get("host", "")
-        self.level = kwargs.get("level", "info")
-        self.port = kwargs.get("port", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-        retval += "# Installation logging level\nlogging --level=%s" % self.level
-
-        if self.host != "":
-            retval += " --host=%s" % self.host
-
-            if self.port != "":
-                retval += " --port=%s" % self.port
-
-        return retval + "\n"
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--host")
-        op.add_option("--level", type="choice", default="info",
-                      choices=["debug", "info", "warning", "error", "critical"])
-        op.add_option("--port")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if opts.port and not opts.host:
-            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("Can't specify --port without --host."))
-
-        self._setToSelf(self.op, opts)
-        return self
diff --git a/mic/kickstart/pykickstart/commands/logvol.py b/mic/kickstart/pykickstart/commands/logvol.py
deleted file mode 100644 (file)
index c1b9cc3..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_LogVolData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.fstype = kwargs.get("fstype", "")
-        self.grow = kwargs.get("grow", False)
-        self.maxSizeMB = kwargs.get("maxSizeMB", 0)
-        self.name = kwargs.get("name", "")
-        self.format = kwargs.get("format", True)
-        self.percent = kwargs.get("percent", 0)
-        self.recommended = kwargs.get("recommended", False)
-        self.size = kwargs.get("size", None)
-        self.preexist = kwargs.get("preexist", False)
-        self.vgname = kwargs.get("vgname", "")
-        self.mountpoint = kwargs.get("mountpoint", "")
-
-    def __eq__(self, y):
-        return self.vgname == y.vgname and self.name == y.name
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.fstype != "":
-            retval += " --fstype=\"%s\"" % self.fstype
-        if self.grow:
-            retval += " --grow"
-        if self.maxSizeMB > 0:
-            retval += " --maxsize=%d" % self.maxSizeMB
-        if not self.format:
-            retval += " --noformat"
-        if self.percent > 0:
-            retval += " --percent=%d" % self.percent
-        if self.recommended:
-            retval += " --recommended"
-        if self.size > 0:
-            retval += " --size=%d" % self.size
-        if self.preexist:
-            retval += " --useexisting"
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "logvol %s %s --name=%s --vgname=%s\n" % (self.mountpoint, self._getArgsAsStr(), self.name, self.vgname)
-        return retval
-
-class FC4_LogVolData(FC3_LogVolData):
-    removedKeywords = FC3_LogVolData.removedKeywords
-    removedAttrs = FC3_LogVolData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC3_LogVolData.__init__(self, *args, **kwargs)
-        self.bytesPerInode = kwargs.get("bytesPerInode", 4096)
-        self.fsopts = kwargs.get("fsopts", "")
-
-    def _getArgsAsStr(self):
-        retval = FC3_LogVolData._getArgsAsStr(self)
-
-        if hasattr(self, "bytesPerInode") and self.bytesPerInode != 0:
-            retval += " --bytes-per-inode=%d" % self.bytesPerInode
-        if self.fsopts != "":
-            retval += " --fsoptions=\"%s\"" % self.fsopts
-
-        return retval
-
-class RHEL5_LogVolData(FC4_LogVolData):
-    removedKeywords = FC4_LogVolData.removedKeywords
-    removedAttrs = FC4_LogVolData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC4_LogVolData.__init__(self, *args, **kwargs)
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-    def _getArgsAsStr(self):
-        retval = FC4_LogVolData._getArgsAsStr(self)
-
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\"" % self.passphrase
-
-        return retval
-
-class F9_LogVolData(FC4_LogVolData):
-    removedKeywords = FC4_LogVolData.removedKeywords + ["bytesPerInode"]
-    removedAttrs = FC4_LogVolData.removedAttrs + ["bytesPerInode"]
-
-    def __init__(self, *args, **kwargs):
-        FC4_LogVolData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.fsopts = kwargs.get("fsopts", "")
-        self.fsprofile = kwargs.get("fsprofile", "")
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-    def _getArgsAsStr(self):
-        retval = FC4_LogVolData._getArgsAsStr(self)
-
-        if self.fsprofile != "":
-            retval += " --fsprofile=\"%s\"" % self.fsprofile
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\"" % self.passphrase
-
-        return retval
-
-class F12_LogVolData(F9_LogVolData):
-    removedKeywords = F9_LogVolData.removedKeywords
-    removedAttrs = F9_LogVolData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F9_LogVolData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.escrowcert = kwargs.get("escrowcert", "")
-        self.backuppassphrase = kwargs.get("backuppassphrase", False)
-
-    def _getArgsAsStr(self):
-        retval = F9_LogVolData._getArgsAsStr(self)
-
-        if self.encrypted and self.escrowcert != "":
-            retval += " --escrowcert=\"%s\"" % self.escrowcert
-
-            if self.backuppassphrase:
-                retval += " --backuppassphrase"
-
-        return retval
-
-F14_LogVolData = F12_LogVolData
-
-class F15_LogVolData(F14_LogVolData):
-    removedKeywords = F14_LogVolData.removedKeywords
-    removedAttrs = F14_LogVolData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F14_LogVolData.__init__(self, *args, **kwargs)
-        self.label = kwargs.get("label", "")
-
-    def _getArgsAsStr(self):
-        retval = F14_LogVolData._getArgsAsStr(self)
-
-        if self.label != "":
-            retval += " --label=\"%s\"" % self.label
-
-        return retval
-
-class FC3_LogVol(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=133, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.lvList = kwargs.get("lvList", [])
-
-    def __str__(self):
-        retval = ""
-
-        for part in self.lvList:
-            retval += part.__str__()
-
-        return retval
-
-    def _getParser(self):
-        def lv_cb (option, opt_str, value, parser):
-            parser.values.format = False
-            parser.values.preexist = True
-
-        op = KSOptionParser()
-        op.add_option("--fstype", dest="fstype")
-        op.add_option("--grow", dest="grow", action="store_true",
-                      default=False)
-        op.add_option("--maxsize", dest="maxSizeMB", action="store", type="int",
-                      nargs=1)
-        op.add_option("--name", dest="name", required=1)
-        op.add_option("--noformat", action="callback", callback=lv_cb,
-                      dest="format", default=True, nargs=0)
-        op.add_option("--percent", dest="percent", action="store", type="int",
-                      nargs=1)
-        op.add_option("--recommended", dest="recommended", action="store_true",
-                      default=False)
-        op.add_option("--size", dest="size", action="store", type="int",
-                      nargs=1)
-        op.add_option("--useexisting", dest="preexist", action="store_true",
-                      default=False)
-        op.add_option("--vgname", dest="vgname", required=1)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) == 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Mount point required for %s") % "logvol")
-
-        lvd = self.handler.LogVolData()
-        self._setToObj(self.op, opts, lvd)
-        lvd.lineno = self.lineno
-        lvd.mountpoint=extra[0]
-
-        # Check for duplicates in the data list.
-        if lvd in self.dataList():
-            warnings.warn(_("A logical volume with the name %s has already been defined in volume group %s.") % (lvd.device, lvd.vgname))
-
-        return lvd
-
-    def dataList(self):
-        return self.lvList
-
-class FC4_LogVol(FC3_LogVol):
-    removedKeywords = FC3_LogVol.removedKeywords
-    removedAttrs = FC3_LogVol.removedAttrs
-
-    def _getParser(self):
-        op = FC3_LogVol._getParser(self)
-        op.add_option("--bytes-per-inode", dest="bytesPerInode", action="store",
-                      type="int", nargs=1)
-        op.add_option("--fsoptions", dest="fsopts")
-        return op
-
-class RHEL5_LogVol(FC4_LogVol):
-    removedKeywords = FC4_LogVol.removedKeywords
-    removedAttrs = FC4_LogVol.removedAttrs
-
-    def _getParser(self):
-        op = FC4_LogVol._getParser(self)
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-class F9_LogVol(FC4_LogVol):
-    removedKeywords = FC4_LogVol.removedKeywords
-    removedAttrs = FC4_LogVol.removedAttrs
-
-    def _getParser(self):
-        op = FC4_LogVol._getParser(self)
-        op.add_option("--bytes-per-inode", deprecated=1)
-        op.add_option("--fsprofile", dest="fsprofile", action="store",
-                      type="string", nargs=1)
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-class F12_LogVol(F9_LogVol):
-    removedKeywords = F9_LogVol.removedKeywords
-    removedAttrs = F9_LogVol.removedAttrs
-
-    def _getParser(self):
-        op = F9_LogVol._getParser(self)
-        op.add_option("--escrowcert")
-        op.add_option("--backuppassphrase", action="store_true", default=False)
-        return op
-
-class F14_LogVol(F12_LogVol):
-    removedKeywords = F12_LogVol.removedKeywords
-    removedAttrs = F12_LogVol.removedAttrs
-
-    def _getParser(self):
-        op = F12_LogVol._getParser(self)
-        op.remove_option("--bytes-per-inode")
-        return op
-
-class F15_LogVol(F14_LogVol):
-    removedKeywords = F14_LogVol.removedKeywords
-    removedAttrs = F14_LogVol.removedAttrs
-
-    def _getParser(self):
-        op = F14_LogVol._getParser(self)
-        op.add_option("--label")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/mediacheck.py b/mic/kickstart/pykickstart/commands/mediacheck.py
deleted file mode 100644 (file)
index 388823a..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC4_MediaCheck(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.mediacheck = kwargs.get("mediacheck", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-        if self.mediacheck:
-            retval += "mediacheck\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "mediacheck")
-
-        self.mediacheck = True
-        return self
diff --git a/mic/kickstart/pykickstart/commands/method.py b/mic/kickstart/pykickstart/commands/method.py
deleted file mode 100644 (file)
index e21064a..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007, 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc.
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Method(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.method = kwargs.get("method", "")
-
-        # Set all these attributes so calls to this command's __call__
-        # method can set them.  However we don't want to provide them as
-        # arguments to __init__ because method is special.
-        self.biospart = None
-        self.partition = None
-        self.server = None
-        self.dir = None
-        self.url = None
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.method == "cdrom":
-            retval += "# Use CDROM installation media\ncdrom\n"
-        elif self.method == "harddrive":
-            msg = "# Use hard drive installation media\nharddrive --dir=%s" % self.dir
-
-            if self.biospart is not None:
-                retval += msg + " --biospart=%s\n" % self.biospart
-            else:
-                retval += msg + " --partition=%s\n" % self.partition
-        elif self.method == "nfs":
-            retval += "# Use NFS installation media\nnfs --server=%s --dir=%s\n" % (self.server, self.dir)
-        elif self.method == "url":
-            retval += "# Use network installation\nurl --url=\"%s\"\n" % self.url
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-
-        # method = "cdrom" falls through to the return
-        if self.currentCmd == "harddrive":
-            op.add_option("--biospart", dest="biospart")
-            op.add_option("--partition", dest="partition")
-            op.add_option("--dir", dest="dir", required=1)
-        elif self.currentCmd == "nfs":
-            op.add_option("--server", dest="server", required=1)
-            op.add_option("--dir", dest="dir", required=1)
-        elif self.currentCmd == "url":
-            op.add_option("--url", dest="url", required=1)
-
-        return op
-
-    def parse(self, args):
-        self.method = self.currentCmd
-
-        op = self._getParser()
-        (opts, extra) = op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(op, opts)
-
-        if self.currentCmd == "harddrive":
-            if self.biospart is None and self.partition is None or \
-               self.biospart is not None and self.partition is not None:
-                raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of biospart or partition options must be specified."))
-
-        return self
-
-class FC6_Method(FC3_Method):
-    removedKeywords = FC3_Method.removedKeywords
-    removedAttrs = FC3_Method.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_Method.__init__(self, writePriority, *args, **kwargs)
-
-        # Same reason for this attribute as the comment in FC3_Method.
-        self.opts = None
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.method == "cdrom":
-            retval += "# Use CDROM installation media\ncdrom\n"
-        elif self.method == "harddrive":
-            msg = "# Use hard drive installation media\nharddrive --dir=%s" % self.dir
-
-            if self.biospart is not None:
-                retval += msg + " --biospart=%s\n" % self.biospart
-            else:
-                retval += msg + " --partition=%s\n" % self.partition
-        elif self.method == "nfs":
-            retval += "# Use NFS installation media\nnfs --server=%s --dir=%s" % (self.server, self.dir)
-            if self.opts is not None:
-                retval += " --opts=\"%s\"" % self.opts
-            retval += "\n"
-        elif self.method == "url":
-            retval += "# Use network installation\nurl --url=\"%s\"\n" % self.url
-
-        return retval
-
-    def _getParser(self):
-        op = FC3_Method._getParser(self)
-
-        if self.currentCmd == "nfs":
-            op.add_option("--opts", dest="opts")
-
-        return op
-
-class F13_Method(FC6_Method):
-    removedKeywords = FC6_Method.removedKeywords
-    removedAttrs = FC6_Method.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC6_Method.__init__(self, *args, **kwargs)
-
-        # And same as all the other __init__ methods.
-        self.proxy = ""
-
-    def __str__(self):
-        retval = FC6_Method.__str__(self)
-
-        if self.method == "url" and self.proxy:
-            retval = retval.strip()
-            retval += " --proxy=\"%s\"\n" % self.proxy
-
-        return retval
-
-    def _getParser(self):
-        op = FC6_Method._getParser(self)
-
-        if self.currentCmd == "url":
-            op.add_option("--proxy")
-
-        return op
-
-class F14_Method(F13_Method):
-    removedKeywords = F13_Method.removedKeywords
-    removedAttrs = F13_Method.removedAttrs    
-
-    def __init__(self, *args, **kwargs):
-        F13_Method.__init__(self, *args, **kwargs)
-
-        self.noverifyssl = False
-
-    def __str__(self):
-        retval = F13_Method.__str__(self)
-
-        if self.method == "url" and self.noverifyssl:
-            retval = retval.strip()
-            retval += " --noverifyssl\n"
-
-        return retval
-
-    def _getParser(self):
-        op = F13_Method._getParser(self)
-
-        if self.currentCmd == "url":
-            op.add_option("--noverifyssl", action="store_true", default=False)
-
-        return op
-
-RHEL6_Method = F14_Method
diff --git a/mic/kickstart/pykickstart/commands/monitor.py b/mic/kickstart/pykickstart/commands/monitor.py
deleted file mode 100644 (file)
index 8c8c2c4..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Monitor(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.hsync = kwargs.get("hsync", "")
-        self.monitor = kwargs.get("monitor", "")
-        self.vsync = kwargs.get("vsync", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-        retval += "monitor"
-
-        if self.hsync != "":
-            retval += " --hsync=%s" % self.hsync
-        if self.monitor != "":
-            retval += " --monitor=\"%s\"" % self.monitor
-        if self.vsync != "":
-            retval += " --vsync=%s" % self.vsync
-
-        if retval != "monitor":
-            return retval + "\n"
-        else:
-            return ""
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--hsync")
-        op.add_option("--monitor")
-        op.add_option("--vsync")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if extra:
-            mapping = {"cmd": "monitor", "options": extra}
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(cmd)s command: %(options)s") % mapping)
-
-        self._setToSelf(self.op, opts)
-        return self
-
-class FC6_Monitor(FC3_Monitor):
-    removedKeywords = FC3_Monitor.removedKeywords
-    removedAttrs = FC3_Monitor.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_Monitor.__init__(self, writePriority, *args, **kwargs)
-        self.probe = kwargs.get("probe", True)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-        retval += "monitor"
-
-        if self.hsync != "":
-            retval += " --hsync=%s" % self.hsync
-        if self.monitor != "":
-            retval += " --monitor=\"%s\"" % self.monitor
-        if not self.probe:
-            retval += " --noprobe"
-        if self.vsync != "":
-            retval += " --vsync=%s" % self.vsync
-
-        if retval != "monitor":
-            return retval + "\n"
-        else:
-            return ""
-
-    def _getParser(self):
-        op = FC3_Monitor._getParser(self)
-        op.add_option("--noprobe", dest="probe", action="store_false",
-                      default=True)
-        return op
-
-class F10_Monitor(DeprecatedCommand):
-    def __init__(self):
-        DeprecatedCommand.__init__(self)
diff --git a/mic/kickstart/pykickstart/commands/mouse.py b/mic/kickstart/pykickstart/commands/mouse.py
deleted file mode 100644 (file)
index c643bce..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc.
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class RHEL3_Mouse(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.device = kwargs.get("device", "")
-        self.emulthree = kwargs.get("emulthree", False)
-        self.mouse = kwargs.get("mouse", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        opts = ""
-        if self.device:
-            opts += "--device=%s " % self.device
-        if self.emulthree:
-            opts += "--emulthree "
-
-        if self.mouse:
-            retval += "# System mouse\nmouse %s%s\n" % (opts, self.mouse)
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--device", dest="device", default="")
-        op.add_option("--emulthree", dest="emulthree", default=False, action="store_true")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "mouse")
-
-        self.mouse = extra[0]
-        return self
-
-class FC3_Mouse(DeprecatedCommand):
-    def __init__(self):
-        DeprecatedCommand.__init__(self)
diff --git a/mic/kickstart/pykickstart/commands/multipath.py b/mic/kickstart/pykickstart/commands/multipath.py
deleted file mode 100644 (file)
index 84ba755..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-# Peter Jones <pjones@redhat.com>
-#
-# Copyright 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_MpPathData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.mpdev = kwargs.get("mpdev", "")
-        self.device = kwargs.get("device", "")
-        self.rule = kwargs.get("rule", "")
-
-    def __str__(self):
-        return " --device=%s --rule=\"%s\"" % (self.device, self.rule)
-
-class FC6_MultiPathData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.name = kwargs.get("name", "")
-        self.paths = kwargs.get("paths", [])
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-
-        for path in self.paths:
-            retval += "multipath --mpdev=%s %s\n" % (self.name, path.__str__())
-
-        return retval
-
-class FC6_MultiPath(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=50, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.mpaths = kwargs.get("mpaths", [])
-
-    def __str__(self):
-        retval = ""
-        for mpath in self.mpaths:
-            retval += mpath.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--name", dest="name", action="store", type="string",
-                      required=1)
-        op.add_option("--device", dest="device", action="store", type="string",
-                      required=1)
-        op.add_option("--rule", dest="rule", action="store", type="string",
-                      required=1)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        dd = FC6_MpPathData()
-        self._setToObj(self.op, opts, dd)
-        dd.lineno = self.lineno
-        dd.mpdev = dd.mpdev.split('/')[-1]
-
-        parent = None
-        for x in range(0, len(self.mpaths)):
-            mpath = self.mpaths[x]
-            for path in mpath.paths:
-                if path.device == dd.device:
-                    mapping = {"device": path.device, "multipathdev": path.mpdev}
-                    raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Device '%(device)s' is already used in multipath '%(multipathdev)s'") % mapping)
-            if mpath.name == dd.mpdev:
-                parent = x
-
-        if parent is None:
-            mpath = FC6_MultiPathData()
-            return mpath
-        else:
-            mpath = self.mpaths[parent]
-
-        return dd
-
-    def dataList(self):
-        return self.mpaths
diff --git a/mic/kickstart/pykickstart/commands/network.py b/mic/kickstart/pykickstart/commands/network.py
deleted file mode 100644 (file)
index 9b67f92..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_NetworkData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.bootProto = kwargs.get("bootProto", BOOTPROTO_DHCP)
-        self.dhcpclass = kwargs.get("dhcpclass", "")
-        self.device = kwargs.get("device", "")
-        self.essid = kwargs.get("essid", "")
-        self.ethtool = kwargs.get("ethtool", "")
-        self.gateway = kwargs.get("gateway", "")
-        self.hostname = kwargs.get("hostname", "")
-        self.ip = kwargs.get("ip", "")
-        self.mtu = kwargs.get("mtu", "")
-        self.nameserver = kwargs.get("nameserver", "")
-        self.netmask = kwargs.get("netmask", "")
-        self.nodns = kwargs.get("nodns", False)
-        self.onboot = kwargs.get("onboot", True)
-        self.wepkey = kwargs.get("wepkey", "")
-
-    def __eq__(self, y):
-        return self.device and self.device == y.device
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.bootProto != "":
-            retval += " --bootproto=%s" % self.bootProto
-        if self.dhcpclass != "":
-            retval += " --dhcpclass=%s" % self.dhcpclass
-        if self.device != "":
-            retval += " --device=%s" % self.device
-        if self.essid != "":
-            retval += " --essid=\"%s\"" % self.essid
-        if self.ethtool != "":
-            retval += " --ethtool=\"%s\"" % self.ethtool
-        if self.gateway != "":
-            retval += " --gateway=%s" % self.gateway
-        if self.hostname != "":
-            retval += " --hostname=%s" % self.hostname
-        if self.ip != "":
-            retval += " --ip=%s" % self.ip
-        if self.mtu != "":
-            retval += " --mtu=%s" % self.mtu
-        if self.nameserver != "":
-            retval += " --nameserver=%s" % self.nameserver
-        if self.netmask != "":
-            retval += " --netmask=%s" % self.netmask
-        if self.nodns:
-            retval += " --nodns"
-        if not self.onboot:
-            retval += " --onboot=off"
-        if self.wepkey != "":
-            retval += " --wepkey=%s" % self.wepkey
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "network %s\n" % self._getArgsAsStr()
-        return retval
-
-class FC4_NetworkData(FC3_NetworkData):
-    removedKeywords = FC3_NetworkData.removedKeywords
-    removedAttrs = FC3_NetworkData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC3_NetworkData.__init__(self, *args, **kwargs)
-        self.notksdevice = kwargs.get("notksdevice", False)
-
-    def _getArgsAsStr(self):
-        retval = FC3_NetworkData._getArgsAsStr(self)
-
-        if self.notksdevice:
-            retval += " --notksdevice"
-
-        return retval
-
-class FC6_NetworkData(FC4_NetworkData):
-    removedKeywords = FC4_NetworkData.removedKeywords
-    removedAttrs = FC4_NetworkData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC4_NetworkData.__init__(self, *args, **kwargs)
-        self.noipv4 = kwargs.get("noipv4", False)
-        self.noipv6 = kwargs.get("noipv6", False)
-
-    def _getArgsAsStr(self):
-        retval = FC4_NetworkData._getArgsAsStr(self)
-
-        if self.noipv4:
-            retval += " --noipv4"
-        if self.noipv6:
-            retval += " --noipv6"
-
-        return retval
-
-class F8_NetworkData(FC6_NetworkData):
-    removedKeywords = FC6_NetworkData.removedKeywords
-    removedAttrs = FC6_NetworkData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC6_NetworkData.__init__(self, *args, **kwargs)
-        self.ipv6 = kwargs.get("ipv6", "")
-
-    def _getArgsAsStr(self):
-        retval = FC6_NetworkData._getArgsAsStr(self)
-
-        if self.ipv6 != "":
-            retval += " --ipv6" % self.ipv6
-
-        return retval
-
-class F16_NetworkData(F8_NetworkData):
-    removedKeywords = F8_NetworkData.removedKeywords
-    removedAttrs = F8_NetworkData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F8_NetworkData.__init__(self, *args, **kwargs)
-        self.activate = kwargs.get("activate", False)
-        self.nodefroute = kwargs.get("nodefroute", False)
-        self.wpakey = kwargs.get("wpakey", "")
-
-    def _getArgsAsStr(self):
-        retval = F8_NetworkData._getArgsAsStr(self)
-
-        if self.activate:
-            retval += " --activate"
-        if self.nodefroute:
-            retval += " --nodefroute"
-        if self.wpakey != "":
-            retval += "--wpakey=%s" % self.wpakey
-
-        return retval
-
-class RHEL4_NetworkData(FC3_NetworkData):
-    removedKeywords = FC3_NetworkData.removedKeywords
-    removedAttrs = FC3_NetworkData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC3_NetworkData.__init__(self, *args, **kwargs)
-        self.notksdevice = kwargs.get("notksdevice", False)
-
-    def _getArgsAsStr(self):
-        retval = FC3_NetworkData._getArgsAsStr(self)
-
-        if self.notksdevice:
-            retval += " --notksdevice"
-
-        return retval
-
-class RHEL6_NetworkData(F8_NetworkData):
-    removedKeywords = F8_NetworkData.removedKeywords
-    removedAttrs = F8_NetworkData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F8_NetworkData.__init__(self, *args, **kwargs)
-        self.activate = kwargs.get("activate", False)
-        self.nodefroute = kwargs.get("nodefroute", False)
-
-    def _getArgsAsStr(self):
-        retval = F8_NetworkData._getArgsAsStr(self)
-
-        if self.activate:
-            retval += " --activate"
-        if self.nodefroute:
-            retval += " --nodefroute"
-
-        return retval
-
-class FC3_Network(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.bootprotoList = [BOOTPROTO_DHCP, BOOTPROTO_BOOTP,
-                              BOOTPROTO_STATIC]
-
-        self.op = self._getParser()
-
-        self.network = kwargs.get("network", [])
-
-    def __str__(self):
-        retval = ""
-
-        for nic in self.network:
-            retval += nic.__str__()
-
-        if retval != "":
-            return "# Network information\n" + retval
-        else:
-            return ""
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--bootproto", dest="bootProto",
-                      default=BOOTPROTO_DHCP,
-                      choices=self.bootprotoList)
-        op.add_option("--dhcpclass", dest="dhcpclass")
-        op.add_option("--device", dest="device")
-        op.add_option("--essid", dest="essid")
-        op.add_option("--ethtool", dest="ethtool")
-        op.add_option("--gateway", dest="gateway")
-        op.add_option("--hostname", dest="hostname")
-        op.add_option("--ip", dest="ip")
-        op.add_option("--mtu", dest="mtu")
-        op.add_option("--nameserver", dest="nameserver")
-        op.add_option("--netmask", dest="netmask")
-        op.add_option("--nodns", dest="nodns", action="store_true",
-                      default=False)
-        op.add_option("--onboot", dest="onboot", action="store",
-                      type="ksboolean")
-        op.add_option("--wepkey", dest="wepkey")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        nd = self.handler.NetworkData()
-        self._setToObj(self.op, opts, nd)
-        nd.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if nd in self.dataList():
-            warnings.warn(_("A network device with the name %s has already been defined.") % nd.device)
-
-        return nd
-
-    def dataList(self):
-        return self.network
-
-class FC4_Network(FC3_Network):
-    removedKeywords = FC3_Network.removedKeywords
-    removedAttrs = FC3_Network.removedAttrs
-
-    def _getParser(self):
-        op = FC3_Network._getParser(self)
-        op.add_option("--notksdevice", dest="notksdevice", action="store_true",
-                      default=False)
-        return op
-
-class FC6_Network(FC4_Network):
-    removedKeywords = FC4_Network.removedKeywords
-    removedAttrs = FC4_Network.removedAttrs
-
-    def _getParser(self):
-        op = FC4_Network._getParser(self)
-        op.add_option("--noipv4", dest="noipv4", action="store_true",
-                      default=False)
-        op.add_option("--noipv6", dest="noipv6", action="store_true",
-                      default=False)
-        return op
-
-class F8_Network(FC6_Network):
-    removedKeywords = FC6_Network.removedKeywords
-    removedAttrs = FC6_Network.removedAttrs
-
-    def _getParser(self):
-        op = FC6_Network._getParser(self)
-        op.add_option("--ipv6", dest="ipv6")
-        return op
-
-class F9_Network(F8_Network):
-    removedKeywords = F8_Network.removedKeywords
-    removedAttrs = F8_Network.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        F8_Network.__init__(self, writePriority, *args, **kwargs)
-        self.bootprotoList.append(BOOTPROTO_QUERY)
-
-    def _getParser(self):
-        op = F8_Network._getParser(self)
-        op.add_option("--bootproto", dest="bootProto",
-                      default=BOOTPROTO_DHCP,
-                      choices=self.bootprotoList)
-        return op
-
-class F16_Network(F9_Network):
-    removedKeywords = F9_Network.removedKeywords
-    removedAttrs = F9_Network.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        F9_Network.__init__(self, writePriority, *args, **kwargs)
-        self.bootprotoList.append(BOOTPROTO_IBFT)
-
-    def _getParser(self):
-        op = F9_Network._getParser(self)
-        op.add_option("--activate", dest="activate", action="store_true",
-                      default=False)
-        op.add_option("--nodefroute", dest="nodefroute", action="store_true",
-                      default=False)
-        op.add_option("--wpakey", dest="wpakey", action="store", default="")
-        return op
-
-class RHEL4_Network(FC3_Network):
-    removedKeywords = FC3_Network.removedKeywords
-    removedAttrs = FC3_Network.removedAttrs
-
-    def _getParser(self):
-        op = FC3_Network._getParser(self)
-        op.add_option("--notksdevice", dest="notksdevice", action="store_true",
-                      default=False)
-        return op
-
-class RHEL5_Network(FC6_Network):
-    removedKeywords = FC6_Network.removedKeywords
-    removedAttrs = FC6_Network.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC6_Network.__init__(self, writePriority, *args, **kwargs)
-        self.bootprotoList.append(BOOTPROTO_QUERY)
-
-    def _getParser(self):
-        op = FC6_Network._getParser(self)
-        op.add_option("--bootproto", dest="bootProto",
-                      default=BOOTPROTO_DHCP,
-                      choices=self.bootprotoList)
-        return op
-
-class RHEL6_Network(F9_Network):
-    removedKeywords = F9_Network.removedKeywords
-    removedAttrs = F9_Network.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        F9_Network.__init__(self, writePriority, *args, **kwargs)
-        self.bootprotoList.append(BOOTPROTO_IBFT)
-
-    def _getParser(self):
-        op = F9_Network._getParser(self)
-        op.add_option("--activate", dest="activate", action="store_true",
-                      default=False)
-        op.add_option("--nodefroute", dest="nodefroute", action="store_true",
-                      default=False)
-        return op
diff --git a/mic/kickstart/pykickstart/commands/partition.py b/mic/kickstart/pykickstart/commands/partition.py
deleted file mode 100644 (file)
index 34e5b7a..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_PartData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.active = kwargs.get("active", False)
-        self.primOnly = kwargs.get("primOnly", False)
-        self.end = kwargs.get("end", 0)
-        self.fstype = kwargs.get("fstype", "")
-        self.grow = kwargs.get("grow", False)
-        self.maxSizeMB = kwargs.get("maxSizeMB", 0)
-        self.format = kwargs.get("format", True)
-        self.onbiosdisk = kwargs.get("onbiosdisk", "")
-        self.disk = kwargs.get("disk", "")
-        self.onPart = kwargs.get("onPart", "")
-        self.recommended = kwargs.get("recommended", False)
-        self.size = kwargs.get("size", None)
-        self.start = kwargs.get("start", 0)
-        self.mountpoint = kwargs.get("mountpoint", "")
-
-    def __eq__(self, y):
-        return self.mountpoint == y.mountpoint
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.active:
-            retval += " --active"
-        if self.primOnly:
-            retval += " --asprimary"
-        if hasattr(self, "end") and self.end != 0:
-            retval += " --end=%s" % self.end
-        if self.fstype != "":
-            retval += " --fstype=\"%s\"" % self.fstype
-        if self.grow:
-            retval += " --grow"
-        if self.maxSizeMB > 0:
-            retval += " --maxsize=%d" % self.maxSizeMB
-        if not self.format:
-            retval += " --noformat"
-        if self.onbiosdisk != "":
-            retval += " --onbiosdisk=%s" % self.onbiosdisk
-        if self.disk != "":
-            retval += " --ondisk=%s" % self.disk
-        if self.onPart != "":
-            retval += " --onpart=%s" % self.onPart
-        if self.recommended:
-            retval += " --recommended"
-        if self.size and self.size != 0:
-            retval += " --size=%s" % self.size
-        if hasattr(self, "start") and self.start != 0:
-            retval += " --start=%s" % self.start
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "part %s%s\n" % (self.mountpoint, self._getArgsAsStr())
-        return retval
-
-class FC4_PartData(FC3_PartData):
-    removedKeywords = FC3_PartData.removedKeywords
-    removedAttrs = FC3_PartData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC3_PartData.__init__(self, *args, **kwargs)
-        self.bytesPerInode = kwargs.get("bytesPerInode", 4096)
-        self.fsopts = kwargs.get("fsopts", "")
-        self.label = kwargs.get("label", "")
-
-    def _getArgsAsStr(self):
-        retval = FC3_PartData._getArgsAsStr(self)
-
-        if hasattr(self, "bytesPerInode") and self.bytesPerInode != 0:
-            retval += " --bytes-per-inode=%d" % self.bytesPerInode
-        if self.fsopts != "":
-            retval += " --fsoptions=\"%s\"" % self.fsopts
-        if self.label != "":
-            retval += " --label=%s" % self.label
-
-        return retval
-
-class RHEL5_PartData(FC4_PartData):
-    removedKeywords = FC4_PartData.removedKeywords
-    removedAttrs = FC4_PartData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC4_PartData.__init__(self, *args, **kwargs)
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-    def _getArgsAsStr(self):
-        retval = FC4_PartData._getArgsAsStr(self)
-
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\"" % self.passphrase
-
-        return retval
-
-class F9_PartData(FC4_PartData):
-    removedKeywords = FC4_PartData.removedKeywords + ["bytesPerInode"]
-    removedAttrs = FC4_PartData.removedAttrs + ["bytesPerInode"]
-
-    def __init__(self, *args, **kwargs):
-        FC4_PartData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.fsopts = kwargs.get("fsopts", "")
-        self.label = kwargs.get("label", "")
-        self.fsprofile = kwargs.get("fsprofile", "")
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-    def _getArgsAsStr(self):
-        retval = FC4_PartData._getArgsAsStr(self)
-
-        if self.fsprofile != "":
-            retval += " --fsprofile=\"%s\"" % self.fsprofile
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\"" % self.passphrase
-
-        return retval
-
-class F11_PartData(F9_PartData):
-    removedKeywords = F9_PartData.removedKeywords + ["start", "end"]
-    removedAttrs = F9_PartData.removedAttrs + ["start", "end"]
-
-class F12_PartData(F11_PartData):
-    removedKeywords = F11_PartData.removedKeywords
-    removedAttrs = F11_PartData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F11_PartData.__init__(self, *args, **kwargs)
-
-        self.escrowcert = kwargs.get("escrowcert", "")
-        self.backuppassphrase = kwargs.get("backuppassphrase", False)
-
-    def _getArgsAsStr(self):
-        retval = F11_PartData._getArgsAsStr(self)
-
-        if self.encrypted and self.escrowcert != "":
-            retval += " --escrowcert=\"%s\"" % self.escrowcert
-
-            if self.backuppassphrase:
-                retval += " --backuppassphrase"
-
-        return retval
-
-F14_PartData = F12_PartData
-
-class FC3_Partition(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=130, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.partitions = kwargs.get("partitions", [])
-
-    def __str__(self):
-        retval = ""
-
-        for part in self.partitions:
-            retval += part.__str__()
-
-        if retval != "":
-            return "# Disk partitioning information\n" + retval
-        else:
-            return ""
-
-    def _getParser(self):
-        def part_cb (option, opt_str, value, parser):
-            if value.startswith("/dev/"):
-                parser.values.ensure_value(option.dest, value[5:])
-            else:
-                parser.values.ensure_value(option.dest, value)
-
-        op = KSOptionParser()
-        op.add_option("--active", dest="active", action="store_true",
-                      default=False)
-        op.add_option("--asprimary", dest="primOnly", action="store_true",
-                      default=False)
-        op.add_option("--end", dest="end", action="store", type="int",
-                      nargs=1)
-        op.add_option("--fstype", "--type", dest="fstype")
-        op.add_option("--grow", dest="grow", action="store_true", default=False)
-        op.add_option("--maxsize", dest="maxSizeMB", action="store", type="int",
-                      nargs=1)
-        op.add_option("--noformat", dest="format", action="store_false",
-                      default=True)
-        op.add_option("--onbiosdisk", dest="onbiosdisk")
-        op.add_option("--ondisk", "--ondrive", dest="disk")
-        op.add_option("--onpart", "--usepart", dest="onPart", action="callback",
-                      callback=part_cb, nargs=1, type="string")
-        op.add_option("--recommended", dest="recommended", action="store_true",
-                      default=False)
-        op.add_option("--size", dest="size", action="store", type="int",
-                      nargs=1)
-        op.add_option("--start", dest="start", action="store", type="int",
-                      nargs=1)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Mount point required for %s") % "partition")
-
-        pd = self.handler.PartData()
-        self._setToObj(self.op, opts, pd)
-        pd.lineno = self.lineno
-        pd.mountpoint=extra[0]
-
-        # Check for duplicates in the data list.
-        if pd in self.dataList():
-            warnings.warn(_("A partition with the mountpoint %s has already been defined.") % pd.mountpoint)
-
-        return pd
-
-    def dataList(self):
-        return self.partitions
-
-class FC4_Partition(FC3_Partition):
-    removedKeywords = FC3_Partition.removedKeywords
-    removedAttrs = FC3_Partition.removedAttrs
-
-    def __init__(self, writePriority=130, *args, **kwargs):
-        FC3_Partition.__init__(self, writePriority, *args, **kwargs)
-
-        def part_cb (option, opt_str, value, parser):
-            if value.startswith("/dev/"):
-                parser.values.ensure_value(option.dest, value[5:])
-            else:
-                parser.values.ensure_value(option.dest, value)
-
-    def _getParser(self):
-        op = FC3_Partition._getParser(self)
-        op.add_option("--bytes-per-inode", dest="bytesPerInode", action="store",
-                      type="int", nargs=1)
-        op.add_option("--fsoptions", dest="fsopts")
-        op.add_option("--label", dest="label")
-        return op
-
-class RHEL5_Partition(FC4_Partition):
-    removedKeywords = FC4_Partition.removedKeywords
-    removedAttrs = FC4_Partition.removedAttrs
-
-    def __init__(self, writePriority=130, *args, **kwargs):
-        FC4_Partition.__init__(self, writePriority, *args, **kwargs)
-
-        def part_cb (option, opt_str, value, parser):
-            if value.startswith("/dev/"):
-                parser.values.ensure_value(option.dest, value[5:])
-            else:
-                parser.values.ensure_value(option.dest, value)
-
-    def _getParser(self):
-        op = FC4_Partition._getParser(self)
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-class F9_Partition(FC4_Partition):
-    removedKeywords = FC4_Partition.removedKeywords
-    removedAttrs = FC4_Partition.removedAttrs
-
-    def __init__(self, writePriority=130, *args, **kwargs):
-        FC4_Partition.__init__(self, writePriority, *args, **kwargs)
-
-        def part_cb (option, opt_str, value, parser):
-            if value.startswith("/dev/"):
-                parser.values.ensure_value(option.dest, value[5:])
-            else:
-                parser.values.ensure_value(option.dest, value)
-
-    def _getParser(self):
-        op = FC4_Partition._getParser(self)
-        op.add_option("--bytes-per-inode", deprecated=1)
-        op.add_option("--fsprofile")
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-class F11_Partition(F9_Partition):
-    removedKeywords = F9_Partition.removedKeywords
-    removedAttrs = F9_Partition.removedAttrs
-
-    def _getParser(self):
-        op = F9_Partition._getParser(self)
-        op.add_option("--start", deprecated=1)
-        op.add_option("--end", deprecated=1)
-        return op
-
-class F12_Partition(F11_Partition):
-    removedKeywords = F11_Partition.removedKeywords
-    removedAttrs = F11_Partition.removedAttrs
-
-    def _getParser(self):
-        op = F11_Partition._getParser(self)
-        op.add_option("--escrowcert")
-        op.add_option("--backuppassphrase", action="store_true", default=False)
-        return op
-
-class F14_Partition(F12_Partition):
-    removedKeywords = F12_Partition.removedKeywords
-    removedAttrs = F12_Partition.removedAttrs
-
-    def _getParser(self):
-        op = F12_Partition._getParser(self)
-        op.remove_option("--bytes-per-inode")
-        op.remove_option("--start")
-        op.remove_option("--end")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/raid.py b/mic/kickstart/pykickstart/commands/raid.py
deleted file mode 100644 (file)
index 0f4c92a..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008, 2011 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_RaidData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.device = kwargs.get("device", None)
-        self.fstype = kwargs.get("fstype", "")
-        self.level = kwargs.get("level", "")
-        self.format = kwargs.get("format", True)
-        self.spares = kwargs.get("spares", 0)
-        self.preexist = kwargs.get("preexist", False)
-        self.mountpoint = kwargs.get("mountpoint", "")
-        self.members = kwargs.get("members", [])
-
-    def __eq__(self, y):
-        return self.device == y.device
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.device != "":
-            retval += " --device=%s" % self.device
-        if self.fstype != "":
-            retval += " --fstype=\"%s\"" % self.fstype
-        if self.level != "":
-            retval += " --level=%s" % self.level
-        if not self.format:
-            retval += " --noformat"
-        if self.spares != 0:
-            retval += " --spares=%d" % self.spares
-        if self.preexist:
-            retval += " --useexisting"
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "raid %s%s %s\n" % (self.mountpoint, self._getArgsAsStr(),
-                                      " ".join(self.members))
-        return retval
-
-class FC4_RaidData(FC3_RaidData):
-    removedKeywords = FC3_RaidData.removedKeywords
-    removedAttrs = FC3_RaidData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC3_RaidData.__init__(self, *args, **kwargs)
-        self.fsopts = kwargs.get("fsopts", "")
-
-    def _getArgsAsStr(self):
-        retval = FC3_RaidData._getArgsAsStr(self)
-
-        if self.fsopts != "":
-            retval += " --fsoptions=\"%s\"" % self.fsopts
-
-        return retval
-
-class FC5_RaidData(FC4_RaidData):
-    removedKeywords = FC4_RaidData.removedKeywords
-    removedAttrs = FC4_RaidData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC4_RaidData.__init__(self, *args, **kwargs)
-        self.bytesPerInode = kwargs.get("bytesPerInode", 4096)
-
-    def _getArgsAsStr(self):
-        retval = FC4_RaidData._getArgsAsStr(self)
-
-        if hasattr(self, "bytesPerInode") and self.bytesPerInode != 0:
-            retval += " --bytes-per-inode=%d" % self.bytesPerInode
-
-        return retval
-
-class RHEL5_RaidData(FC5_RaidData):
-    removedKeywords = FC5_RaidData.removedKeywords
-    removedAttrs = FC5_RaidData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC5_RaidData.__init__(self, *args, **kwargs)
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-    def _getArgsAsStr(self):
-        retval = FC5_RaidData._getArgsAsStr(self)
-
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\"" % self.passphrase
-
-        return retval
-
-F7_RaidData = FC5_RaidData
-
-class F9_RaidData(FC5_RaidData):
-    removedKeywords = FC5_RaidData.removedKeywords + ["bytesPerInode"]
-    removedAttrs = FC5_RaidData.removedAttrs + ["bytesPerInode"]
-
-    def __init__(self, *args, **kwargs):
-        FC5_RaidData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.fsprofile = kwargs.get("fsprofile", "")
-        self.encrypted = kwargs.get("encrypted", False)
-        self.passphrase = kwargs.get("passphrase", "")
-
-    def _getArgsAsStr(self):
-        retval = FC5_RaidData._getArgsAsStr(self)
-
-        if self.fsprofile != "":
-            retval += " --fsprofile=\"%s\"" % self.fsprofile
-        if self.encrypted:
-            retval += " --encrypted"
-
-            if self.passphrase != "":
-                retval += " --passphrase=\"%s\"" % self.passphrase
-
-        return retval
-
-class F12_RaidData(F9_RaidData):
-    removedKeywords = F9_RaidData.removedKeywords
-    removedAttrs = F9_RaidData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F9_RaidData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.escrowcert = kwargs.get("escrowcert", "")
-        self.backuppassphrase = kwargs.get("backuppassphrase", False)
-
-    def _getArgsAsStr(self):
-        retval = F9_RaidData._getArgsAsStr(self)
-
-        if self.encrypted and self.escrowcert != "":
-            retval += " --escrowcert=\"%s\"" % self.escrowcert
-
-            if self.backuppassphrase:
-                retval += " --backuppassphrase"
-        return retval
-
-F13_RaidData = F12_RaidData
-
-F14_RaidData = F13_RaidData
-
-class F15_RaidData(F14_RaidData):
-    removedKeywords = F14_RaidData.removedKeywords
-    removedAttrs = F14_RaidData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F14_RaidData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.label = kwargs.get("label", "")
-
-    def _getArgsAsStr(self):
-        retval = F14_RaidData._getArgsAsStr(self)
-
-        if self.label != "":
-            retval += " --label=%s" % self.label
-
-        return retval
-
-class FC3_Raid(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=131, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        # A dict of all the RAID levels we support.  This means that if we
-        # support more levels in the future, subclasses don't have to
-        # duplicate too much.
-        self.levelMap = { "RAID0": "RAID0", "0": "RAID0",
-                          "RAID1": "RAID1", "1": "RAID1",
-                          "RAID5": "RAID5", "5": "RAID5",
-                          "RAID6": "RAID6", "6": "RAID6" }
-
-        self.raidList = kwargs.get("raidList", [])
-
-    def __str__(self):
-        retval = ""
-
-        for raid in self.raidList:
-            retval += raid.__str__()
-
-        return retval
-
-    def _getParser(self):
-        def raid_cb (option, opt_str, value, parser):
-            parser.values.format = False
-            parser.values.preexist = True
-
-        def device_cb (option, opt_str, value, parser):
-            if value[0:2] == "md":
-                parser.values.ensure_value(option.dest, value[2:])
-            else:
-                parser.values.ensure_value(option.dest, value)
-
-        def level_cb (option, opt_str, value, parser):
-            if self.levelMap.has_key(value):
-                parser.values.ensure_value(option.dest, self.levelMap[value])
-
-        op = KSOptionParser()
-        op.add_option("--device", action="callback", callback=device_cb,
-                      dest="device", type="string", nargs=1, required=1)
-        op.add_option("--fstype", dest="fstype")
-        op.add_option("--level", dest="level", action="callback",
-                      callback=level_cb, type="string", nargs=1)
-        op.add_option("--noformat", action="callback", callback=raid_cb,
-                      dest="format", default=True, nargs=0)
-        op.add_option("--spares", dest="spares", action="store", type="int",
-                      nargs=1, default=0)
-        op.add_option("--useexisting", dest="preexist", action="store_true",
-                      default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) == 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Mount point required for %s") % "raid")
-        if len(extra) == 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Partitions required for %s") % "raid")
-
-        rd = self.handler.RaidData()
-        self._setToObj(self.op, opts, rd)
-        rd.lineno = self.lineno
-
-        # --device can't just take an int in the callback above, because it
-        # could be specificed as "mdX", which causes optparse to error when
-        # it runs int().
-        rd.device = int(rd.device)
-        rd.mountpoint = extra[0]
-        rd.members = extra[1:]
-
-        # Check for duplicates in the data list.
-        if rd in self.dataList():
-            warnings.warn(_("A RAID device with the name %s has already been defined.") % rd.device)
-
-        return rd
-
-    def dataList(self):
-        return self.raidList
-
-class FC4_Raid(FC3_Raid):
-    removedKeywords = FC3_Raid.removedKeywords
-    removedAttrs = FC3_Raid.removedAttrs
-
-    def _getParser(self):
-        op = FC3_Raid._getParser(self)
-        op.add_option("--fsoptions", dest="fsopts")
-        return op
-
-class FC5_Raid(FC4_Raid):
-    removedKeywords = FC4_Raid.removedKeywords
-    removedAttrs = FC4_Raid.removedAttrs
-
-    def _getParser(self):
-        op = FC4_Raid._getParser(self)
-        op.add_option("--bytes-per-inode", dest="bytesPerInode", action="store",
-                      type="int", nargs=1)
-        return op
-
-class RHEL5_Raid(FC5_Raid):
-    removedKeywords = FC5_Raid.removedKeywords
-    removedAttrs = FC5_Raid.removedAttrs
-
-    def __init__(self, writePriority=131, *args, **kwargs):
-        FC5_Raid.__init__(self, writePriority, *args, **kwargs)
-
-        self.levelMap.update({"RAID10": "RAID10", "10": "RAID10"})
-
-    def _getParser(self):
-        op = FC5_Raid._getParser(self)
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-class F7_Raid(FC5_Raid):
-    removedKeywords = FC5_Raid.removedKeywords
-    removedAttrs = FC5_Raid.removedAttrs
-
-    def __init__(self, writePriority=131, *args, **kwargs):
-        FC5_Raid.__init__(self, writePriority, *args, **kwargs)
-
-        self.levelMap.update({"RAID10": "RAID10", "10": "RAID10"})
-
-class F9_Raid(F7_Raid):
-    removedKeywords = F7_Raid.removedKeywords
-    removedAttrs = F7_Raid.removedAttrs
-
-    def _getParser(self):
-        op = F7_Raid._getParser(self)
-        op.add_option("--bytes-per-inode", deprecated=1)
-        op.add_option("--fsprofile")
-        op.add_option("--encrypted", action="store_true", default=False)
-        op.add_option("--passphrase")
-        return op
-
-class F12_Raid(F9_Raid):
-    removedKeywords = F9_Raid.removedKeywords
-    removedAttrs = F9_Raid.removedAttrs
-
-    def _getParser(self):
-        op = F9_Raid._getParser(self)
-        op.add_option("--escrowcert")
-        op.add_option("--backuppassphrase", action="store_true", default=False)
-        return op
-
-class F13_Raid(F12_Raid):
-    removedKeywords = F12_Raid.removedKeywords
-    removedAttrs = F12_Raid.removedAttrs
-
-    def __init__(self, writePriority=131, *args, **kwargs):
-        F12_Raid.__init__(self, writePriority, *args, **kwargs)
-
-        self.levelMap.update({"RAID4": "RAID4", "4": "RAID4"})
-
-class F14_Raid(F13_Raid):
-    removedKeywords = F13_Raid.removedKeywords
-    removedAttrs = F13_Raid.removedAttrs
-
-    def _getParser(self):
-        op = F13_Raid._getParser(self)
-        op.remove_option("--bytes-per-inode")
-        return op
-
-class F15_Raid(F14_Raid):
-    removedKeywords = F14_Raid.removedKeywords
-    removedAttrs = F14_Raid.removedAttrs
-
-    def _getParser(self):
-        op = F14_Raid._getParser(self)
-        op.add_option("--label")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/reboot.py b/mic/kickstart/pykickstart/commands/reboot.py
deleted file mode 100644 (file)
index 391af14..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-class FC3_Reboot(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.action = kwargs.get("action", None)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.action == KS_REBOOT:
-            retval += "# Reboot after installation\nreboot\n"
-        elif self.action == KS_SHUTDOWN:
-            retval += "# Shutdown after installation\nshutdown\n"
-
-        return retval
-
-    def parse(self, args):
-        if self.currentCmd == "reboot":
-            self.action = KS_REBOOT
-        else:
-            self.action = KS_SHUTDOWN
-
-        return self
-
-class FC6_Reboot(FC3_Reboot):
-    removedKeywords = FC3_Reboot.removedKeywords
-    removedAttrs = FC3_Reboot.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_Reboot.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.eject = kwargs.get("eject", False)
-
-    def __str__(self):
-        retval = FC3_Reboot.__str__(self).rstrip()
-
-        if self.eject:
-            retval += " --eject"
-
-        return retval + "\n"
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--eject", dest="eject", action="store_true",
-                      default=False)
-        return op
-
-    def parse(self, args):
-        FC3_Reboot.parse(self, args)
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        return self
diff --git a/mic/kickstart/pykickstart/commands/repo.py b/mic/kickstart/pykickstart/commands/repo.py
deleted file mode 100644 (file)
index 543ef94..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007, 2008, 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_RepoData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.baseurl = kwargs.get("baseurl", "")
-        self.mirrorlist = kwargs.get("mirrorlist", None)
-        self.name = kwargs.get("name", "")
-
-    def __eq__(self, y):
-        return self.name == y.name
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.baseurl:
-            retval += "--baseurl=%s" % self.baseurl
-        elif self.mirrorlist:
-            retval += "--mirrorlist=%s" % self.mirrorlist
-
-        return retval
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "repo --name=\"%s\" %s\n" % (self.name, self._getArgsAsStr())
-        return retval
-
-class F8_RepoData(FC6_RepoData):
-    removedKeywords = FC6_RepoData.removedKeywords
-    removedAttrs = FC6_RepoData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC6_RepoData.__init__(self, *args, **kwargs)
-        self.cost = kwargs.get("cost", None)
-        self.includepkgs = kwargs.get("includepkgs", [])
-        self.excludepkgs = kwargs.get("excludepkgs", [])
-
-    def _getArgsAsStr(self):
-        retval = FC6_RepoData._getArgsAsStr(self)
-
-        if self.cost:
-            retval += " --cost=%s" % self.cost
-        if self.includepkgs:
-            retval += " --includepkgs=\"%s\"" % ",".join(self.includepkgs)
-        if self.excludepkgs:
-            retval += " --excludepkgs=\"%s\"" % ",".join(self.excludepkgs)
-
-        return retval
-
-class F11_RepoData(F8_RepoData):
-    removedKeywords = F8_RepoData.removedKeywords
-    removedAttrs = F8_RepoData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F8_RepoData.__init__(self, *args, **kwargs)
-        self.ignoregroups = kwargs.get("ignoregroups", None)
-
-    def _getArgsAsStr(self):
-        retval = F8_RepoData._getArgsAsStr(self)
-
-        if self.ignoregroups:
-            retval += " --ignoregroups=true"
-        return retval
-
-class F13_RepoData(F11_RepoData):
-    removedKeywords = F11_RepoData.removedKeywords
-    removedAttrs = F11_RepoData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F11_RepoData.__init__(self, *args, **kwargs)
-        self.proxy = kwargs.get("proxy", "")
-
-    def _getArgsAsStr(self):
-        retval = F11_RepoData._getArgsAsStr(self)
-
-        if self.proxy:
-            retval += " --proxy=\"%s\"" % self.proxy
-
-        return retval
-
-class F14_RepoData(F13_RepoData):
-    removedKeywords = F13_RepoData.removedKeywords
-    removedAttrs = F13_RepoData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F13_RepoData.__init__(self, *args, **kwargs)
-        self.noverifyssl = kwargs.get("noverifyssl", False)
-
-    def _getArgsAsStr(self):
-        retval = F13_RepoData._getArgsAsStr(self)
-
-        if self.noverifyssl:
-            retval += " --noverifyssl"
-
-        return retval
-
-RHEL6_RepoData = F14_RepoData
-
-F15_RepoData = F14_RepoData
-
-class FC6_Repo(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    urlRequired = True
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.repoList = kwargs.get("repoList", [])
-
-    def __str__(self):
-        retval = ""
-        for repo in self.repoList:
-            retval += repo.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--name", dest="name", required=1)
-        op.add_option("--baseurl")
-        op.add_option("--mirrorlist")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        
-        if len(extra) != 0:
-            mapping = {"command": "repo", "options": extra}
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
-
-        # This is lame, but I can't think of a better way to make sure only
-        # one of these two is specified.
-        if opts.baseurl and opts.mirrorlist:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --baseurl and --mirrorlist may be specified for repo command."))
-
-        if self.urlRequired and not opts.baseurl and not opts.mirrorlist:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --baseurl or --mirrorlist must be specified for repo command."))
-
-        rd = self.handler.RepoData()
-        self._setToObj(self.op, opts, rd)
-        rd.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if rd in self.dataList():
-            warnings.warn(_("A repo with the name %s has already been defined.") % rd.name)
-
-        return rd
-
-    def dataList(self):
-        return self.repoList
-
-class F8_Repo(FC6_Repo):
-    removedKeywords = FC6_Repo.removedKeywords
-    removedAttrs = FC6_Repo.removedAttrs
-
-    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 = FC6_Repo._getParser(self)
-        op.add_option("--cost", action="store", type="int")
-        op.add_option("--excludepkgs", action="callback", callback=list_cb,
-                      nargs=1, type="string")
-        op.add_option("--includepkgs", action="callback", callback=list_cb,
-                      nargs=1, type="string")
-        return op
-
-    def methodToRepo(self):
-        if not self.handler.method.url:
-            raise KickstartError, formatErrorMsg(self.handler.method.lineno, msg=_("Method must be a url to be added to the repo list."))
-        reponame = "ks-method-url"
-        repourl = self.handler.method.url
-        rd = self.handler.RepoData(name=reponame, baseurl=repourl)
-        return rd
-
-class F11_Repo(F8_Repo):
-    removedKeywords = F8_Repo.removedKeywords
-    removedAttrs = F8_Repo.removedAttrs
-
-    def _getParser(self):
-        op = F8_Repo._getParser(self)
-        op.add_option("--ignoregroups", action="store", type="ksboolean")
-        return op
-
-class F13_Repo(F11_Repo):
-    removedKeywords = F11_Repo.removedKeywords
-    removedAttrs = F11_Repo.removedAttrs
-
-    def _getParser(self):
-        op = F11_Repo._getParser(self)
-        op.add_option("--proxy")
-        return op
-
-class F14_Repo(F13_Repo):
-    removedKeywords = F13_Repo.removedKeywords
-    removedAttrs = F13_Repo.removedAttrs
-
-    def _getParser(self):
-        op = F13_Repo._getParser(self)
-        op.add_option("--noverifyssl", action="store_true", default=False)
-        return op
-
-RHEL6_Repo = F14_Repo
-
-class F15_Repo(F14_Repo):
-    removedKeywords = F14_Repo.removedKeywords
-    removedAttrs = F14_Repo.removedAttrs
-
-    urlRequired = False
diff --git a/mic/kickstart/pykickstart/commands/rescue.py b/mic/kickstart/pykickstart/commands/rescue.py
deleted file mode 100644 (file)
index 1893d4e..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# Alexander Todorov <atodorov@redhat.com>
-#
-# Copyright 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class F10_Rescue(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.rescue = False
-        self.nomount = kwargs.get("nomount", False)
-        self.romount = kwargs.get("romount", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.rescue:
-            retval += "rescue"
-
-            if self.nomount:
-                retval += " --nomount"
-            if self.romount:
-                retval += " --romount"
-
-            retval = "# Start rescue mode\n%s\n" % retval
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--nomount", dest="nomount", action="store_true", default=False)
-        op.add_option("--romount", dest="romount", action="store_true", default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if opts.nomount and opts.romount:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --nomount and --romount may be specified for rescue command."))
-
-        self._setToSelf(self.op, opts)
-        self.rescue = True
-        return self
diff --git a/mic/kickstart/pykickstart/commands/rootpw.py b/mic/kickstart/pykickstart/commands/rootpw.py
deleted file mode 100644 (file)
index e038b45..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_RootPw(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.isCrypted = kwargs.get("isCrypted", False)
-        self.password = kwargs.get("password", "")
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if self.isCrypted:
-            retval += " --iscrypted"
-
-        return retval
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.password != "":
-            retval += "# Root password\nrootpw%s %s\n" % (self._getArgsAsStr(), self.password)
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--iscrypted", dest="isCrypted", action="store_true",
-                      default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "rootpw")
-
-        self.password = extra[0]
-        return self
-
-class F8_RootPw(FC3_RootPw):
-    removedKeywords = FC3_RootPw.removedKeywords
-    removedAttrs = FC3_RootPw.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_RootPw.__init__(self, writePriority, *args, **kwargs)
-        self.lock = kwargs.get("lock", False)
-
-    def _getArgsAsStr(self):
-        retval = FC3_RootPw._getArgsAsStr(self)
-
-        if self.lock:
-            retval += " --lock"
-
-        if not self.isCrypted:
-            retval += " --plaintext"
-
-        return retval
-
-    def _getParser(self):
-        op = FC3_RootPw._getParser(self)
-        op.add_option("--lock", dest="lock", action="store_true", default=False)
-        op.add_option("--plaintext", dest="isCrypted", action="store_false")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/selinux.py b/mic/kickstart/pykickstart/commands/selinux.py
deleted file mode 100644 (file)
index 9f8059c..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.options import *
-
-class FC3_SELinux(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.selinux = kwargs.get("selinux", None)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if not retval and self.selinux is None:
-            return ""
-
-        retval += "# SELinux configuration\n"
-
-        if self.selinux == SELINUX_DISABLED:
-            retval += "selinux --disabled\n"
-        elif self.selinux == SELINUX_ENFORCING:
-            retval += "selinux --enforcing\n"
-        elif self.selinux == SELINUX_PERMISSIVE:
-            retval += "selinux --permissive\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--disabled", dest="selinux", action="store_const",
-                      const=SELINUX_DISABLED)
-        op.add_option("--enforcing", dest="selinux", action="store_const",
-                      const=SELINUX_ENFORCING)
-        op.add_option("--permissive", dest="selinux", action="store_const",
-                      const=SELINUX_PERMISSIVE)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        return self
diff --git a/mic/kickstart/pykickstart/commands/services.py b/mic/kickstart/pykickstart/commands/services.py
deleted file mode 100644 (file)
index 2e0eab8..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_Services(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.disabled = kwargs.get("disabled", [])
-        self.enabled = kwargs.get("enabled", [])
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-        args = ""
-
-        if len(self.disabled) > 0:
-            args += " --disabled=\"%s\"" % ",".join(self.disabled)
-        if len(self.enabled) > 0:
-            args += " --enabled=\"%s\"" % ",".join(self.enabled)
-
-        if args != "":
-            retval += "# System services\nservices%s\n" % args
-
-        return retval
-
-    def _getParser(self):
-        def services_cb (option, opt_str, value, parser):
-            for d in value.split(','):
-                parser.values.ensure_value(option.dest, []).append(d.strip())
-
-        op = KSOptionParser()
-        op.add_option("--disabled", dest="disabled", action="callback",
-                      callback=services_cb, nargs=1, type="string")
-        op.add_option("--enabled", dest="enabled", action="callback",
-                      callback=services_cb, nargs=1, type="string")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-
-        if len(self.disabled) == 0 and len(self.enabled) == 0:
-            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("One of --disabled or --enabled must be provided."))
-
-        return self
diff --git a/mic/kickstart/pykickstart/commands/skipx.py b/mic/kickstart/pykickstart/commands/skipx.py
deleted file mode 100644 (file)
index 36d1a8d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_SkipX(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.skipx = kwargs.get("skipx", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.skipx:
-            retval += "# Do not configure the X Window System\nskipx\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if len(extra) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "skipx")
-
-        self.skipx = True
-        return self
diff --git a/mic/kickstart/pykickstart/commands/sshpw.py b/mic/kickstart/pykickstart/commands/sshpw.py
deleted file mode 100644 (file)
index e7867eb..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-# Peter Jones <pjones@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class F13_SshPwData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.username = kwargs.get("username", None)
-        self.isCrypted = kwargs.get("isCrypted", False)
-        self.password = kwargs.get("password", "")
-        self.lock = kwargs.get("lock", False)
-
-    def __eq__(self, y):
-        return self.username == y.username
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-
-        retval += "sshpw"
-        retval += self._getArgsAsStr() + '\n'
-
-        return retval
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        retval += " --username=%s" % self.username
-        if self.lock:
-            retval += " --lock"
-        if self.isCrypted:
-            retval += " --iscrypted"
-        else:
-            retval += " --plaintext"
-
-        retval += " %s" % self.password
-        return retval
-
-class F13_SshPw(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.sshUserList = kwargs.get("sshUserList", [])
-
-    def __str__(self):
-        retval = ""
-        for user in self.sshUserList:
-            retval += user.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--username", dest="username", required=True)
-        op.add_option("--iscrypted", dest="isCrypted", action="store_true",
-                      default=False)
-        op.add_option("--plaintext", dest="isCrypted", action="store_false")
-        op.add_option("--lock", dest="lock", action="store_true", default=False)
-        return op
-
-    def parse(self, args):
-        ud = self.handler.SshPwData()
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToObj(self.op, opts, ud)
-        ud.lineno = self.lineno
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "sshpw")
-        ud.password = extra[0]
-
-        if ud in self.dataList():
-            warnings.warn(_("An ssh user with the name %s has already been defined.") % ud.name)
-
-        return ud
-
-    def dataList(self):
-        return self.sshUserList
diff --git a/mic/kickstart/pykickstart/commands/timezone.py b/mic/kickstart/pykickstart/commands/timezone.py
deleted file mode 100644 (file)
index f5441de..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Timezone(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.isUtc = kwargs.get("isUtc", False)
-        self.timezone = kwargs.get("timezone", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.timezone != "":
-            if self.isUtc:
-                utc = "--utc"
-            else:
-                utc = ""
-
-            retval += "# System timezone\ntimezone %s %s\n" %(utc, self.timezone)
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--utc", dest="isUtc", action="store_true", default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-
-        if len(extra) != 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "timezone")
-
-        self.timezone = extra[0]
-        return self
-
-class FC6_Timezone(FC3_Timezone):
-    removedKeywords = FC3_Timezone.removedKeywords
-    removedAttrs = FC3_Timezone.removedAttrs
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.timezone != "":
-            if self.isUtc:
-                utc = "--isUtc"
-            else:
-                utc = ""
-
-            retval += "# System timezone\ntimezone %s %s\n" %(utc, self.timezone)
-
-        return retval
-
-    def _getParser(self):
-        op = FC3_Timezone._getParser(self)
-        op.add_option("--utc", "--isUtc", dest="isUtc", action="store_true", default=False)
-        return op
diff --git a/mic/kickstart/pykickstart/commands/updates.py b/mic/kickstart/pykickstart/commands/updates.py
deleted file mode 100644 (file)
index 53ec49f..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class F7_Updates(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.url = kwargs.get("url", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.url == "floppy":
-            retval += "updates\n"
-        elif self.url != "":
-            retval += "updates %s\n" % self.url
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 1:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s only takes one argument") % "updates")
-        elif len(extra) == 0:
-            self.url = "floppy"
-        else:
-            self.url = extra[0]
-
-        return self
diff --git a/mic/kickstart/pykickstart/commands/upgrade.py b/mic/kickstart/pykickstart/commands/upgrade.py
deleted file mode 100644 (file)
index a68a82d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_Upgrade(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.upgrade = kwargs.get("upgrade", None)
-        self.op = self._getParser()
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.upgrade is None:
-            return retval
-
-        if self.upgrade:
-            retval += "# Upgrade existing installation\nupgrade\n"
-        else:
-            retval += "# Install OS instead of upgrade\ninstall\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "upgrade")
-
-        if self.currentCmd == "upgrade":
-            self.upgrade = True
-        else:
-            self.upgrade = False
-
-        return self
-
-class F11_Upgrade(FC3_Upgrade):
-    removedKeywords = FC3_Upgrade.removedKeywords
-    removedAttrs = FC3_Upgrade.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_Upgrade.__init__(self, writePriority, *args, **kwargs)
-
-        self.op = self._getParser()
-        self.root_device = kwargs.get("root_device", None)
-
-    def __str__(self):
-        if self.upgrade and (self.root_device is not None):
-            retval = KickstartCommand.__str__(self)
-            retval += "# Upgrade existing installation\nupgrade --root-device=%s\n" % self.root_device
-        else:
-            retval = FC3_Upgrade.__str__(self)
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--root-device", dest="root_device")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 0:
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "upgrade")
-
-        if (opts.root_device is not None) and (opts.root_device == ""):
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not accept empty parameter %s") % ("upgrade", "--root-device"))
-        else:
-            self.root_device = opts.root_device
-
-        if self.currentCmd == "upgrade":
-            self.upgrade = True
-        else:
-            self.upgrade = False
-
-        return self
diff --git a/mic/kickstart/pykickstart/commands/user.py b/mic/kickstart/pykickstart/commands/user.py
deleted file mode 100644 (file)
index 189dc75..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC6_UserData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.groups = kwargs.get("groups", [])
-        self.homedir = kwargs.get("homedir", "")
-        self.isCrypted = kwargs.get("isCrypted", False)
-        self.name = kwargs.get("name", "")
-        self.password = kwargs.get("password", "")
-        self.shell = kwargs.get("shell", "")
-        self.uid = kwargs.get("uid", None)
-
-    def __eq__(self, y):
-        return self.name == y.name
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-
-        if self.uid != "":
-            retval += "user"
-            retval += self._getArgsAsStr() + "\n"
-
-        return retval
-
-    def _getArgsAsStr(self):
-        retval = ""
-
-        if len(self.groups) > 0:
-            retval += " --groups=%s" % ",".join(self.groups)
-        if self.homedir:
-            retval += " --homedir=%s" % self.homedir
-        if self.name:
-            retval += " --name=%s" % self.name
-        if self.password:
-            retval += " --password=%s" % self.password
-        if self.isCrypted:
-            retval += " --iscrypted"
-        if self.shell:
-            retval += " --shell=%s" % self.shell
-        if self.uid:
-            retval += " --uid=%s" % self.uid
-
-        return retval
-
-class F8_UserData(FC6_UserData):
-    removedKeywords = FC6_UserData.removedKeywords
-    removedAttrs = FC6_UserData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        FC6_UserData.__init__(self, *args, **kwargs)
-        self.lock = kwargs.get("lock", False)
-
-    def _getArgsAsStr(self):
-        retval = FC6_UserData._getArgsAsStr(self)
-
-        if self.lock:
-            retval += " --lock"
-
-        return retval
-
-class F12_UserData(F8_UserData):
-    removedKeywords = F8_UserData.removedKeywords
-    removedAttrs = F8_UserData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        F8_UserData.__init__(self, *args, **kwargs)
-        self.gecos = kwargs.get("gecos", "")
-
-    def _getArgsAsStr(self):
-        retval = F8_UserData._getArgsAsStr(self)
-
-        if self.gecos:
-            retval += " --gecos=\"%s\"" % (self.gecos,)
-
-        return retval
-
-class FC6_User(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.userList = kwargs.get("userList", [])
-
-    def __str__(self):
-        retval = ""
-        for user in self.userList:
-            retval += user.__str__()
-
-        return retval
-
-    def _getParser(self):
-        def groups_cb (option, opt_str, value, parser):
-            for d in value.split(','):
-                parser.values.ensure_value(option.dest, []).append(d)
-
-        op = KSOptionParser()
-        op.add_option("--groups", dest="groups", action="callback",
-                      callback=groups_cb, nargs=1, type="string")
-        op.add_option("--homedir")
-        op.add_option("--iscrypted", dest="isCrypted", action="store_true",
-                      default=False)
-        op.add_option("--name", required=1)
-        op.add_option("--password")
-        op.add_option("--shell")
-        op.add_option("--uid", type="int")
-        return op
-
-    def parse(self, args):
-        ud = self.handler.UserData()
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToObj(self.op, opts, ud)
-        ud.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if ud in self.dataList():
-            warnings.warn(_("A user with the name %s has already been defined.") % ud.name)
-
-        return ud
-
-    def dataList(self):
-        return self.userList
-
-class F8_User(FC6_User):
-    removedKeywords = FC6_User.removedKeywords
-    removedAttrs = FC6_User.removedAttrs
-
-    def _getParser(self):
-        op = FC6_User._getParser(self)
-        op.add_option("--lock", action="store_true", default=False)
-        op.add_option("--plaintext", dest="isCrypted", action="store_false")
-        return op
-
-class F12_User(F8_User):
-    removedKeywords = F8_User.removedKeywords
-    removedAttrs = F8_User.removedAttrs
-
-    def _getParser(self):
-        op = F8_User._getParser(self)
-        op.add_option("--gecos", type="string")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/vnc.py b/mic/kickstart/pykickstart/commands/vnc.py
deleted file mode 100644 (file)
index 200ccfb..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-class FC3_Vnc(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.enabled = kwargs.get("enabled", False)
-        self.password = kwargs.get("password", "")
-        self.connect = kwargs.get("connect", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if not self.enabled:
-            return retval
-
-        retval += "vnc"
-
-        if self.connect != "":
-            retval += " --connect=%s" % self.connect
-        if self.password != "":
-            retval += " --password=%s" % self.password
-
-        return retval + "\n"
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--connect")
-        op.add_option("--password", dest="password")
-        return op
-
-    def parse(self, args):
-        self.enabled = True
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToSelf(self.op, opts)
-        return self
-
-class FC6_Vnc(FC3_Vnc):
-    removedKeywords = FC3_Vnc.removedKeywords + ["connect"]
-    removedAttrs = FC3_Vnc.removedAttrs + ["connect"]
-
-    def __init__(self, writePriority=0, host="", port="", *args, **kwargs):
-        FC3_Vnc.__init__(self, writePriority, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.host = kwargs.get("host", "")
-        self.port = kwargs.get("port", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if not self.enabled:
-            return retval
-
-        retval += "vnc"
-
-        if self.host != "":
-            retval += " --host=%s" % self.host
-
-            if self.port != "":
-                retval += " --port=%s" % self.port
-        if self.password != "":
-            retval += " --password=%s" % self.password
-
-        return retval + "\n"
-
-    def _getParser(self):
-        def connect_cb (option, opt_str, value, parser):
-            cargs = value.split(":")
-            parser.values.ensure_value("host", cargs[0])
-
-            if len(cargs) > 1:
-                parser.values.ensure_value("port", cargs[1])
-
-        op = FC3_Vnc._getParser(self)
-        op.add_option("--connect", action="callback", callback=connect_cb,
-                      nargs=1, type="string")
-        op.add_option("--host", dest="host")
-        op.add_option("--port", dest="port")
-        return op
-
-class F9_Vnc(FC6_Vnc):
-    removedKeywords = FC6_Vnc.removedKeywords
-    removedAttrs = FC6_Vnc.removedAttrs
-
-    def _getParser(self):
-        op = FC6_Vnc._getParser(self)
-        op.remove_option("--connect")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/volgroup.py b/mic/kickstart/pykickstart/commands/volgroup.py
deleted file mode 100644 (file)
index 255c47f..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_VolGroupData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.format = kwargs.get("format", True)
-        self.pesize = kwargs.get("pesize", 32768)
-        self.preexist = kwargs.get("preexist", False)
-        self.vgname = kwargs.get("vgname", "")
-        self.physvols = kwargs.get("physvols", [])
-
-    def __eq__(self, y):
-        return self.vgname == y.vgname
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "volgroup %s" % self.vgname
-
-        if not self.format:
-            retval += " --noformat"
-        if self.pesize != 0:
-            retval += " --pesize=%d" % self.pesize
-        if self.preexist:
-            retval += " --useexisting"
-
-        return retval + " " + " ".join(self.physvols) + "\n"
-
-class FC3_VolGroup(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=132, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.vgList = kwargs.get("vgList", [])
-
-    def __str__(self):
-        retval = ""
-        for vg in self.vgList:
-            retval += vg.__str__()
-
-        return retval
-
-    def _getParser(self):
-        # Have to be a little more complicated to set two values.
-        def vg_cb (option, opt_str, value, parser):
-            parser.values.format = False
-            parser.values.preexist = True
-
-        op = KSOptionParser()
-        op.add_option("--noformat", action="callback", callback=vg_cb,
-                      dest="format", default=True, nargs=0)
-        op.add_option("--pesize", dest="pesize", type="int", nargs=1,
-                      default=32768)
-        op.add_option("--useexisting", dest="preexist", action="store_true",
-                      default=False)
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        vg = self.handler.VolGroupData()
-        self._setToObj(self.op, opts, vg)
-        vg.lineno = self.lineno
-        vg.vgname = extra[0]
-        vg.physvols = extra[1:]
-
-        # Check for duplicates in the data list.
-        if vg in self.dataList():
-            warnings.warn(_("A volgroup with the name %s has already been defined.") % vg.vgname)
-
-        return vg
-
-    def dataList(self):
-        return self.vgList
diff --git a/mic/kickstart/pykickstart/commands/xconfig.py b/mic/kickstart/pykickstart/commands/xconfig.py
deleted file mode 100644 (file)
index 644ee86..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.errors import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_XConfig(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.card = kwargs.get("card", "")
-        self.defaultdesktop = kwargs.get("defaultdesktop", "")
-        self.depth = kwargs.get("depth", 0)
-        self.hsync = kwargs.get("hsync", "")
-        self.monitor = kwargs.get("monitor", "")
-        self.noProbe = kwargs.get("noProbe", False)
-        self.resolution = kwargs.get("resolution", "")
-        self.server = kwargs.get("server", "")
-        self.startX = kwargs.get("startX", False)
-        self.videoRam = kwargs.get("videoRam", "")
-        self.vsync = kwargs.get("vsync", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.card != "":
-            retval += " --card=%s" % self.card
-        if self.defaultdesktop != "":
-            retval += " --defaultdesktop=%s" % self.defaultdesktop
-        if self.depth != 0:
-            retval += " --depth=%d" % self.depth
-        if self.hsync != "":
-            retval += " --hsync=%s" % self.hsync
-        if self.monitor != "":
-            retval += " --monitor=%s" % self.monitor
-        if self.noProbe:
-            retval += " --noprobe"
-        if self.resolution != "":
-            retval += " --resolution=%s" % self.resolution
-        if self.server != "":
-            retval += " --server=%s" % self.server
-        if self.startX:
-            retval += " --startxonboot"
-        if self.videoRam != "":
-            retval += " --videoram=%s" % self.videoRam
-        if self.vsync != "":
-            retval += " --vsync=%s" % self.vsync
-
-        if retval != "":
-            retval = "# X Window System configuration information\nxconfig %s\n" % retval
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--card")
-        op.add_option("--defaultdesktop")
-        op.add_option("--depth", action="store", type="int", nargs=1)
-        op.add_option("--hsync")
-        op.add_option("--monitor")
-        op.add_option("--noprobe", dest="noProbe", action="store_true",
-                      default=False)
-        op.add_option("--resolution")
-        op.add_option("--server")
-        op.add_option("--startxonboot", dest="startX", action="store_true",
-                      default=False)
-        op.add_option("--videoram", dest="videoRam")
-        op.add_option("--vsync")
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        if extra:
-            mapping = {"command": "xconfig", "options": extra}
-            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
-
-        self._setToSelf(self.op, opts)
-        return self
-
-class FC6_XConfig(FC3_XConfig):
-    removedKeywords = FC3_XConfig.removedKeywords + ["card", "hsync", "monitor", "noProbe", "vsync"]
-    removedAttrs = FC3_XConfig.removedAttrs + ["card", "hsync", "monitor", "noProbe", "vsync"]
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        FC3_XConfig.__init__(self, writePriority, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-        self.driver = kwargs.get("driver", "")
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if hasattr(self, "driver") and self.driver != "":
-            retval += " --driver=%s" % self.driver
-        if self.defaultdesktop != "":
-            retval += " --defaultdesktop=%s" % self.defaultdesktop
-        if self.depth != 0:
-            retval += " --depth=%d" % self.depth
-        if hasattr(self, "resolution") and self.resolution != "":
-            retval += " --resolution=%s" % self.resolution
-        if self.startX:
-            retval += " --startxonboot"
-        if hasattr(self, "videoRam") and self.videoRam != "":
-            retval += " --videoram=%s" % self.videoRam
-
-        if retval != "":
-            retval = "# X Window System configuration information\nxconfig %s\n" % retval
-
-        return retval
-
-    def _getParser(self):
-        op = FC3_XConfig._getParser(self)
-        op.add_option("--card", deprecated=1)
-        op.add_option("--driver", dest="driver")
-        op.add_option("--hsync", deprecated=1)
-        op.add_option("--monitor", deprecated=1)
-        op.add_option("--noprobe", deprecated=1)
-        op.add_option("--vsync", deprecated=1)
-        return op
-
-class F9_XConfig(FC6_XConfig):
-    removedKeywords = FC6_XConfig.removedKeywords
-    removedAttrs = FC6_XConfig.removedAttrs
-
-    def _getParser(self):
-        op = FC6_XConfig._getParser(self)
-        op.remove_option("--card")
-        op.remove_option("--hsync")
-        op.remove_option("--monitor")
-        op.remove_option("--noprobe")
-        op.remove_option("--vsync")
-        return op
-
-class F10_XConfig(F9_XConfig):
-    removedKeywords = F9_XConfig.removedKeywords + ["driver", "resolution", "videoRam"]
-    removedAttrs = F9_XConfig.removedAttrs + ["driver", "resolution", "videoRam"]
-
-    def __init__(self, writePriority=0, *args, **kwargs):
-        F9_XConfig.__init__(self, writePriority, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-    def _getParser(self):
-        op = F9_XConfig._getParser(self)
-        op.add_option("--driver", deprecated=1)
-        op.add_option("--depth", deprecated=1)
-        op.add_option("--resolution", deprecated=1)
-        op.add_option("--videoram", deprecated=1)
-        return op
-
-class F14_XConfig(F10_XConfig):
-    removedKeywords = F10_XConfig.removedKeywords
-    removedAttrs = F10_XConfig.removedAttrs
-
-    def _getParser(self):
-        op = F10_XConfig._getParser(self)
-        op.remove_option("--driver")
-        op.remove_option("--depth")
-        op.remove_option("--resolution")
-        op.remove_option("--videoram")
-        return op
diff --git a/mic/kickstart/pykickstart/commands/zerombr.py b/mic/kickstart/pykickstart/commands/zerombr.py
deleted file mode 100644 (file)
index 79555a9..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-import warnings
-
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_ZeroMbr(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=110, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-        self.zerombr = kwargs.get("zerombr", False)
-
-    def __str__(self):
-        retval = KickstartCommand.__str__(self)
-
-        if self.zerombr:
-            retval += "# Clear the Master Boot Record\nzerombr\n"
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        return op
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 0:
-            warnings.warn(_("Ignoring deprecated option on line %s:  The zerombr command no longer takes any options.  In future releases, this will result in a fatal error from kickstart.  Please modify your kickstart file to remove any options.") % self.lineno, DeprecationWarning)
-
-        self.zerombr = True
-        return self
-
-class F9_ZeroMbr(FC3_ZeroMbr):
-    removedKeywords = FC3_ZeroMbr.removedKeywords
-    removedAttrs = FC3_ZeroMbr.removedAttrs
-
-    def parse(self, args):
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-
-        if len(extra) > 0:
-            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "zerombr")
-
-        self.zerombr = True
-        return self
diff --git a/mic/kickstart/pykickstart/commands/zfcp.py b/mic/kickstart/pykickstart/commands/zfcp.py
deleted file mode 100644 (file)
index 1ed2694..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.options import *
-
-import gettext
-import warnings
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class FC3_ZFCPData(BaseData):
-    removedKeywords = BaseData.removedKeywords
-    removedAttrs = BaseData.removedAttrs
-
-    def __init__(self, *args, **kwargs):
-        BaseData.__init__(self, *args, **kwargs)
-        self.devnum = kwargs.get("devnum", "")
-        self.wwpn = kwargs.get("wwpn", "")
-        self.fcplun = kwargs.get("fcplun", "")
-        self.scsiid = kwargs.get("scsiid", "")
-        self.scsilun = kwargs.get("scsilun", "")
-
-    def __eq__(self, y):
-        return self.devnum == y.devnum and self.wwpn == y.wwpn and \
-               self.fcplun == y.fcplun and self.scsiid == y.scsiid and \
-               self.scsilun == y.scsilun
-
-    def __str__(self):
-        retval = BaseData.__str__(self)
-        retval += "zfcp"
-
-        if self.devnum != "":
-            retval += " --devnum=%s" % self.devnum
-        if self.wwpn != "":
-            retval += " --wwpn=%s" % self.wwpn
-        if self.fcplun != "":
-            retval += " --fcplun=%s" % self.fcplun
-        if hasattr(self, "scsiid") and self.scsiid != "":
-            retval += " --scsiid=%s" % self.scsiid
-        if hasattr(self, "scsilun") and self.scsilun != "":
-            retval += " --scsilun=%s" % self.scsilun
-
-        return retval + "\n"
-
-class F12_ZFCPData(FC3_ZFCPData):
-    removedKeywords = FC3_ZFCPData.removedKeywords + ["scsiid", "scsilun"]
-    removedAttrs = FC3_ZFCPData.removedAttrs + ["scsiid", "scsilun"]
-
-    def __init__(self, *args, **kwargs):
-        FC3_ZFCPData.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-F14_ZFCPData = F12_ZFCPData
-
-class FC3_ZFCP(KickstartCommand):
-    removedKeywords = KickstartCommand.removedKeywords
-    removedAttrs = KickstartCommand.removedAttrs
-
-    def __init__(self, writePriority=71, *args, **kwargs):
-        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
-        self.op = self._getParser()
-
-        self.zfcp = kwargs.get("zfcp", [])
-
-    def __str__(self):
-        retval = ""
-        for zfcp in self.zfcp:
-            retval += zfcp.__str__()
-
-        return retval
-
-    def _getParser(self):
-        op = KSOptionParser()
-        op.add_option("--devnum", dest="devnum", required=1)
-        op.add_option("--fcplun", dest="fcplun", required=1)
-        op.add_option("--scsiid", dest="scsiid", required=1)
-        op.add_option("--scsilun", dest="scsilun", required=1)
-        op.add_option("--wwpn", dest="wwpn", required=1)
-        return op
-
-    def parse(self, args):
-        zd = self.handler.ZFCPData()
-        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
-        self._setToObj(self.op, opts, zd)
-        zd.lineno = self.lineno
-
-        # Check for duplicates in the data list.
-        if zd in self.dataList():
-            warnings.warn(_("A zfcp with this information has already been defined."))
-
-        return zd
-
-    def dataList(self):
-        return self.zfcp
-
-class F12_ZFCP(FC3_ZFCP):
-    removedKeywords = FC3_ZFCP.removedKeywords
-    removedAttrs = FC3_ZFCP.removedAttrs + ["scsiid", "scsilun"]
-
-    def __init__(self, *args, **kwargs):
-        FC3_ZFCP.__init__(self, *args, **kwargs)
-        self.deleteRemovedAttrs()
-
-    def _getParser(self):
-        op = FC3_ZFCP._getParser(self)
-        op.add_option("--scsiid", deprecated=1)
-        op.add_option("--scsilun", deprecated=1)
-        return op
-
-class F14_ZFCP(F12_ZFCP):
-    removedKeywords = F12_ZFCP.removedKeywords
-    removedAttrs = F12_ZFCP.removedAttrs
-
-    def _getParser(self):
-        op = F12_ZFCP._getParser(self)
-        op.remove_option("--scsiid")
-        op.remove_option("--scsilun")
-        return op
diff --git a/mic/kickstart/pykickstart/constants.py b/mic/kickstart/pykickstart/constants.py
deleted file mode 100644 (file)
index 5e12fc8..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005-2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-CLEARPART_TYPE_LINUX = 0
-CLEARPART_TYPE_ALL = 1
-CLEARPART_TYPE_NONE = 2
-
-DISPLAY_MODE_CMDLINE = 0
-DISPLAY_MODE_GRAPHICAL = 1
-DISPLAY_MODE_TEXT = 2
-
-FIRSTBOOT_DEFAULT = 0
-FIRSTBOOT_SKIP = 1
-FIRSTBOOT_RECONFIG = 2
-
-KS_MISSING_PROMPT = 0
-KS_MISSING_IGNORE = 1
-
-SELINUX_DISABLED = 0
-SELINUX_ENFORCING = 1
-SELINUX_PERMISSIVE = 2
-
-KS_SCRIPT_PRE = 0
-KS_SCRIPT_POST = 1
-KS_SCRIPT_TRACEBACK = 2
-
-KS_WAIT = 0
-KS_REBOOT = 1
-KS_SHUTDOWN = 2
-
-KS_INSTKEY_SKIP = -99
-
-BOOTPROTO_DHCP = "dhcp"
-BOOTPROTO_BOOTP = "bootp"
-BOOTPROTO_STATIC = "static"
-BOOTPROTO_QUERY = "query"
-BOOTPROTO_IBFT = "ibft"
-
-GROUP_REQUIRED = 0
-GROUP_DEFAULT = 1
-GROUP_ALL = 2
diff --git a/mic/kickstart/pykickstart/errors.py b/mic/kickstart/pykickstart/errors.py
deleted file mode 100644 (file)
index a234d99..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#
-# errors.py:  Kickstart error handling.
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-Error handling classes and functions.
-
-This module exports a single function:
-
-    formatErrorMsg - Properly formats an error message.
-
-It also exports several exception classes:
-
-    KickstartError - A generic exception class.
-
-    KickstartParseError - An exception for errors relating to parsing.
-
-    KickstartValueError - An exception for errors relating to option
-                          processing.
-
-    KickstartVersionError - An exception for errors relating to unsupported
-                            syntax versions.
-"""
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-def formatErrorMsg(lineno, msg=""):
-    """Properly format the error message msg for inclusion in an exception."""
-    if msg != "":
-        mapping = {"lineno": lineno, "msg": msg}
-        return _("The following problem occurred on line %(lineno)s of the kickstart file:\n\n%(msg)s\n") % mapping
-    else:
-        return _("There was a problem reading from line %s of the kickstart file") % lineno
-
-class KickstartError(Exception):
-    """A generic exception class for unspecific error conditions."""
-    def __init__(self, val = ""):
-        """Create a new KickstartError exception instance with the descriptive
-           message val.  val should be the return value of formatErrorMsg.
-        """
-        Exception.__init__(self)
-        self.value = val
-
-    def __str__ (self):
-        return self.value
-
-class KickstartParseError(KickstartError):
-    """An exception class for errors when processing the input file, such as
-       unknown options, commands, or sections.
-    """
-    def __init__(self, msg):
-        """Create a new KickstartParseError exception instance with the
-           descriptive message val.  val should be the return value of
-           formatErrorMsg.
-        """
-        KickstartError.__init__(self, msg)
-
-    def __str__(self):
-        return self.value
-
-class KickstartValueError(KickstartError):
-    """An exception class for errors when processing arguments to commands,
-       such as too many arguments, too few arguments, or missing required
-       arguments.
-    """
-    def __init__(self, msg):
-        """Create a new KickstartValueError exception instance with the
-           descriptive message val.  val should be the return value of
-           formatErrorMsg.
-        """
-        KickstartError.__init__(self, msg)
-
-    def __str__ (self):
-        return self.value
-
-class KickstartVersionError(KickstartError):
-    """An exception class for errors related to using an incorrect version of
-       kickstart syntax.
-    """
-    def __init__(self, msg):
-        """Create a new KickstartVersionError exception instance with the
-           descriptive message val.  val should be the return value of
-           formatErrorMsg.
-        """
-        KickstartError.__init__(self, msg)
-
-    def __str__ (self):
-        return self.value
diff --git a/mic/kickstart/pykickstart/handlers/__init__.py b/mic/kickstart/pykickstart/handlers/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mic/kickstart/pykickstart/handlers/control.py b/mic/kickstart/pykickstart/handlers/control.py
deleted file mode 100644 (file)
index d8c8f2b..0000000
+++ /dev/null
@@ -1,1307 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.version import *
-from pykickstart.commands import *
-
-# This map is keyed on kickstart syntax version as provided by
-# pykickstart.version.  Within each sub-dict is a mapping from command name
-# to the class that handles it.  This is an onto mapping - that is, multiple
-# command names can map to the same class.  However, the Handler will ensure
-# that only one instance of each class ever exists.
-commandMap = {
-    FC3: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC3_Bootloader,
-        "cdrom": method.FC3_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "driverdisk": driverdisk.FC3_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC3_Reboot,
-        "harddrive": method.FC3_Method,
-        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC3_LangSupport,
-        "lilo": bootloader.FC3_Bootloader,
-        "lilocheck": lilocheck.FC3_LiloCheck,
-        "logvol": logvol.FC3_LogVol,
-        "monitor": monitor.FC3_Monitor,
-        "mouse": mouse.FC3_Mouse,
-        "network": network.FC3_Network,
-        "nfs": method.FC3_Method,
-        "part": partition.FC3_Partition,
-        "partition": partition.FC3_Partition,
-        "poweroff": reboot.FC3_Reboot,
-        "raid": raid.FC3_Raid,
-        "reboot": reboot.FC3_Reboot,
-        "rootpw": rootpw.FC3_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "shutdown": reboot.FC3_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC3_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC3_Method,
-        "vnc": vnc.FC3_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC3_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on fc3
-    FC4: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC4_Bootloader,
-        "cdrom": method.FC3_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC3_Reboot,
-        "harddrive": method.FC3_Method,
-        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC3_LangSupport,
-        "logvol": logvol.FC4_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC3_Monitor,
-        "mouse": mouse.FC3_Mouse,
-        "network": network.FC4_Network,
-        "nfs": method.FC3_Method,
-        "part": partition.FC4_Partition,
-        "partition": partition.FC4_Partition,
-        "poweroff": reboot.FC3_Reboot,
-        "raid": raid.FC4_Raid,
-        "reboot": reboot.FC3_Reboot,
-        "rootpw": rootpw.FC3_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "shutdown": reboot.FC3_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC3_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC3_Method,
-        "vnc": vnc.FC3_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC3_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on fc4
-    FC5: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC4_Bootloader,
-        "cdrom": method.FC3_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC3_Reboot,
-        "harddrive": method.FC3_Method,
-        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC5_LangSupport,
-        "logvol": logvol.FC4_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC3_Monitor,
-        "mouse": mouse.FC3_Mouse,
-        "network": network.FC4_Network,
-        "nfs": method.FC3_Method,
-        "part": partition.FC4_Partition,
-        "partition": partition.FC4_Partition,
-        "poweroff": reboot.FC3_Reboot,
-        "raid": raid.FC5_Raid,
-        "reboot": reboot.FC3_Reboot,
-        "rootpw": rootpw.FC3_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "shutdown": reboot.FC3_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC3_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC3_Method,
-        "vnc": vnc.FC3_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC3_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on fc5
-    FC6: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC4_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.FC6_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC5_LangSupport,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.FC4_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC6_Monitor,
-        "mouse": mouse.FC3_Mouse,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.FC6_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.FC4_Partition,
-        "partition": partition.FC4_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.FC5_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.FC6_Repo,
-        "rootpw": rootpw.FC3_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "user": user.FC6_User,
-        "url": method.FC6_Method,
-        "vnc": vnc.FC6_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC6_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on fc6
-    F7: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC4_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.FC6_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.FC4_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC6_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.FC6_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.FC4_Partition,
-        "partition": partition.FC4_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F7_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.FC6_Repo,
-        "rootpw": rootpw.FC3_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC6_Method,
-        "user": user.FC6_User,
-        "vnc": vnc.FC6_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC6_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on f7
-    F8: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F8_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.FC6_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.FC4_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC6_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F8_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.FC4_Partition,
-        "partition": partition.FC4_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F7_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F8_Repo,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC6_Method,
-        "user": user.F8_User,
-        "vnc": vnc.FC6_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC6_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on f8
-    F9: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F9_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F8_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.F9_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.FC6_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F9_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC6_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.F9_Partition,
-        "partition": partition.F9_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F9_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F8_Repo,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC6_Method,
-        "user": user.F8_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F9_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on f9
-    F10: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F9_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F8_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.F10_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F9_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.F9_Partition,
-        "partition": partition.F9_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F9_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F8_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC6_Method,
-        "user": user.F8_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F10_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on f10
-    F11: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F9_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F8_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.F10_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F9_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.F11_Partition,
-        "partition": partition.F11_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F9_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F11_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.FC6_Method,
-        "user": user.F8_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F10_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on f11
-    F12: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F12_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F12_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F12_DriverDisk,
-        "fcoe": fcoe.F12_Fcoe,
-        "firewall": firewall.F10_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "group": group.F12_Group,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F12_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.F12_Partition,
-        "partition": partition.F12_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F12_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F11_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.FC6_Method,
-        "user": user.F12_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F10_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.F12_ZFCP,
-    },
-
-    # based on f12
-    F13: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F12_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F12_Bootloader,
-        "cdrom": method.F13_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F12_DriverDisk,
-        "fcoe": fcoe.F13_Fcoe,
-        "firewall": firewall.F10_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "group": group.F12_Group,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.F13_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F12_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.F13_Method,
-        "part": partition.F12_Partition,
-        "partition": partition.F12_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F13_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F13_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "sshpw": sshpw.F13_SshPw,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.F13_Method,
-        "user": user.F12_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F10_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.F12_ZFCP,
-    },
-
-    # based on f13
-    F14: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F12_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F14_Bootloader,
-        "cdrom": method.F14_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F14_DriverDisk,
-        "fcoe": fcoe.F13_Fcoe,
-        "firewall": firewall.F14_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "group": group.F12_Group,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.F14_Method,
-        "ignoredisk": ignoredisk.F14_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "interactive": interactive.F14_Interactive,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F14_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.F14_Method,
-        "part": partition.F14_Partition,
-        "partition": partition.F14_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F14_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F14_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "sshpw": sshpw.F13_SshPw,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.F14_Method,
-        "user": user.F12_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F14_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.F14_ZFCP,
-    },
-
-    # based on f14
-    F15: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F12_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F15_Bootloader,
-        "cdrom": method.F14_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F14_DriverDisk,
-        "fcoe": fcoe.F13_Fcoe,
-        "firewall": firewall.F14_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "group": group.F12_Group,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.F14_Method,
-        "ignoredisk": ignoredisk.F14_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F15_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F9_Network,
-        "nfs": method.F14_Method,
-        "part": partition.F14_Partition,
-        "partition": partition.F14_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F15_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F15_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "sshpw": sshpw.F13_SshPw,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.F14_Method,
-        "user": user.F12_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F14_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.F14_ZFCP,
-    },
-
-    # based on f15
-    F16: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F12_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.F15_Bootloader,
-        "cdrom": method.F14_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F14_DriverDisk,
-        "fcoe": fcoe.F13_Fcoe,
-        "firewall": firewall.F14_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "group": group.F12_Group,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.F14_Method,
-        "ignoredisk": ignoredisk.F14_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F15_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.F16_Network,
-        "nfs": method.F14_Method,
-        "part": partition.F14_Partition,
-        "partition": partition.F14_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F15_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.F15_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "sshpw": sshpw.F13_SshPw,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.F14_Method,
-        "user": user.F12_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F14_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.F14_ZFCP,
-    },
-
-    # based on fc1
-    RHEL3: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC3_Bootloader,
-        "cdrom": method.FC3_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "driverdisk": driverdisk.FC3_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC3_Reboot,
-        "harddrive": method.FC3_Method,
-        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC3_LangSupport,
-        "lilo": bootloader.FC3_Bootloader,
-        "lilocheck": lilocheck.FC3_LiloCheck,
-        "logvol": logvol.FC3_LogVol,
-        "monitor": monitor.FC3_Monitor,
-        "mouse": mouse.RHEL3_Mouse,
-        "network": network.FC3_Network,
-        "nfs": method.FC3_Method,
-        "part": partition.FC3_Partition,
-        "partition": partition.FC3_Partition,
-        "poweroff": reboot.FC3_Reboot,
-        "raid": raid.FC3_Raid,
-        "reboot": reboot.FC3_Reboot,
-        "rootpw": rootpw.FC3_RootPw,
-        "shutdown": reboot.FC3_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC3_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC3_Method,
-        "vnc": vnc.FC3_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC3_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-    },
-
-    # based on fc3
-    RHEL4: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.FC3_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.FC3_Bootloader,
-        "cdrom": method.FC3_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "driverdisk": driverdisk.FC4_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC3_Reboot,
-        "harddrive": method.FC3_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC3_LangSupport,
-        "lilo": bootloader.FC3_Bootloader,
-        "lilocheck": lilocheck.FC3_LiloCheck,
-        "logvol": logvol.FC3_LogVol,
-        "monitor": monitor.FC3_Monitor,
-        "mouse": mouse.FC3_Mouse,
-        "network": network.RHEL4_Network,
-        "nfs": method.FC3_Method,
-        "part": partition.FC3_Partition,
-        "partition": partition.FC3_Partition,
-        "poweroff": reboot.FC3_Reboot,
-        "raid": raid.FC3_Raid,
-        "reboot": reboot.FC3_Reboot,
-        "rootpw": rootpw.FC3_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "shutdown": reboot.FC3_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC3_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "url": method.FC3_Method,
-        "vnc": vnc.FC3_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC3_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on fc6
-    RHEL5: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F9_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.RHEL5_Bootloader,
-        "cdrom": method.FC6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.FC3_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F12_DriverDisk,
-        "firewall": firewall.FC3_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.FC6_Method,
-        "ignoredisk": ignoredisk.F8_IgnoreDisk,
-        "install": upgrade.FC3_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.FC6_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "key": key.RHEL5_Key,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "langsupport": langsupport.FC5_LangSupport,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.RHEL5_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.FC6_Monitor,
-        "mouse": mouse.FC3_Mouse,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.RHEL5_Network,
-        "nfs": method.FC6_Method,
-        "part": partition.RHEL5_Partition,
-        "partition": partition.RHEL5_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.RHEL5_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.FC6_Repo,
-        "rootpw": rootpw.FC3_RootPw,
-        "services": services.FC6_Services,
-        "selinux": selinux.FC3_SELinux,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "upgrade": upgrade.FC3_Upgrade,
-        "user": user.FC6_User,
-        "url": method.FC6_Method,
-        "vnc": vnc.FC6_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.FC6_XConfig,
-        "zerombr": zerombr.FC3_ZeroMbr,
-        "zfcp": zfcp.FC3_ZFCP,
-    },
-
-    # based on f13ish
-    RHEL6: {
-        "auth": authconfig.FC3_Authconfig,
-        "authconfig": authconfig.FC3_Authconfig,
-        "autopart": autopart.F12_AutoPart,
-        "autostep": autostep.FC3_AutoStep,
-        "bootloader": bootloader.RHEL6_Bootloader,
-        "cdrom": method.RHEL6_Method,
-        "clearpart": clearpart.FC3_ClearPart,
-        "cmdline": displaymode.FC3_DisplayMode,
-        "device": device.F8_Device,
-        "deviceprobe": deviceprobe.FC3_DeviceProbe,
-        "dmraid": dmraid.FC6_DmRaid,
-        "driverdisk": driverdisk.F12_DriverDisk,
-        "fcoe": fcoe.F13_Fcoe,
-        "firewall": firewall.F10_Firewall,
-        "firstboot": firstboot.FC3_Firstboot,
-        "graphical": displaymode.FC3_DisplayMode,
-        "group": group.F12_Group,
-        "halt": reboot.FC6_Reboot,
-        "harddrive": method.RHEL6_Method,
-        "ignoredisk": ignoredisk.RHEL6_IgnoreDisk,
-        "install": upgrade.F11_Upgrade,
-        "interactive": interactive.FC3_Interactive,
-        "iscsi": iscsi.F10_Iscsi,
-        "iscsiname": iscsiname.FC6_IscsiName,
-        "keyboard": keyboard.FC3_Keyboard,
-        "lang": lang.FC3_Lang,
-        "logging": logging.FC6_Logging,
-        "logvol": logvol.F12_LogVol,
-        "mediacheck": mediacheck.FC4_MediaCheck,
-        "monitor": monitor.F10_Monitor,
-        "multipath": multipath.FC6_MultiPath,
-        "network": network.RHEL6_Network,
-        "nfs": method.RHEL6_Method,
-        "part": partition.F12_Partition,
-        "partition": partition.F12_Partition,
-        "poweroff": reboot.FC6_Reboot,
-        "raid": raid.F13_Raid,
-        "reboot": reboot.FC6_Reboot,
-        "repo": repo.RHEL6_Repo,
-        "rescue": rescue.F10_Rescue,
-        "rootpw": rootpw.F8_RootPw,
-        "selinux": selinux.FC3_SELinux,
-        "services": services.FC6_Services,
-        "shutdown": reboot.FC6_Reboot,
-        "skipx": skipx.FC3_SkipX,
-        "sshpw": sshpw.F13_SshPw,
-        "text": displaymode.FC3_DisplayMode,
-        "timezone": timezone.FC6_Timezone,
-        "updates": updates.F7_Updates,
-        "upgrade": upgrade.F11_Upgrade,
-        "url": method.RHEL6_Method,
-        "user": user.F12_User,
-        "vnc": vnc.F9_Vnc,
-        "volgroup": volgroup.FC3_VolGroup,
-        "xconfig": xconfig.F10_XConfig,
-        "zerombr": zerombr.F9_ZeroMbr,
-        "zfcp": zfcp.F12_ZFCP,
-    }
-}
-
-# This map is keyed on kickstart syntax version as provided by
-# pykickstart.version.  Within each sub-dict is a mapping from a data object
-# name to the class that provides it.  This is a bijective mapping - that is,
-# each name maps to exactly one data class and all data classes have a name.
-# More than one instance of each class is allowed to exist, however.
-dataMap = {
-    FC3: {
-        "DriverDiskData": driverdisk.FC3_DriverDiskData,
-        "LogVolData": logvol.FC3_LogVolData,
-        "NetworkData": network.FC3_NetworkData,
-        "PartData": partition.FC3_PartData,
-        "RaidData": raid.FC3_RaidData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    FC4: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "LogVolData": logvol.FC4_LogVolData,
-        "NetworkData": network.FC4_NetworkData,
-        "PartData": partition.FC4_PartData,
-        "RaidData": raid.FC4_RaidData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    FC5: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "LogVolData": logvol.FC4_LogVolData,
-        "NetworkData": network.FC4_NetworkData,
-        "PartData": partition.FC4_PartData,
-        "RaidData": raid.FC5_RaidData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    FC6: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.FC6_IscsiData,
-        "LogVolData": logvol.FC4_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.FC6_NetworkData,
-        "PartData": partition.FC4_PartData,
-        "RaidData": raid.FC5_RaidData,
-        "RepoData": repo.FC6_RepoData,
-        "UserData": user.FC6_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    F7: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.FC6_IscsiData,
-        "LogVolData": logvol.FC4_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.FC6_NetworkData,
-        "PartData": partition.FC4_PartData,
-        "RaidData": raid.F7_RaidData,
-        "RepoData": repo.FC6_RepoData,
-        "UserData": user.FC6_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    F8: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.FC6_IscsiData,
-        "LogVolData": logvol.FC4_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.FC4_PartData,
-        "RaidData": raid.F7_RaidData,
-        "RepoData": repo.F8_RepoData,
-        "UserData": user.F8_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    F9: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.FC6_IscsiData,
-        "LogVolData": logvol.F9_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F9_PartData,
-        "RaidData": raid.F9_RaidData,
-        "RepoData": repo.F8_RepoData,
-        "UserData": user.F8_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    F10: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F9_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F9_PartData,
-        "RaidData": raid.F9_RaidData,
-        "RepoData": repo.F8_RepoData,
-        "UserData": user.F8_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    F11: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F9_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F11_PartData,
-        "RaidData": raid.F9_RaidData,
-        "RepoData": repo.F11_RepoData,
-        "UserData": user.F8_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    F12: {
-        "DriverDiskData": driverdisk.F12_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "FcoeData": fcoe.F12_FcoeData,
-        "GroupData": group.F12_GroupData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F12_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F12_PartData,
-        "RaidData": raid.F12_RaidData,
-        "RepoData": repo.F11_RepoData,
-        "UserData": user.F12_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.F12_ZFCPData,
-    },
-    F13: {
-        "DriverDiskData": driverdisk.F12_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "FcoeData": fcoe.F13_FcoeData,
-        "GroupData": group.F12_GroupData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F12_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F12_PartData,
-        "RaidData": raid.F13_RaidData,
-        "RepoData": repo.F13_RepoData,
-        "SshPwData": sshpw.F13_SshPwData,
-        "UserData": user.F12_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.F12_ZFCPData,
-    },
-    F14: {
-        "DriverDiskData": driverdisk.F14_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "FcoeData": fcoe.F13_FcoeData,
-        "GroupData": group.F12_GroupData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F14_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F14_PartData,
-        "RaidData": raid.F14_RaidData,
-        "RepoData": repo.F14_RepoData,
-        "SshPwData": sshpw.F13_SshPwData,
-        "UserData": user.F12_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.F14_ZFCPData,
-    },
-    F15: {
-        "DriverDiskData": driverdisk.F14_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "FcoeData": fcoe.F13_FcoeData,
-        "GroupData": group.F12_GroupData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F15_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F8_NetworkData,
-        "PartData": partition.F14_PartData,
-        "RaidData": raid.F15_RaidData,
-        "RepoData": repo.F15_RepoData,
-        "SshPwData": sshpw.F13_SshPwData,
-        "UserData": user.F12_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.F14_ZFCPData,
-    },
-    F16: {
-        "DriverDiskData": driverdisk.F14_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "FcoeData": fcoe.F13_FcoeData,
-        "GroupData": group.F12_GroupData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F15_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.F16_NetworkData,
-        "PartData": partition.F14_PartData,
-        "RaidData": raid.F15_RaidData,
-        "RepoData": repo.F15_RepoData,
-        "SshPwData": sshpw.F13_SshPwData,
-        "UserData": user.F12_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.F14_ZFCPData,
-    },
-    RHEL3: {
-        "DriverDiskData": driverdisk.FC3_DriverDiskData,
-        "LogVolData": logvol.FC3_LogVolData,
-        "NetworkData": network.RHEL4_NetworkData,
-        "PartData": partition.FC3_PartData,
-        "RaidData": raid.FC3_RaidData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    RHEL4: {
-        "DriverDiskData": driverdisk.FC4_DriverDiskData,
-        "LogVolData": logvol.FC3_LogVolData,
-        "NetworkData": network.RHEL4_NetworkData,
-        "PartData": partition.FC3_PartData,
-        "RaidData": raid.FC3_RaidData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    RHEL5: {
-        "DriverDiskData": driverdisk.F12_DriverDiskData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "IscsiData": iscsi.FC6_IscsiData,
-        "LogVolData": logvol.RHEL5_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.FC6_NetworkData,
-        "PartData": partition.RHEL5_PartData,
-        "RaidData": raid.RHEL5_RaidData,
-        "RepoData": repo.FC6_RepoData,
-        "UserData": user.FC6_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.FC3_ZFCPData,
-    },
-    RHEL6: {
-        "DriverDiskData": driverdisk.F12_DriverDiskData,
-        "DeviceData": device.F8_DeviceData,
-        "DmRaidData": dmraid.FC6_DmRaidData,
-        "FcoeData": fcoe.F13_FcoeData,
-        "GroupData": group.F12_GroupData,
-        "IscsiData": iscsi.F10_IscsiData,
-        "LogVolData": logvol.F12_LogVolData,
-        "MultiPathData": multipath.FC6_MultiPathData,
-        "NetworkData": network.RHEL6_NetworkData,
-        "PartData": partition.F12_PartData,
-        "RaidData": raid.F13_RaidData,
-        "RepoData": repo.RHEL6_RepoData,
-        "SshPwData": sshpw.F13_SshPwData,
-        "UserData": user.F12_UserData,
-        "VolGroupData": volgroup.FC3_VolGroupData,
-        "ZFCPData": zfcp.F12_ZFCPData,
-    }
-}
diff --git a/mic/kickstart/pykickstart/handlers/f10.py b/mic/kickstart/pykickstart/handlers/f10.py
deleted file mode 100644 (file)
index 17c8211..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F10Handler(BaseHandler):
-    version = F10
diff --git a/mic/kickstart/pykickstart/handlers/f11.py b/mic/kickstart/pykickstart/handlers/f11.py
deleted file mode 100644 (file)
index d21aee3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2008 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F11Handler(BaseHandler):
-    version = F11
diff --git a/mic/kickstart/pykickstart/handlers/f12.py b/mic/kickstart/pykickstart/handlers/f12.py
deleted file mode 100644 (file)
index cea3ece..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F12Handler(BaseHandler):
-    version = F12
diff --git a/mic/kickstart/pykickstart/handlers/f13.py b/mic/kickstart/pykickstart/handlers/f13.py
deleted file mode 100644 (file)
index b94c738..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F13Handler(BaseHandler):
-    version = F13
diff --git a/mic/kickstart/pykickstart/handlers/f14.py b/mic/kickstart/pykickstart/handlers/f14.py
deleted file mode 100644 (file)
index 478f75d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2010 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F14Handler(BaseHandler):
-    version = F14
diff --git a/mic/kickstart/pykickstart/handlers/f15.py b/mic/kickstart/pykickstart/handlers/f15.py
deleted file mode 100644 (file)
index 12aecb4..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2010 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F15Handler(BaseHandler):
-    version = F15
diff --git a/mic/kickstart/pykickstart/handlers/f16.py b/mic/kickstart/pykickstart/handlers/f16.py
deleted file mode 100644 (file)
index 3c52f8d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2011 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F16Handler(BaseHandler):
-    version = F16
diff --git a/mic/kickstart/pykickstart/handlers/f7.py b/mic/kickstart/pykickstart/handlers/f7.py
deleted file mode 100644 (file)
index 5e856ea..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F7Handler(BaseHandler):
-    version = F7
diff --git a/mic/kickstart/pykickstart/handlers/f8.py b/mic/kickstart/pykickstart/handlers/f8.py
deleted file mode 100644 (file)
index 1a97881..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F8Handler(BaseHandler):
-    version = F8
diff --git a/mic/kickstart/pykickstart/handlers/f9.py b/mic/kickstart/pykickstart/handlers/f9.py
deleted file mode 100644 (file)
index 116f1b5..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class F9Handler(BaseHandler):
-    version = F9
diff --git a/mic/kickstart/pykickstart/handlers/fc3.py b/mic/kickstart/pykickstart/handlers/fc3.py
deleted file mode 100644 (file)
index a115dc2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class FC3Handler(BaseHandler):
-    version = FC3
diff --git a/mic/kickstart/pykickstart/handlers/fc4.py b/mic/kickstart/pykickstart/handlers/fc4.py
deleted file mode 100644 (file)
index fd47b73..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class FC4Handler(BaseHandler):
-    version = FC4
diff --git a/mic/kickstart/pykickstart/handlers/fc5.py b/mic/kickstart/pykickstart/handlers/fc5.py
deleted file mode 100644 (file)
index bcdc29d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class FC5Handler(BaseHandler):
-    version = FC5
diff --git a/mic/kickstart/pykickstart/handlers/fc6.py b/mic/kickstart/pykickstart/handlers/fc6.py
deleted file mode 100644 (file)
index c83a929..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class FC6Handler(BaseHandler):
-    version = FC6
diff --git a/mic/kickstart/pykickstart/handlers/rhel3.py b/mic/kickstart/pykickstart/handlers/rhel3.py
deleted file mode 100644 (file)
index 131763c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class RHEL3Handler(BaseHandler):
-    version = RHEL3
diff --git a/mic/kickstart/pykickstart/handlers/rhel4.py b/mic/kickstart/pykickstart/handlers/rhel4.py
deleted file mode 100644 (file)
index 3496c43..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class RHEL4Handler(BaseHandler):
-    version = RHEL4
diff --git a/mic/kickstart/pykickstart/handlers/rhel5.py b/mic/kickstart/pykickstart/handlers/rhel5.py
deleted file mode 100644 (file)
index abb7a8d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class RHEL5Handler(BaseHandler):
-    version = RHEL5
diff --git a/mic/kickstart/pykickstart/handlers/rhel6.py b/mic/kickstart/pykickstart/handlers/rhel6.py
deleted file mode 100644 (file)
index 7202419..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2010 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-from pykickstart.base import *
-from pykickstart.version import *
-
-class RHEL6Handler(BaseHandler):
-    version = RHEL6
diff --git a/mic/kickstart/pykickstart/ko.py b/mic/kickstart/pykickstart/ko.py
deleted file mode 100644 (file)
index 1350d19..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2009 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-Base classes for internal pykickstart use.
-
-The module exports the following important classes:
-
-    KickstartObject - The base class for all classes in pykickstart
-"""
-
-class KickstartObject(object):
-    """The base class for all other classes in pykickstart."""
-    def __init__(self, *args, **kwargs):
-        """Create a new KickstartObject instance.  All other classes in
-           pykickstart should be derived from this one.  Instance attributes:
-        """
-        pass
-
-    def __str__(self):
-        return ""
diff --git a/mic/kickstart/pykickstart/options.py b/mic/kickstart/pykickstart/options.py
deleted file mode 100644 (file)
index 341c5d7..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-Specialized option handling.
-
-This module exports two classes:
-
-    KSOptionParser - A specialized subclass of OptionParser to be used
-                     in BaseHandler subclasses.
-
-    KSOption - A specialized subclass of Option.
-"""
-import warnings
-from copy import copy
-from optparse import *
-
-from constants import *
-from errors import *
-from version import *
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-class KSOptionParser(OptionParser):
-    """A specialized subclass of optparse.OptionParser to handle extra option
-       attribute checking, work error reporting into the KickstartParseError
-       framework, and to turn off the default help.
-    """
-    def exit(self, status=0, msg=None):
-        pass
-
-    def error(self, msg):
-        if self.lineno != None:
-            raise KickstartParseError, formatErrorMsg(self.lineno, msg=msg)
-        else:
-            raise KickstartParseError, msg
-
-    def keys(self):
-        retval = []
-
-        for opt in self.option_list:
-            if opt not in retval:
-                retval.append(opt.dest)
-
-        return retval
-
-    def _init_parsing_state (self):
-        OptionParser._init_parsing_state(self)
-        self.option_seen = {}
-
-    def check_values (self, values, args):
-        def seen(self, option):
-            return self.option_seen.has_key(option)
-
-        def usedTooNew(self, option):
-            return option.introduced and option.introduced > self.version
-
-        def usedDeprecated(self, option):
-            return option.deprecated
-
-        def usedRemoved(self, option):
-            return option.removed and option.removed <= self.version
-
-        for option in filter(lambda o: isinstance(o, Option), self.option_list):
-            if option.required and not seen(self, option):
-                raise KickstartValueError, formatErrorMsg(self.lineno, _("Option %s is required") % option)
-            elif seen(self, option) and usedTooNew(self, 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(self, option) and usedRemoved(self, 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(self, option) and usedDeprecated(self, option):
-                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_args(self, *args, **kwargs):
-        if kwargs.has_key("lineno"):
-            self.lineno = kwargs.pop("lineno")
-
-        return OptionParser.parse_args(self, **kwargs)
-
-    def __init__(self, mapping=None, version=None):
-        """Create a new KSOptionParser instance.  Each KickstartCommand
-           subclass should create one instance of KSOptionParser, providing
-           at least the lineno attribute.  mapping and version are not required.
-           Instance attributes:
-
-           mapping -- A mapping from option strings to different values.
-           version -- The version of the kickstart syntax we are checking
-                      against.
-        """
-        OptionParser.__init__(self, option_class=KSOption,
-                              add_help_option=False,
-                              conflict_handler="resolve")
-        if mapping is None:
-            self.map = {}
-        else:
-            self.map = mapping
-
-        self.lineno = None
-        self.option_seen = {}
-        self.version = version
-
-def _check_ksboolean(option, opt, value):
-    if value.lower() in ("on", "yes", "true", "1"):
-        return True
-    elif value.lower() in ("off", "no", "false", "0"):
-        return False
-    else:
-        mapping = {"opt": opt, "value": value}
-        raise OptionValueError(_("Option %(opt)s: invalid boolean value: %(value)r") % mapping)
-
-def _check_string(option, opt, value):
-    if len(value) > 2 and value.startswith("--"):
-        mapping = {"opt": opt, "value": value}
-        raise OptionValueError(_("Option %(opt)s: invalid string value: %(value)r") % mapping)
-    else:
-        return value
-
-# Creates a new Option class that supports several new attributes:
-# - required:  any option with this attribute must be supplied or an exception
-#              is thrown
-# - introduced:  the kickstart syntax version that this option first appeared
-#                in - an exception will be raised if the option is used and
-#                the specified syntax version is less than the value of this
-#                attribute
-# - deprecated:  the kickstart syntax version that this option was deprecated
-#                in - a DeprecationWarning will be thrown if the option is
-#                used and the specified syntax version is greater than the
-#                value of this attribute
-# - removed:  the kickstart syntax version that this option was removed in - an
-#             exception will be raised if the option is used and the specified
-#             syntax version is greated than the value of this attribute
-# Also creates a new type:
-# - ksboolean:  support various kinds of boolean values on an option
-# And two new actions:
-# - map :  allows you to define an opt -> val mapping such that dest gets val
-#          when opt is seen
-# - map_extend:  allows you to define an opt -> [val1, ... valn] mapping such
-#                that dest gets a list of vals built up when opt is seen
-class KSOption (Option):
-    ATTRS = Option.ATTRS + ['introduced', 'deprecated', 'removed', 'required']
-    ACTIONS = Option.ACTIONS + ("map", "map_extend",)
-    STORE_ACTIONS = Option.STORE_ACTIONS + ("map", "map_extend",)
-
-    TYPES = Option.TYPES + ("ksboolean", "string")
-    TYPE_CHECKER = copy(Option.TYPE_CHECKER)
-    TYPE_CHECKER["ksboolean"] = _check_ksboolean
-    TYPE_CHECKER["string"] = _check_string
-
-    def _check_required(self):
-        if self.required and not self.takes_value():
-            raise OptionError(_("Required flag set for option that doesn't take a value"), self)
-
-    # Make sure _check_required() is called from the constructor!
-    CHECK_METHODS = Option.CHECK_METHODS + [_check_required]
-
-    def process (self, opt, value, values, parser):
-        Option.process(self, opt, value, values, parser)
-        parser.option_seen[self] = 1
-
-    # Override default take_action method to handle our custom actions.
-    def take_action(self, action, dest, opt, value, values, parser):
-        if action == "map":
-            values.ensure_value(dest, parser.map[opt.lstrip('-')])
-        elif action == "map_extend":
-            values.ensure_value(dest, []).extend(parser.map[opt.lstrip('-')])
-        else:
-            Option.take_action(self, action, dest, opt, value, values, parser)
-
-    def takes_value(self):
-        # Deprecated options don't take a value.
-        return Option.takes_value(self) and not self.deprecated
-
-    def __init__(self, *args, **kwargs):
-        self.deprecated = False
-        self.required = False
-        Option.__init__(self, *args, **kwargs)
diff --git a/mic/kickstart/pykickstart/parser.py b/mic/kickstart/pykickstart/parser.py
deleted file mode 100644 (file)
index 771ca1e..0000000
+++ /dev/null
@@ -1,702 +0,0 @@
-#
-# parser.py:  Kickstart file parser.
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2005, 2006, 2007, 2008, 2011 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-Main kickstart file processing module.
-
-This module exports several important classes:
-
-    Script - Representation of a single %pre, %post, or %traceback script.
-
-    Packages - Representation of the %packages section.
-
-    KickstartParser - The kickstart file parser state machine.
-"""
-
-from collections import Iterator
-import os
-import shlex
-import sys
-import tempfile
-from copy import copy
-from optparse import *
-from urlgrabber import urlread
-import urlgrabber.grabber as grabber
-
-import constants
-from errors import KickstartError, KickstartParseError, KickstartValueError, formatErrorMsg
-from ko import KickstartObject
-from sections import *
-import version
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-STATE_END = "end"
-STATE_COMMANDS = "commands"
-
-ver = version.DEVEL
-
-def _preprocessStateMachine (lineIter):
-    l = None
-    lineno = 0
-
-    # Now open an output kickstart file that we are going to write to one
-    # line at a time.
-    (outF, outName) = tempfile.mkstemp("-ks.cfg", "", "/tmp")
-
-    while True:
-        try:
-            l = lineIter.next()
-        except StopIteration:
-            break
-
-        # At the end of the file?
-        if l == "":
-            break
-
-        lineno += 1
-        url = None
-
-        ll = l.strip()
-        if not ll.startswith("%ksappend"):
-            os.write(outF, l)
-            continue
-
-        # Try to pull down the remote file.
-        try:
-            ksurl = ll.split(' ')[1]
-        except:
-            raise KickstartParseError, formatErrorMsg(lineno, msg=_("Illegal url for %%ksappend: %s") % ll)
-
-        try:
-            url = grabber.urlopen(ksurl)
-        except grabber.URLGrabError, e:
-            raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file: %s") % e.strerror)
-        else:
-            # Sanity check result.  Sometimes FTP doesn't catch a file
-            # is missing.
-            try:
-                if url.size < 1:
-                    raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file"))
-            except:
-                raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file"))
-
-        # If that worked, write the remote file to the output kickstart
-        # file in one burst.  Then close everything up to get ready to
-        # read ahead in the input file.  This allows multiple %ksappend
-        # lines to exist.
-        if url is not None:
-            os.write(outF, url.read())
-            url.close()
-
-    # All done - close the temp file and return its location.
-    os.close(outF)
-    return outName
-
-def preprocessFromString (s):
-    """Preprocess the kickstart file, provided as the string str.  This
-        method is currently only useful for handling %ksappend lines,
-        which need to be fetched before the real kickstart parser can be
-        run.  Returns the location of the complete kickstart file.
-    """
-    i = iter(s.splitlines(True) + [""])
-    rc = _preprocessStateMachine (i.next)
-    return rc
-
-def preprocessKickstart (f):
-    """Preprocess the kickstart file, given by the filename file.  This
-        method is currently only useful for handling %ksappend lines,
-        which need to be fetched before the real kickstart parser can be
-        run.  Returns the location of the complete kickstart file.
-    """
-    try:
-        fh = urlopen(f)
-    except grabber.URLGrabError, e:
-        raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror)
-
-    rc = _preprocessStateMachine (iter(fh.readlines()))
-    fh.close()
-    return rc
-
-class PutBackIterator(Iterator):
-    def __init__(self, iterable):
-        self._iterable = iter(iterable)
-        self._buf = None
-
-    def __iter__(self):
-        return self
-
-    def put(self, s):
-        self._buf = s
-
-    def next(self):
-        if self._buf:
-            retval = self._buf
-            self._buf = None
-            return retval
-        else:
-            return self._iterable.next()
-
-###
-### SCRIPT HANDLING
-###
-class Script(KickstartObject):
-    """A class representing a single kickstart script.  If functionality beyond
-       just a data representation is needed (for example, a run method in
-       anaconda), Script may be subclassed.  Although a run method is not
-       provided, most of the attributes of Script have to do with running the
-       script.  Instances of Script are held in a list by the Version object.
-    """
-    def __init__(self, script, *args , **kwargs):
-        """Create a new Script instance.  Instance attributes:
-
-           errorOnFail -- If execution of the script fails, should anaconda
-                          stop, display an error, and then reboot without
-                          running any other scripts?
-           inChroot    -- Does the script execute in anaconda's chroot
-                          environment or not?
-           interp      -- The program that should be used to interpret this
-                          script.
-           lineno      -- The line number this script starts on.
-           logfile     -- Where all messages from the script should be logged.
-           script      -- A string containing all the lines of the script.
-           type        -- The type of the script, which can be KS_SCRIPT_* from
-                          pykickstart.constants.
-        """
-        KickstartObject.__init__(self, *args, **kwargs)
-        self.script = "".join(script)
-
-        self.interp = kwargs.get("interp", "/bin/sh")
-        self.inChroot = kwargs.get("inChroot", False)
-        self.lineno = kwargs.get("lineno", None)
-        self.logfile = kwargs.get("logfile", None)
-        self.errorOnFail = kwargs.get("errorOnFail", False)
-        self.type = kwargs.get("type", constants.KS_SCRIPT_PRE)
-
-    def __str__(self):
-        """Return a string formatted for output to a kickstart file."""
-        retval = ""
-
-        if self.type == constants.KS_SCRIPT_PRE:
-            retval += '\n%pre'
-        elif self.type == constants.KS_SCRIPT_POST:
-            retval += '\n%post'
-        elif self.type == constants.KS_SCRIPT_TRACEBACK:
-            retval += '\n%traceback'
-
-        if self.interp != "/bin/sh" and self.interp != "":
-            retval += " --interpreter=%s" % self.interp
-        if self.type == constants.KS_SCRIPT_POST and not self.inChroot:
-            retval += " --nochroot"
-        if self.logfile != None:
-            retval += " --logfile %s" % self.logfile
-        if self.errorOnFail:
-            retval += " --erroronfail"
-
-        if self.script.endswith("\n"):
-            if ver >= version.F8:
-                return retval + "\n%s%%end\n" % self.script
-            else:
-                return retval + "\n%s\n" % self.script
-        else:
-            if ver >= version.F8:
-                return retval + "\n%s\n%%end\n" % self.script
-            else:
-                return retval + "\n%s\n" % self.script
-
-
-##
-## PACKAGE HANDLING
-##
-class Group:
-    """A class representing a single group in the %packages section."""
-    def __init__(self, name="", include=constants.GROUP_DEFAULT):
-        """Create a new Group instance.  Instance attributes:
-
-           name    -- The group's identifier
-           include -- The level of how much of the group should be included.
-                      Values can be GROUP_* from pykickstart.constants.
-        """
-        self.name = name
-        self.include = include
-
-    def __str__(self):
-        """Return a string formatted for output to a kickstart file."""
-        if self.include == constants.GROUP_REQUIRED:
-            return "@%s --nodefaults" % self.name
-        elif self.include == constants.GROUP_ALL:
-            return "@%s --optional" % self.name
-        else:
-            return "@%s" % self.name
-
-    def __cmp__(self, other):
-        if self.name < other.name:
-            return -1
-        elif self.name > other.name:
-            return 1
-        return 0
-
-class Packages(KickstartObject):
-    """A class representing the %packages section of the kickstart file."""
-    def __init__(self, *args, **kwargs):
-        """Create a new Packages instance.  Instance attributes:
-
-           addBase       -- Should the Base group be installed even if it is
-                            not specified?
-           default       -- Should the default package set be selected?
-           excludedList  -- A list of all the packages marked for exclusion in
-                            the %packages section, without the leading minus
-                            symbol.
-           excludeDocs   -- Should documentation in each package be excluded?
-           groupList     -- A list of Group objects representing all the groups
-                            specified in the %packages section.  Names will be
-                            stripped of the leading @ symbol.
-           excludedGroupList -- A list of Group objects representing all the
-                                groups specified for removal in the %packages
-                                section.  Names will be stripped of the leading
-                                -@ symbols.
-           handleMissing -- If unknown packages are specified in the %packages
-                            section, should it be ignored or not?  Values can
-                            be KS_MISSING_* from pykickstart.constants.
-           packageList   -- A list of all the packages specified in the
-                            %packages section.
-           instLangs     -- A list of languages to install.
-        """
-        KickstartObject.__init__(self, *args, **kwargs)
-
-        self.addBase = True
-        self.default = False
-        self.excludedList = []
-        self.excludedGroupList = []
-        self.excludeDocs = False
-        self.groupList = []
-        self.handleMissing = constants.KS_MISSING_PROMPT
-        self.packageList = []
-        self.instLangs = None
-
-    def __str__(self):
-        """Return a string formatted for output to a kickstart file."""
-        pkgs = ""
-
-        if not self.default:
-            grps = self.groupList
-            grps.sort()
-            for grp in grps:
-                pkgs += "%s\n" % grp.__str__()
-
-            p = self.packageList
-            p.sort()
-            for pkg in p:
-                pkgs += "%s\n" % pkg
-
-            grps = self.excludedGroupList
-            grps.sort()
-            for grp in grps:
-                pkgs += "-%s\n" % grp.__str__()
-
-            p = self.excludedList
-            p.sort()
-            for pkg in p:
-                pkgs += "-%s\n" % pkg
-
-            if pkgs == "":
-                return ""
-
-        retval = "\n%packages"
-
-        if self.default:
-            retval += " --default"
-        if self.excludeDocs:
-            retval += " --excludedocs"
-        if not self.addBase:
-            retval += " --nobase"
-        if self.handleMissing == constants.KS_MISSING_IGNORE:
-            retval += " --ignoremissing"
-        if self.instLangs:
-            retval += " --instLangs=%s" % self.instLangs
-
-        if ver >= version.F8:
-            return retval + "\n" + pkgs + "\n%end\n"
-        else:
-            return retval + "\n" + pkgs + "\n"
-
-    def _processGroup (self, line):
-        op = OptionParser()
-        op.add_option("--nodefaults", action="store_true", default=False)
-        op.add_option("--optional", action="store_true", default=False)
-
-        (opts, extra) = op.parse_args(args=line.split())
-
-        if opts.nodefaults and opts.optional:
-            raise KickstartValueError, _("Group cannot specify both --nodefaults and --optional")
-
-        # If the group name has spaces in it, we have to put it back together
-        # now.
-        grp = " ".join(extra)
-
-        if opts.nodefaults:
-            self.groupList.append(Group(name=grp, include=constants.GROUP_REQUIRED))
-        elif opts.optional:
-            self.groupList.append(Group(name=grp, include=constants.GROUP_ALL))
-        else:
-            self.groupList.append(Group(name=grp, include=constants.GROUP_DEFAULT))
-
-    def add (self, pkgList):
-        """Given a list of lines from the input file, strip off any leading
-           symbols and add the result to the appropriate list.
-        """
-        existingExcludedSet = set(self.excludedList)
-        existingPackageSet = set(self.packageList)
-        newExcludedSet = set()
-        newPackageSet = set()
-
-        excludedGroupList = []
-
-        for pkg in pkgList:
-            stripped = pkg.strip()
-
-            if stripped[0] == "@":
-                self._processGroup(stripped[1:])
-            elif stripped[0] == "-":
-                if stripped[1] == "@":
-                    excludedGroupList.append(Group(name=stripped[2:]))
-                else:
-                    newExcludedSet.add(stripped[1:])
-            else:
-                newPackageSet.add(stripped)
-
-        # Groups have to be excluded in two different ways (note: can't use
-        # sets here because we have to store objects):
-        excludedGroupNames = map(lambda g: g.name, excludedGroupList)
-
-        # First, an excluded group may be cancelling out a previously given
-        # one.  This is often the case when using %include.  So there we should
-        # just remove the group from the list.
-        self.groupList = filter(lambda g: g.name not in excludedGroupNames, self.groupList)
-
-        # Second, the package list could have included globs which are not
-        # processed by pykickstart.  In that case we need to preserve a list of
-        # excluded groups so whatever tool doing package/group installation can
-        # take appropriate action.
-        self.excludedGroupList.extend(excludedGroupList)
-
-        existingPackageSet = (existingPackageSet - newExcludedSet) | newPackageSet
-        existingExcludedSet = (existingExcludedSet - existingPackageSet) | newExcludedSet
-
-        self.packageList = list(existingPackageSet)
-        self.excludedList = list(existingExcludedSet)
-
-
-###
-### PARSER
-###
-class KickstartParser:
-    """The kickstart file parser class as represented by a basic state
-       machine.  To create a specialized parser, make a subclass and override
-       any of the methods you care about.  Methods that don't need to do
-       anything may just pass.  However, _stateMachine should never be
-       overridden.
-    """
-    def __init__ (self, handler, followIncludes=True, errorsAreFatal=True,
-                  missingIncludeIsFatal=True):
-        """Create a new KickstartParser instance.  Instance attributes:
-
-           errorsAreFatal        -- Should errors cause processing to halt, or
-                                    just print a message to the screen?  This
-                                    is most useful for writing syntax checkers
-                                    that may want to continue after an error is
-                                    encountered.
-           followIncludes        -- If %include is seen, should the included
-                                    file be checked as well or skipped?
-           handler               -- An instance of a BaseHandler subclass.  If
-                                    None, the input file will still be parsed
-                                    but no data will be saved and no commands
-                                    will be executed.
-           missingIncludeIsFatal -- Should missing include files be fatal, even
-                                    if errorsAreFatal is False?
-        """
-        self.errorsAreFatal = errorsAreFatal
-        self.followIncludes = followIncludes
-        self.handler = handler
-        self.currentdir = {}
-        self.missingIncludeIsFatal = missingIncludeIsFatal
-
-        self._state = STATE_COMMANDS
-        self._includeDepth = 0
-        self._line = ""
-
-        self.version = self.handler.version
-
-        global ver
-        ver = self.version
-
-        self._sections = {}
-        self.setupSections()
-
-    def _reset(self):
-        """Reset the internal variables of the state machine for a new kickstart file."""
-        self._state = STATE_COMMANDS
-        self._includeDepth = 0
-
-    def getSection(self, s):
-        """Return a reference to the requested section (s must start with '%'s),
-           or raise KeyError if not found.
-        """
-        return self._sections[s]
-
-    def handleCommand (self, lineno, args):
-        """Given the list of command and arguments, call the Version's
-           dispatcher method to handle the command.  Returns the command or
-           data object returned by the dispatcher.  This method may be
-           overridden in a subclass if necessary.
-        """
-        if self.handler:
-            self.handler.currentCmd = args[0]
-            self.handler.currentLine = self._line
-            retval = self.handler.dispatcher(args, lineno)
-
-            return retval
-
-    def registerSection(self, obj):
-        """Given an instance of a Section subclass, register the new section
-           with the parser.  Calling this method means the parser will
-           recognize your new section and dispatch into the given object to
-           handle it.
-        """
-        if not obj.sectionOpen:
-            raise TypeError, "no sectionOpen given for section %s" % obj
-
-        if not obj.sectionOpen.startswith("%"):
-            raise TypeError, "section %s tag does not start with a %%" % obj.sectionOpen
-
-        self._sections[obj.sectionOpen] = obj
-
-    def _finalize(self, obj):
-        """Called at the close of a kickstart section to take any required
-           actions.  Internally, this is used to add scripts once we have the
-           whole body read.
-        """
-        obj.finalize()
-        self._state = STATE_COMMANDS
-
-    def _handleSpecialComments(self, line):
-        """Kickstart recognizes a couple special comments."""
-        if self._state != STATE_COMMANDS:
-            return
-
-        # Save the platform for s-c-kickstart.
-        if line[:10] == "#platform=":
-            self.handler.platform = self._line[11:]
-
-    def _readSection(self, lineIter, lineno):
-        obj = self._sections[self._state]
-
-        while True:
-            try:
-                line = lineIter.next()
-                if line == "":
-                    # This section ends at the end of the file.
-                    if self.version >= version.F8:
-                        raise KickstartParseError, formatErrorMsg(lineno, msg=_("Section does not end with %%end."))
-
-                    self._finalize(obj)
-            except StopIteration:
-                break
-
-            lineno += 1
-
-            # Throw away blank lines and comments, unless the section wants all
-            # lines.
-            if self._isBlankOrComment(line) and not obj.allLines:
-                continue
-
-            if line.startswith("%"):
-                args = shlex.split(line)
-
-                if args and args[0] == "%end":
-                    # This is a properly terminated section.
-                    self._finalize(obj)
-                    break
-                elif args and args[0] == "%ksappend":
-                    continue
-                elif args and (self._validState(args[0]) or args[0] in ["%include", "%ksappend"]):
-                    # This is an unterminated section.
-                    if self.version >= version.F8:
-                        raise KickstartParseError, formatErrorMsg(lineno, msg=_("Section does not end with %%end."))
-
-                    # Finish up.  We do not process the header here because
-                    # kicking back out to STATE_COMMANDS will ensure that happens.
-                    lineIter.put(line)
-                    lineno -= 1
-                    self._finalize(obj)
-                    break
-            else:
-                # This is just a line within a section.  Pass it off to whatever
-                # section handles it.
-                obj.handleLine(line)
-
-        return lineno
-
-    def _validState(self, st):
-        """Is the given section tag one that has been registered with the parser?"""
-        return st in self._sections.keys()
-
-    def _tryFunc(self, fn):
-        """Call the provided function (which doesn't take any arguments) and
-           do the appropriate error handling.  If errorsAreFatal is False, this
-           function will just print the exception and keep going.
-        """
-        try:
-            fn()
-        except Exception as msg:
-            if self.errorsAreFatal:
-                raise
-            else:
-                print msg
-
-    def _isBlankOrComment(self, line):
-        return line.isspace() or line == "" or line.lstrip()[0] == '#'
-
-    def _stateMachine(self, lineIter):
-        # For error reporting.
-        lineno = 0
-
-        while True:
-            # Get the next line out of the file, quitting if this is the last line.
-            try:
-                self._line = lineIter.next()
-                if self._line == "":
-                    break
-            except StopIteration:
-                break
-
-            lineno += 1
-
-            # Eliminate blank lines, whitespace-only lines, and comments.
-            if self._isBlankOrComment(self._line):
-                self._handleSpecialComments(self._line)
-                continue
-
-            # Remove any end-of-line comments.
-            sanitized = self._line.split("#")[0]
-
-            # Then split the line.
-            args = shlex.split(sanitized.rstrip())
-
-            if args[0] == "%include":
-                # This case comes up primarily in ksvalidator.
-                if not self.followIncludes:
-                    continue
-
-                if len(args) == 1 or not args[1]:
-                    raise KickstartParseError, formatErrorMsg(lineno)
-
-                self._includeDepth += 1
-
-                try:
-                    self.readKickstart(args[1], reset=False)
-                except KickstartError:
-                    # Handle the include file being provided over the
-                    # network in a %pre script.  This case comes up in the
-                    # early parsing in anaconda.
-                    if self.missingIncludeIsFatal:
-                        raise
-
-                self._includeDepth -= 1
-                continue
-
-            # Now on to the main event.
-            if self._state == STATE_COMMANDS:
-                if args[0] == "%ksappend":
-                    # This is handled by the preprocess* functions, so continue.
-                    continue
-                elif args[0][0] == '%':
-                    # This is the beginning of a new section.  Handle its header
-                    # here.
-                    newSection = args[0]
-                    if not self._validState(newSection):
-                        raise KickstartParseError, formatErrorMsg(lineno, msg=_("Unknown kickstart section: %s" % newSection))
-
-                    self._state = newSection
-                    obj = self._sections[self._state]
-                    self._tryFunc(lambda: obj.handleHeader(lineno, args))
-
-                    # This will handle all section processing, kicking us back
-                    # out to STATE_COMMANDS at the end with the current line
-                    # being the next section header, etc.
-                    lineno = self._readSection(lineIter, lineno)
-                else:
-                    # This is a command in the command section.  Dispatch to it.
-                    self._tryFunc(lambda: self.handleCommand(lineno, args))
-            elif self._state == STATE_END:
-                break
-
-    def readKickstartFromString (self, s, reset=True):
-        """Process a kickstart file, provided as the string str."""
-        if reset:
-            self._reset()
-
-        # Add a "" to the end of the list so the string reader acts like the
-        # file reader and we only get StopIteration when we're after the final
-        # line of input.
-        i = PutBackIterator(s.splitlines(True) + [""])
-        self._stateMachine (i)
-
-    def readKickstart(self, f, reset=True):
-        """Process a kickstart file, given by the filename f."""
-        if reset:
-            self._reset()
-
-        # an %include might not specify a full path.  if we don't try to figure
-        # out what the path should have been, then we're unable to find it
-        # requiring full path specification, though, sucks.  so let's make
-        # the reading "smart" by keeping track of what the path is at each
-        # include depth.
-        if not os.path.exists(f):
-            if self.currentdir.has_key(self._includeDepth - 1):
-                if os.path.exists(os.path.join(self.currentdir[self._includeDepth - 1], f)):
-                    f = os.path.join(self.currentdir[self._includeDepth - 1], f)
-
-        cd = os.path.dirname(f)
-        if not cd.startswith("/"):
-            cd = os.path.abspath(cd)
-        self.currentdir[self._includeDepth] = cd
-
-        try:
-            s = urlread(f)
-        except grabber.URLGrabError, e:
-            raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror)
-
-        self.readKickstartFromString(s, reset=False)
-
-    def setupSections(self):
-        """Install the sections all kickstart files support.  You may override
-           this method in a subclass, but should avoid doing so unless you know
-           what you're doing.
-        """
-        self._sections = {}
-
-        # Install the sections all kickstart files support.
-        self.registerSection(PreScriptSection(self.handler, dataObj=Script))
-        self.registerSection(PostScriptSection(self.handler, dataObj=Script))
-        self.registerSection(TracebackScriptSection(self.handler, dataObj=Script))
-        self.registerSection(PackageSection(self.handler))
diff --git a/mic/kickstart/pykickstart/sections.py b/mic/kickstart/pykickstart/sections.py
deleted file mode 100644 (file)
index 44df856..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-#
-# sections.py:  Kickstart file sections.
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2011 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-This module exports the classes that define a section of a kickstart file.  A
-section is a chunk of the file starting with a %tag and ending with a %end.
-Examples of sections include %packages, %pre, and %post.
-
-You may use this module to define your own custom sections which will be
-treated just the same as a predefined one by the kickstart parser.  All that
-is necessary is to create a new subclass of Section and call
-parser.registerSection with an instance of your new class.
-"""
-from constants import *
-from options import KSOptionParser
-from version import *
-
-class Section(object):
-    """The base class for defining kickstart sections.  You are free to
-       subclass this as appropriate.
-
-       Class attributes:
-
-       allLines    -- Does this section require the parser to call handleLine
-                      for every line in the section, even blanks and comments?
-       sectionOpen -- The string that denotes the start of this section.  You
-                      must start your tag with a percent sign.
-       timesSeen   -- This attribute is for informational purposes only.  It is
-                      incremented every time handleHeader is called to keep
-                      track of the number of times a section of this type is
-                      seen.
-    """
-    allLines = False
-    sectionOpen = ""
-    timesSeen = 0
-
-    def __init__(self, handler, **kwargs):
-        """Create a new Script instance.  At the least, you must pass in an
-           instance of a baseHandler subclass.
-
-           Valid kwargs:
-
-           dataObj --
-        """
-        self.handler = handler
-
-        self.version = self.handler.version
-
-        self.dataObj = kwargs.get("dataObj", None)
-
-    def finalize(self):
-        """This method is called when the %end tag for a section is seen.  It
-           is not required to be provided.
-        """
-        pass
-
-    def handleLine(self, line):
-        """This method is called for every line of a section.  Take whatever
-           action is appropriate.  While this method is not required to be
-           provided, not providing it does not make a whole lot of sense.
-
-           Arguments:
-
-           line -- The complete line, with any trailing newline.
-        """
-        pass
-
-    def handleHeader(self, lineno, args):
-        """This method is called when the opening tag for a section is seen.
-           Not all sections will need this method, though all provided with
-           kickstart include one.
-
-           Arguments:
-
-           args -- A list of all strings passed as arguments to the section
-                   opening tag.
-        """
-        self.timesSeen += 1
-
-class NullSection(Section):
-    """This defines a section that pykickstart will recognize but do nothing
-       with.  If the parser runs across a %section that has no object registered,
-       it will raise an error.  Sometimes, you may want to simply ignore those
-       sections instead.  This class is useful for that purpose.
-    """
-    def __init__(self, *args, **kwargs):
-        """Create a new NullSection instance.  You must pass a sectionOpen
-           parameter (including a leading '%') for the section you wish to
-           ignore.
-        """
-        Section.__init__(self, *args, **kwargs)
-        self.sectionOpen = kwargs.get("sectionOpen")
-
-class ScriptSection(Section):
-    allLines = True
-
-    def __init__(self, *args, **kwargs):
-        Section.__init__(self, *args, **kwargs)
-        self._script = {}
-        self._resetScript()
-
-    def _getParser(self):
-        op = KSOptionParser(self.version)
-        op.add_option("--erroronfail", dest="errorOnFail", action="store_true",
-                      default=False)
-        op.add_option("--interpreter", dest="interpreter", default="/bin/sh")
-        op.add_option("--log", "--logfile", dest="log")
-        return op
-
-    def _resetScript(self):
-        self._script = {"interp": "/bin/sh", "log": None, "errorOnFail": False,
-                        "lineno": None, "chroot": False, "body": []}
-
-    def handleLine(self, line):
-        self._script["body"].append(line)
-
-    def finalize(self):
-        if " ".join(self._script["body"]).strip() == "":
-            return
-
-        kwargs = {"interp": self._script["interp"],
-                  "inChroot": self._script["chroot"],
-                  "lineno": self._script["lineno"],
-                  "logfile": self._script["log"],
-                  "errorOnFail": self._script["errorOnFail"],
-                  "type": self._script["type"]}
-
-        s = self.dataObj (self._script["body"], **kwargs)
-        self._resetScript()
-
-        if self.handler:
-            self.handler.scripts.append(s)
-
-    def handleHeader(self, lineno, args):
-        """Process the arguments to a %pre/%post/%traceback header for later
-           setting on a Script instance once the end of the script is found.
-           This method may be overridden in a subclass if necessary.
-        """
-        Section.handleHeader(self, lineno, args)
-        op = self._getParser()
-
-        (opts, extra) = op.parse_args(args=args[1:], lineno=lineno)
-
-        self._script["interp"] = opts.interpreter
-        self._script["lineno"] = lineno
-        self._script["log"] = opts.log
-        self._script["errorOnFail"] = opts.errorOnFail
-        if hasattr(opts, "nochroot"):
-            self._script["chroot"] = not opts.nochroot
-
-class PreScriptSection(ScriptSection):
-    sectionOpen = "%pre"
-
-    def _resetScript(self):
-        ScriptSection._resetScript(self)
-        self._script["type"] = KS_SCRIPT_PRE
-
-class PostScriptSection(ScriptSection):
-    sectionOpen = "%post"
-
-    def _getParser(self):
-        op = ScriptSection._getParser(self)
-        op.add_option("--nochroot", dest="nochroot", action="store_true",
-                      default=False)
-        return op
-
-    def _resetScript(self):
-        ScriptSection._resetScript(self)
-        self._script["chroot"] = True
-        self._script["type"] = KS_SCRIPT_POST
-
-class TracebackScriptSection(ScriptSection):
-    sectionOpen = "%traceback"
-
-    def _resetScript(self):
-        ScriptSection._resetScript(self)
-        self._script["type"] = KS_SCRIPT_TRACEBACK
-
-class PackageSection(Section):
-    sectionOpen = "%packages"
-
-    def handleLine(self, line):
-        if not self.handler:
-            return
-
-        (h, s, t) = line.partition('#')
-        line = h.rstrip()
-
-        self.handler.packages.add([line])
-
-    def handleHeader(self, lineno, args):
-        """Process the arguments to the %packages header and set attributes
-           on the Version's Packages instance appropriate.  This method may be
-           overridden in a subclass if necessary.
-        """
-        Section.handleHeader(self, lineno, args)
-        op = KSOptionParser(version=self.version)
-        op.add_option("--excludedocs", dest="excludedocs", action="store_true",
-                      default=False)
-        op.add_option("--ignoremissing", dest="ignoremissing",
-                      action="store_true", default=False)
-        op.add_option("--nobase", dest="nobase", action="store_true",
-                      default=False)
-        op.add_option("--ignoredeps", dest="resolveDeps", action="store_false",
-                      deprecated=FC4, removed=F9)
-        op.add_option("--resolvedeps", dest="resolveDeps", action="store_true",
-                      deprecated=FC4, removed=F9)
-        op.add_option("--default", dest="defaultPackages", action="store_true",
-                      default=False, introduced=F7)
-        op.add_option("--instLangs", dest="instLangs", type="string",
-                      default="", introduced=F9)
-
-        (opts, extra) = op.parse_args(args=args[1:], lineno=lineno)
-
-        self.handler.packages.excludeDocs = opts.excludedocs
-        self.handler.packages.addBase = not opts.nobase
-        if opts.ignoremissing:
-            self.handler.packages.handleMissing = KS_MISSING_IGNORE
-        else:
-            self.handler.packages.handleMissing = KS_MISSING_PROMPT
-
-        if opts.defaultPackages:
-            self.handler.packages.default = True
-
-        if opts.instLangs:
-            self.handler.packages.instLangs = opts.instLangs
diff --git a/mic/kickstart/pykickstart/version.py b/mic/kickstart/pykickstart/version.py
deleted file mode 100644 (file)
index 102cc37..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-#
-# Chris Lumens <clumens@redhat.com>
-#
-# Copyright 2006, 2007, 2008, 2009, 2010 Red Hat, Inc.
-#
-# 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.  Any Red Hat
-# trademarks that are incorporated in the source code or documentation are not
-# subject to the GNU General Public License and may only be used or replicated
-# with the express permission of Red Hat, Inc. 
-#
-"""
-Methods for working with kickstart versions.
-
-This module defines several symbolic constants that specify kickstart syntax
-versions.  Each version corresponds roughly to one release of Red Hat Linux,
-Red Hat Enterprise Linux, or Fedora Core as these are where most syntax
-changes take place.
-
-This module also exports several functions:
-
-    makeVersion - Given a version number, return an instance of the
-                  matching handler class.
-
-    returnClassForVersion - Given a version number, return the matching
-                            handler class.  This does not return an
-                            instance of that class, however.
-
-    stringToVersion - Convert a string representation of a version number
-                      into the symbolic constant.
-
-    versionToString - Perform the reverse mapping.
-
-    versionFromFile - Read a kickstart file and determine the version of
-                      syntax it uses.  This requires the kickstart file to
-                      have a version= comment in it.
-"""
-import imputil, re, sys
-from urlgrabber import urlopen
-
-import gettext
-_ = lambda x: gettext.ldgettext("pykickstart", x)
-
-from pykickstart.errors import KickstartVersionError
-
-# Symbolic names for internal version numbers.
-RHEL3 = 900
-FC3 = 1000
-RHEL4 = 1100
-FC4 = 2000
-FC5 = 3000
-FC6 = 4000
-RHEL5 = 4100
-F7  = 5000
-F8 = 6000
-F9 = 7000
-F10 = 8000
-F11 = 9000
-F12 = 10000
-F13 = 11000
-RHEL6 = 11100
-F14 = 12000
-F15 = 13000
-F16 = 14000
-
-# This always points at the latest version and is the default.
-DEVEL = F16
-
-# A one-to-one mapping from string representations to version numbers.
-versionMap = {
-        "DEVEL": DEVEL,
-        "FC3": FC3, "FC4": FC4, "FC5": FC5, "FC6": FC6, "F7": F7, "F8": F8,
-        "F9": F9, "F10": F10, "F11": F11, "F12": F12, "F13": F13,
-        "F14": F14, "F15": F15, "F16": F16,
-        "RHEL3": RHEL3, "RHEL4": RHEL4, "RHEL5": RHEL5, "RHEL6": RHEL6
-}
-
-def stringToVersion(s):
-    """Convert string into one of the provided version constants.  Raises
-       KickstartVersionError if string does not match anything.
-    """
-    # First try these short forms.
-    try:
-        return versionMap[s.upper()]
-    except KeyError:
-        pass
-
-    # Now try the Fedora versions.
-    m = re.match("^fedora.* (\d+)$", s, re.I)
-
-    if m and m.group(1):
-        if versionMap.has_key("FC" + m.group(1)):
-            return versionMap["FC" + m.group(1)]
-        elif versionMap.has_key("F" + m.group(1)):
-            return versionMap["F" + m.group(1)]
-        else:
-            raise KickstartVersionError(_("Unsupported version specified: %s") % s)
-
-    # Now try the RHEL versions.
-    m = re.match("^red hat enterprise linux.* (\d+)([\.\d]*)$", s, re.I)
-
-    if m and m.group(1):
-        if versionMap.has_key("RHEL" + m.group(1)):
-            return versionMap["RHEL" + m.group(1)]
-        else:
-            raise KickstartVersionError(_("Unsupported version specified: %s") % s)
-
-    # If nothing else worked, we're out of options.
-    raise KickstartVersionError(_("Unsupported version specified: %s") % s)
-
-def versionToString(version, skipDevel=False):
-    """Convert version into a string representation of the version number.
-       This is the reverse operation of stringToVersion.  Raises
-       KickstartVersionError if version does not match anything.
-    """
-    if not skipDevel and version == versionMap["DEVEL"]:
-        return "DEVEL"
-
-    for (key, val) in versionMap.iteritems():
-        if key == "DEVEL":
-            continue
-        elif val == version:
-            return key
-
-    raise KickstartVersionError(_("Unsupported version specified: %s") % version)
-
-def versionFromFile(f):
-    """Given a file or URL, look for a line starting with #version= and
-       return the version number.  If no version is found, return DEVEL.
-    """
-    v = DEVEL
-
-    fh = urlopen(f)
-
-    while True:
-        try:
-            l = fh.readline()
-        except StopIteration:
-            break
-
-        # At the end of the file?
-        if l == "":
-            break
-
-        if l.isspace() or l.strip() == "":
-            continue
-
-        if l[:9] == "#version=":
-            v = stringToVersion(l[9:].rstrip())
-            break
-
-    fh.close()
-    return v
-
-def returnClassForVersion(version=DEVEL):
-    """Return the class of the syntax handler for version.  version can be
-       either a string or the matching constant.  Raises KickstartValueError
-       if version does not match anything.
-    """
-    try:
-        version = int(version)
-        module = "%s" % versionToString(version, skipDevel=True)
-    except ValueError:
-        module = "%s" % version
-        version = stringToVersion(version)
-
-    module = module.lower()
-
-    try:
-        import pykickstart.handlers
-        sys.path.extend(pykickstart.handlers.__path__)
-        found = imputil.imp.find_module(module)
-        loaded = imputil.imp.load_module(module, found[0], found[1], found[2])
-
-        for (k, v) in loaded.__dict__.iteritems():
-            if k.lower().endswith("%shandler" % module):
-                return v
-    except:
-        raise KickstartVersionError(_("Unsupported version specified: %s") % version)
-
-def makeVersion(version=DEVEL):
-    """Return a new instance of the syntax handler for version.  version can be
-       either a string or the matching constant.  This function is useful for
-       standalone programs which just need to handle a specific version of
-       kickstart syntax (as provided by a command line argument, for example)
-       and need to instantiate the correct object.
-    """
-    cl = returnClassForVersion(version)
-    return cl()
diff --git a/mic/pykickstart/__init__.py b/mic/pykickstart/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/mic/pykickstart/base.py b/mic/pykickstart/base.py
new file mode 100644 (file)
index 0000000..e6c8f56
--- /dev/null
@@ -0,0 +1,466 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+Base classes for creating commands and syntax version object.
+
+This module exports several important base classes:
+
+    BaseData - The base abstract class for all data objects.  Data objects
+               are contained within a BaseHandler object.
+
+    BaseHandler - The base abstract class from which versioned kickstart
+                  handler are derived.  Subclasses of BaseHandler hold
+                  BaseData and KickstartCommand objects.
+
+    DeprecatedCommand - An abstract subclass of KickstartCommand that should
+                        be further subclassed by users of this module.  When
+                        a subclass is used, a warning message will be
+                        printed.
+
+    KickstartCommand - The base abstract class for all kickstart commands.
+                       Command objects are contained within a BaseHandler
+                       object.
+"""
+import gettext
+gettext.textdomain("pykickstart")
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+import types
+import warnings
+from pykickstart.errors import *
+from pykickstart.ko import *
+from pykickstart.parser import Packages
+from pykickstart.version import versionToString
+
+###
+### COMMANDS
+###
+class KickstartCommand(KickstartObject):
+    """The base class for all kickstart commands.  This is an abstract class."""
+    removedKeywords = []
+    removedAttrs = []
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        """Create a new KickstartCommand instance.  This method must be
+           provided by all subclasses, but subclasses must call
+           KickstartCommand.__init__ first.  Instance attributes:
+
+           currentCmd    -- The name of the command in the input file that
+                            caused this handler to be run.
+           currentLine   -- The current unprocessed line from the input file
+                            that caused this handler to be run.
+           handler       -- A reference to the BaseHandler subclass this
+                            command is contained withing.  This is needed to
+                            allow referencing of Data objects.
+           lineno        -- The current line number in the input file.
+           writePriority -- An integer specifying when this command should be
+                            printed when iterating over all commands' __str__
+                            methods.  The higher the number, the later this
+                            command will be written.  All commands with the
+                            same priority will be written alphabetically.
+        """
+
+        # We don't want people using this class by itself.
+        if self.__class__ is KickstartCommand:
+            raise TypeError, "KickstartCommand is an abstract class."
+
+        KickstartObject.__init__(self, *args, **kwargs)
+
+        self.writePriority = writePriority
+
+        # These will be set by the dispatcher.
+        self.currentCmd = ""
+        self.currentLine = ""
+        self.handler = None
+        self.lineno = 0
+
+        # If a subclass provides a removedKeywords list, remove all the
+        # members from the kwargs list before we start processing it.  This
+        # ensures that subclasses don't continue to recognize arguments that
+        # were removed.
+        for arg in filter(kwargs.has_key, self.removedKeywords):
+            kwargs.pop(arg)
+
+    def __call__(self, *args, **kwargs):
+        """Set multiple attributes on a subclass of KickstartCommand at once
+           via keyword arguments.  Valid attributes are anything specified in
+           a subclass, but unknown attributes will be ignored.
+        """
+        for (key, val) in kwargs.items():
+            # Ignore setting attributes that were removed in a subclass, as
+            # if they were unknown attributes.
+            if key in self.removedAttrs:
+                continue
+
+            if hasattr(self, key):
+                setattr(self, key, val)
+
+    def __str__(self):
+        """Return a string formatted for output to a kickstart file.  This
+           method must be provided by all subclasses.
+        """
+        return KickstartObject.__str__(self)
+
+    def parse(self, args):
+        """Parse the list of args and set data on the KickstartCommand object.
+           This method must be provided by all subclasses.
+        """
+        raise TypeError, "parse() not implemented for KickstartCommand"
+
+    def apply(self, instroot="/"):
+        """Write out the configuration related to the KickstartCommand object.
+           Subclasses which do not provide this method will not have their
+           configuration written out.
+        """
+        return
+
+    def dataList(self):
+        """For commands that can occur multiple times in a single kickstart
+           file (like network, part, etc.), return the list that we should
+           append more data objects to.
+        """
+        return None
+
+    def deleteRemovedAttrs(self):
+        """Remove all attributes from self that are given in the removedAttrs
+           list.  This method should be called from __init__ in a subclass,
+           but only after the superclass's __init__ method has been called.
+        """
+        for attr in filter(lambda k: hasattr(self, k), self.removedAttrs):
+            delattr(self, attr)
+
+    # Set the contents of the opts object (an instance of optparse.Values
+    # returned by parse_args) as attributes on the KickstartCommand object.
+    # It's useful to call this from KickstartCommand subclasses after parsing
+    # the arguments.
+    def _setToSelf(self, optParser, opts):
+        self._setToObj(optParser, opts, self)
+
+    # Sets the contents of the opts object (an instance of optparse.Values
+    # returned by parse_args) as attributes on the provided object obj.  It's
+    # useful to call this from KickstartCommand subclasses that handle lists
+    # of objects (like partitions, network devices, etc.) and need to populate
+    # a Data object.
+    def _setToObj(self, optParser, opts, obj):
+        for key in filter (lambda k: getattr(opts, k) != None, optParser.keys()):
+            setattr(obj, key, getattr(opts, key))
+
+class DeprecatedCommand(KickstartCommand):
+    """Specify that a command is deprecated and no longer has any function.
+       Any command that is deprecated should be subclassed from this class,
+       only specifying an __init__ method that calls the superclass's __init__.
+       This is an abstract class.
+    """
+    def __init__(self, writePriority=None, *args, **kwargs):
+        # We don't want people using this class by itself.
+        if self.__class__ is KickstartCommand:
+            raise TypeError, "DeprecatedCommand is an abstract class."
+
+        # Create a new DeprecatedCommand instance.
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+
+    def __str__(self):
+        """Placeholder since DeprecatedCommands don't work anymore."""
+        return ""
+
+    def parse(self, args):
+        """Print a warning message if the command is seen in the input file."""
+        mapping = {"lineno": self.lineno, "cmd": self.currentCmd}
+        warnings.warn(_("Ignoring deprecated command on line %(lineno)s:  The %(cmd)s command 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 command.") % mapping, DeprecationWarning)
+
+
+###
+### HANDLERS
+###
+class BaseHandler(KickstartObject):
+    """Each version of kickstart syntax is provided by a subclass of this
+       class.  These subclasses are what users will interact with for parsing,
+       extracting data, and writing out kickstart files.  This is an abstract
+       class.
+
+       version -- The version this syntax handler supports.  This is set by
+                  a class attribute of a BaseHandler subclass and is used to
+                  set up the command dict.  It is for read-only use.
+    """
+    version = None
+
+    def __init__(self, mapping=None, dataMapping=None, commandUpdates=None,
+                 dataUpdates=None, *args, **kwargs):
+        """Create a new BaseHandler instance.  This method must be provided by
+           all subclasses, but subclasses must call BaseHandler.__init__ first.
+
+           mapping          -- A custom map from command strings to classes,
+                               useful when creating your own handler with
+                               special command objects.  It is otherwise unused
+                               and rarely needed.  If you give this argument,
+                               the mapping takes the place of the default one
+                               and so must include all commands you want
+                               recognized.
+           dataMapping      -- This is the same as mapping, but for data
+                               objects.  All the same comments apply.
+           commandUpdates   -- This is similar to mapping, but does not take
+                               the place of the defaults entirely.  Instead,
+                               this mapping is applied after the defaults and
+                               updates it with just the commands you want to
+                               modify.
+           dataUpdates      -- This is the same as commandUpdates, but for
+                               data objects.
+
+
+           Instance attributes:
+
+           commands -- A mapping from a string command to a KickstartCommand
+                       subclass object that handles it.  Multiple strings can
+                       map to the same object, but only one instance of the
+                       command object should ever exist.  Most users should
+                       never have to deal with this directly, as it is
+                       manipulated internally and called through dispatcher.
+           currentLine -- The current unprocessed line from the input file
+                          that caused this handler to be run.
+           packages -- An instance of pykickstart.parser.Packages which
+                       describes the packages section of the input file.
+           platform -- A string describing the hardware platform, which is
+                       needed only by system-config-kickstart.
+           scripts  -- A list of pykickstart.parser.Script instances, which is
+                       populated by KickstartParser.addScript and describes the
+                       %pre/%post/%traceback script section of the input file.
+        """
+
+        # We don't want people using this class by itself.
+        if self.__class__ is BaseHandler:
+            raise TypeError, "BaseHandler is an abstract class."
+
+        KickstartObject.__init__(self, *args, **kwargs)
+
+        # This isn't really a good place for these, but it's better than
+        # everything else I can think of.
+        self.scripts = []
+        self.packages = Packages()
+        self.platform = ""
+
+        # These will be set by the dispatcher.
+        self.commands = {}
+        self.currentLine = 0
+
+        # A dict keyed by an integer priority number, with each value being a
+        # list of KickstartCommand subclasses.  This dict is maintained by
+        # registerCommand and used in __str__.  No one else should be touching
+        # it.
+        self._writeOrder = {}
+
+        self._registerCommands(mapping, dataMapping, commandUpdates, dataUpdates)
+
+    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 _insertSorted(self, lst, obj):
+        length = len(lst)
+        i = 0
+
+        while i < length:
+            # If the two classes have the same name, it's because we are
+            # overriding an existing class with one from a later kickstart
+            # version, so remove the old one in favor of the new one.
+            if obj.__class__.__name__ > lst[i].__class__.__name__:
+                i += 1
+            elif obj.__class__.__name__ == lst[i].__class__.__name__:
+                lst[i] = obj
+                return
+            elif obj.__class__.__name__ < lst[i].__class__.__name__:
+                break
+
+        if i >= length:
+            lst.append(obj)
+        else:
+            lst.insert(i, obj)
+
+    def _setCommand(self, cmdObj):
+        # Add an attribute on this version object.  We need this to provide a
+        # way for clients to access the command objects.  We also need to strip
+        # off the version part from the front of the name.
+        if cmdObj.__class__.__name__.find("_") != -1:
+            name = unicode(cmdObj.__class__.__name__.split("_", 1)[1])
+        else:
+            name = unicode(cmdObj.__class__.__name__).lower()
+
+        setattr(self, name.lower(), cmdObj)
+
+        # Also, add the object into the _writeOrder dict in the right place.
+        if cmdObj.writePriority is not None:
+            if self._writeOrder.has_key(cmdObj.writePriority):
+                self._insertSorted(self._writeOrder[cmdObj.writePriority], cmdObj)
+            else:
+                self._writeOrder[cmdObj.writePriority] = [cmdObj]
+
+    def _registerCommands(self, mapping=None, dataMapping=None, commandUpdates=None,
+                          dataUpdates=None):
+        if mapping == {} or mapping == None:
+            from pykickstart.handlers.control import commandMap
+            cMap = commandMap[self.version]
+        else:
+            cMap = mapping
+
+        if dataMapping == {} or dataMapping == None:
+            from pykickstart.handlers.control import dataMap
+            dMap = dataMap[self.version]
+        else:
+            dMap = dataMapping
+
+        if type(commandUpdates) == types.DictType:
+            cMap.update(commandUpdates)
+
+        if type(dataUpdates) == types.DictType:
+            dMap.update(dataUpdates)
+
+        for (cmdName, cmdClass) in cMap.iteritems():
+            # First make sure we haven't instantiated this command handler
+            # already.  If we have, we just need to make another mapping to
+            # it in self.commands.
+            cmdObj = None
+
+            for (key, val) in self.commands.iteritems():
+                if val.__class__.__name__ == cmdClass.__name__:
+                    cmdObj = val
+                    break
+
+            # If we didn't find an instance in self.commands, create one now.
+            if cmdObj == None:
+                cmdObj = cmdClass()
+                self._setCommand(cmdObj)
+
+            # Finally, add the mapping to the commands dict.
+            self.commands[cmdName] = cmdObj
+            self.commands[cmdName].handler = self
+
+        # We also need to create attributes for the various data objects.
+        # No checks here because dMap is a bijection.  At least, that's what
+        # the comment says.  Hope no one screws that up.
+        for (dataName, dataClass) in dMap.iteritems():
+            setattr(self, dataName, dataClass)
+
+    def dispatcher(self, args, lineno):
+        """Call the appropriate KickstartCommand handler for the current line
+           in the kickstart file.  A handler for the current command should
+           be registered, though a handler of None is not an error.  Returns
+           the data object returned by KickstartCommand.parse.
+
+           args    -- A list of arguments to the current command
+           lineno  -- The line number in the file, for error reporting
+        """
+        cmd = args[0]
+
+        if not self.commands.has_key(cmd):
+            raise KickstartParseError, formatErrorMsg(lineno, msg=_("Unknown command: %s" % cmd))
+        elif self.commands[cmd] != None:
+            self.commands[cmd].currentCmd = cmd
+            self.commands[cmd].currentLine = self.currentLine
+            self.commands[cmd].lineno = lineno
+
+            # The parser returns the data object that was modified.  This could
+            # be a BaseData subclass that should be put into a list, or it
+            # could be the command handler object itself.
+            obj = self.commands[cmd].parse(args[1:])
+            lst = self.commands[cmd].dataList()
+            if lst is not None:
+                lst.append(obj)
+
+            return obj
+
+    def maskAllExcept(self, lst):
+        """Set all entries in the commands dict to None, except the ones in
+           the lst.  All other commands will not be processed.
+        """
+        self._writeOrder = {}
+
+        for (key, val) in self.commands.iteritems():
+            if not key in lst:
+                self.commands[key] = None
+
+    def hasCommand(self, cmd):
+        """Return true if there is a handler for the string cmd."""
+        return hasattr(self, cmd)
+
+
+###
+### DATA
+###
+class BaseData(KickstartObject):
+    """The base class for all data objects.  This is an abstract class."""
+    removedKeywords = []
+    removedAttrs = []
+
+    def __init__(self, *args, **kwargs):
+        """Create a new BaseData instance.
+        
+           lineno -- Line number in the ks-file where this object was defined
+        """
+
+        # We don't want people using this class by itself.
+        if self.__class__ is BaseData:
+            raise TypeError, "BaseData is an abstract class."
+
+        KickstartObject.__init__(self, *args, **kwargs)
+        self.lineno = 0
+
+    def __str__(self):
+        """Return a string formatted for output to a kickstart file."""
+        return ""
+
+    def __call__(self, *args, **kwargs):
+        """Set multiple attributes on a subclass of BaseData at once via
+           keyword arguments.  Valid attributes are anything specified in a
+           subclass, but unknown attributes will be ignored.
+        """
+        for (key, val) in kwargs.items():
+            # Ignore setting attributes that were removed in a subclass, as
+            # if they were unknown attributes.
+            if key in self.removedAttrs:
+                continue
+
+            if hasattr(self, key):
+                setattr(self, key, val)
+
+    def deleteRemovedAttrs(self):
+        """Remove all attributes from self that are given in the removedAttrs
+           list.  This method should be called from __init__ in a subclass,
+           but only after the superclass's __init__ method has been called.
+        """
+        for attr in filter(lambda k: hasattr(self, k), self.removedAttrs):
+            delattr(self, attr)
diff --git a/mic/pykickstart/commands/__init__.py b/mic/pykickstart/commands/__init__.py
new file mode 100644 (file)
index 0000000..da48ff5
--- /dev/null
@@ -0,0 +1,26 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+import authconfig, autopart, autostep, bootloader, clearpart, device
+import deviceprobe, displaymode, dmraid, driverdisk, fcoe, firewall, firstboot
+import group, ignoredisk, interactive, iscsi, iscsiname, key, keyboard, lang
+import langsupport, lilocheck, logging, logvol, mediacheck, method, monitor
+import mouse, multipath, network, partition, raid, reboot, repo, rescue, rootpw
+import selinux, services, skipx, sshpw, timezone, updates, upgrade, user, vnc
+import volgroup, xconfig, zerombr, zfcp
diff --git a/mic/pykickstart/commands/authconfig.py b/mic/pykickstart/commands/authconfig.py
new file mode 100644 (file)
index 0000000..9af9c0f
--- /dev/null
@@ -0,0 +1,40 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+
+class FC3_Authconfig(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, *args, **kwargs)
+        self.authconfig = kwargs.get("authconfig", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.authconfig:
+            retval += "# System authorization information\nauth %s\n" % self.authconfig
+
+        return retval
+
+    def parse(self, args):
+        self.authconfig = self.currentLine[len(self.currentCmd):].strip()
+        return self
diff --git a/mic/pykickstart/commands/autopart.py b/mic/pykickstart/commands/autopart.py
new file mode 100644 (file)
index 0000000..cf28b5c
--- /dev/null
@@ -0,0 +1,119 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_AutoPart(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=100, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.autopart = kwargs.get("autopart", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.autopart:
+            retval += "autopart\n"
+
+        return retval
+
+    def parse(self, args):
+        if len(args) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "autopart")
+
+        self.autopart = True
+        return self
+
+class F9_AutoPart(FC3_AutoPart):
+    removedKeywords = FC3_AutoPart.removedKeywords
+    removedAttrs = FC3_AutoPart.removedAttrs
+
+    def __init__(self, writePriority=100, *args, **kwargs):
+        FC3_AutoPart.__init__(self, writePriority=writePriority, *args, **kwargs)
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+        self.op = self._getParser()
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.autopart:
+            retval += "autopart"
+
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\""% self.passphrase
+
+        if retval != "":
+            retval += "\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        self.autopart = True
+        return self
+
+class F12_AutoPart(F9_AutoPart):
+    removedKeywords = F9_AutoPart.removedKeywords
+    removedAttrs = F9_AutoPart.removedAttrs
+
+    def __init__(self, writePriority=100, *args, **kwargs):
+        F9_AutoPart.__init__(self, writePriority=writePriority, *args, **kwargs)
+
+        self.escrowcert = kwargs.get("escrowcert", "")
+        self.backuppassphrase = kwargs.get("backuppassphrase", False)
+
+    def __str__(self):
+        retval = F9_AutoPart.__str__(self)
+
+        if self.encrypted and self.escrowcert != "":
+            retval = retval.strip()
+
+            retval += " --escrowcert=\"%s\"" % self.escrowcert
+
+            if self.backuppassphrase:
+                retval += " --backuppassphrase"
+
+            retval += "\n"
+
+        return retval
+
+    def _getParser(self):
+        op = F9_AutoPart._getParser(self)
+        op.add_option("--escrowcert")
+        op.add_option("--backuppassphrase", action="store_true", default=False)
+        return op
diff --git a/mic/pykickstart/commands/autostep.py b/mic/pykickstart/commands/autostep.py
new file mode 100644 (file)
index 0000000..e6ae71c
--- /dev/null
@@ -0,0 +1,55 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+class FC3_AutoStep(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.autostep = kwargs.get("autostep", False)
+        self.autoscreenshot = kwargs.get("autoscreenshot", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.autostep:
+            if self.autoscreenshot:
+                retval += "autostep --autoscreenshot\n"
+            else:
+                retval += "autostep\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--autoscreenshot", dest="autoscreenshot",
+                      action="store_true", default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        self.autostep = True
+        return self
diff --git a/mic/pykickstart/commands/bootloader.py b/mic/pykickstart/commands/bootloader.py
new file mode 100644 (file)
index 0000000..b227fac
--- /dev/null
@@ -0,0 +1,265 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+class FC3_Bootloader(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=10, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.driveorder = kwargs.get("driveorder", [])
+        self.appendLine = kwargs.get("appendLine", "")
+        self.forceLBA = kwargs.get("forceLBA", False)
+        self.linear = kwargs.get("linear", True)
+        self.location = kwargs.get("location", "")
+        self.md5pass = kwargs.get("md5pass", "")
+        self.password = kwargs.get("password", "")
+        self.upgrade = kwargs.get("upgrade", False)
+        self.useLilo = kwargs.get("useLilo", False)
+
+        self.deleteRemovedAttrs()
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.appendLine != "":
+            retval += " --append=\"%s\"" % self.appendLine
+        if self.linear:
+            retval += " --linear"
+        if self.location:
+            retval += " --location=%s" % self.location
+        if hasattr(self, "forceLBA") and self.forceLBA:
+            retval += " --lba32"
+        if self.password != "":
+            retval += " --password=\"%s\"" % self.password
+        if self.md5pass != "":
+            retval += " --md5pass=\"%s\"" % self.md5pass
+        if self.upgrade:
+            retval += " --upgrade"
+        if self.useLilo:
+            retval += " --useLilo"
+        if len(self.driveorder) > 0:
+            retval += " --driveorder=\"%s\"" % ",".join(self.driveorder)
+
+        return retval
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.location != "":
+            retval += "# System bootloader configuration\nbootloader"
+            retval += self._getArgsAsStr() + "\n"
+
+        return retval
+
+    def _getParser(self):
+        def driveorder_cb (option, opt_str, value, parser):
+            for d in value.split(','):
+                parser.values.ensure_value(option.dest, []).append(d)
+
+        op = KSOptionParser()
+        op.add_option("--append", dest="appendLine")
+        op.add_option("--linear", dest="linear", action="store_true",
+                      default=True)
+        op.add_option("--nolinear", dest="linear", action="store_false")
+        op.add_option("--location", dest="location", type="choice",
+                      default="mbr",
+                      choices=["mbr", "partition", "none", "boot"])
+        op.add_option("--lba32", dest="forceLBA", action="store_true",
+                      default=False)
+        op.add_option("--password", dest="password", default="")
+        op.add_option("--md5pass", dest="md5pass", default="")
+        op.add_option("--upgrade", dest="upgrade", action="store_true",
+                      default=False)
+        op.add_option("--useLilo", dest="useLilo", action="store_true",
+                      default=False)
+        op.add_option("--driveorder", dest="driveorder", action="callback",
+                      callback=driveorder_cb, nargs=1, type="string")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+
+        if self.currentCmd == "lilo":
+            self.useLilo = True
+
+        return self
+
+class FC4_Bootloader(FC3_Bootloader):
+    removedKeywords = FC3_Bootloader.removedKeywords + ["linear", "useLilo"]
+    removedAttrs = FC3_Bootloader.removedAttrs + ["linear", "useLilo"]
+
+    def __init__(self, writePriority=10, *args, **kwargs):
+        FC3_Bootloader.__init__(self, writePriority, *args, **kwargs)
+
+    def _getArgsAsStr(self):
+        retval = ""
+        if self.appendLine != "":
+            retval += " --append=\"%s\"" % self.appendLine
+        if self.location:
+            retval += " --location=%s" % self.location
+        if hasattr(self, "forceLBA") and self.forceLBA:
+            retval += " --lba32"
+        if self.password != "":
+            retval += " --password=\"%s\"" % self.password
+        if self.md5pass != "":
+            retval += " --md5pass=\"%s\"" % self.md5pass
+        if self.upgrade:
+            retval += " --upgrade"
+        if len(self.driveorder) > 0:
+            retval += " --driveorder=\"%s\"" % ",".join(self.driveorder)
+        return retval
+
+    def _getParser(self):
+        op = FC3_Bootloader._getParser(self)
+        op.remove_option("--linear")
+        op.remove_option("--nolinear")
+        op.remove_option("--useLilo")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        return self
+
+class F8_Bootloader(FC4_Bootloader):
+    removedKeywords = FC4_Bootloader.removedKeywords
+    removedAttrs = FC4_Bootloader.removedAttrs
+
+    def __init__(self, writePriority=10, *args, **kwargs):
+        FC4_Bootloader.__init__(self, writePriority, *args, **kwargs)
+
+        self.timeout = kwargs.get("timeout", None)
+        self.default = kwargs.get("default", "")
+
+    def _getArgsAsStr(self):
+        ret = FC4_Bootloader._getArgsAsStr(self)
+
+        if self.timeout is not None:
+            ret += " --timeout=%d" %(self.timeout,)
+        if self.default:
+            ret += " --default=%s" %(self.default,)
+
+        return ret
+
+    def _getParser(self):
+        op = FC4_Bootloader._getParser(self)
+        op.add_option("--timeout", dest="timeout", type="int")
+        op.add_option("--default", dest="default")
+        return op
+
+class F12_Bootloader(F8_Bootloader):
+    removedKeywords = F8_Bootloader.removedKeywords
+    removedAttrs = F8_Bootloader.removedAttrs
+
+    def _getParser(self):
+        op = F8_Bootloader._getParser(self)
+        op.add_option("--lba32", dest="forceLBA", deprecated=1, action="store_true")
+        return op
+
+class F14_Bootloader(F12_Bootloader):
+    removedKeywords = F12_Bootloader.removedKeywords + ["forceLBA"]
+    removedAttrs = F12_Bootloader.removedKeywords + ["forceLBA"]
+
+    def _getParser(self):
+        op = F12_Bootloader._getParser(self)
+        op.remove_option("--lba32")
+        return op
+
+class F15_Bootloader(F14_Bootloader):
+    removedKeywords = F14_Bootloader.removedKeywords
+    removedAttrs = F14_Bootloader.removedAttrs
+
+    def __init__(self, writePriority=10, *args, **kwargs):
+        F14_Bootloader.__init__(self, writePriority, *args, **kwargs)
+
+        self.isCrypted = kwargs.get("isCrypted", False)
+
+    def _getArgsAsStr(self):
+        ret = F14_Bootloader._getArgsAsStr(self)
+
+        if self.isCrypted:
+            ret += " --iscrypted"
+
+        return ret
+
+    def _getParser(self):
+        def password_cb(option, opt_str, value, parser):
+            parser.values.isCrypted = True
+            parser.values.password = value
+
+        op = F14_Bootloader._getParser(self)
+        op.add_option("--iscrypted", dest="isCrypted", action="store_true", default=False)
+        op.add_option("--md5pass", action="callback", callback=password_cb, nargs=1, type="string")
+        return op
+
+class RHEL5_Bootloader(FC4_Bootloader):
+    removedKeywords = FC4_Bootloader.removedKeywords
+    removedAttrs = FC4_Bootloader.removedAttrs
+
+    def __init__(self, writePriority=10, *args, **kwargs):
+        FC4_Bootloader.__init__(self, writePriority, *args, **kwargs)
+
+        self.hvArgs = kwargs.get("hvArgs", "")
+
+    def _getArgsAsStr(self):
+        ret = FC4_Bootloader._getArgsAsStr(self)
+
+        if self.hvArgs:
+            ret += " --hvargs=\"%s\"" %(self.hvArgs,)
+
+        return ret
+
+    def _getParser(self):
+        op = FC4_Bootloader._getParser(self)
+        op.add_option("--hvargs", dest="hvArgs", type="string")
+        return op
+
+class RHEL6_Bootloader(F12_Bootloader):
+    removedKeywords = F12_Bootloader.removedKeywords
+    removedAttrs = F12_Bootloader.removedAttrs
+
+    def __init__(self, writePriority=10, *args, **kwargs):
+        F12_Bootloader.__init__(self, writePriority, *args, **kwargs)
+
+        self.isCrypted = kwargs.get("isCrypted", False)
+
+    def _getArgsAsStr(self):
+        ret = F12_Bootloader._getArgsAsStr(self)
+
+        if self.isCrypted:
+            ret += " --iscrypted"
+
+        return ret
+
+    def _getParser(self):
+        def password_cb(option, opt_str, value, parser):
+            parser.values.isCrypted = True
+            parser.values.password = value
+
+        op = F12_Bootloader._getParser(self)
+        op.add_option("--iscrypted", dest="isCrypted", action="store_true", default=False)
+        op.add_option("--md5pass", action="callback", callback=password_cb, nargs=1, type="string")
+        return op
diff --git a/mic/pykickstart/commands/clearpart.py b/mic/pykickstart/commands/clearpart.py
new file mode 100644 (file)
index 0000000..a8089fc
--- /dev/null
@@ -0,0 +1,86 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+class FC3_ClearPart(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=120, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.drives = kwargs.get("drives", [])
+        self.initAll = kwargs.get("initAll", False)
+        self.type = kwargs.get("type", None)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.type is None:
+            return retval
+
+        if self.type == CLEARPART_TYPE_NONE:
+            clearstr = "--none"
+        elif self.type == CLEARPART_TYPE_LINUX:
+            clearstr = "--linux"
+        elif self.type == CLEARPART_TYPE_ALL:
+            clearstr = "--all"
+        else:
+            clearstr = ""
+
+        if self.initAll:
+            initstr = "--initlabel"
+        else:
+            initstr = ""
+
+        if len(self.drives) > 0:
+            drivestr = "--drives=" + ",".join(self.drives)
+        else:
+            drivestr = ""
+
+        retval += "# Partition clearing information\nclearpart %s %s %s\n" % (clearstr, initstr, drivestr)
+        return retval
+
+    def _getParser(self):
+        def drive_cb (option, opt_str, value, parser):
+            for d in value.split(','):
+                parser.values.ensure_value(option.dest, []).append(d)
+
+        op = KSOptionParser()
+        op.add_option("--all", dest="type", action="store_const",
+                      const=CLEARPART_TYPE_ALL)
+        op.add_option("--drives", dest="drives", action="callback",
+                      callback=drive_cb, nargs=1, type="string")
+        op.add_option("--initlabel", dest="initAll", action="store_true",
+                      default=False)
+        op.add_option("--linux", dest="type", action="store_const",
+                      const=CLEARPART_TYPE_LINUX)
+        op.add_option("--none", dest="type", action="store_const",
+                      const=CLEARPART_TYPE_NONE)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        return self
diff --git a/mic/pykickstart/commands/device.py b/mic/pykickstart/commands/device.py
new file mode 100644 (file)
index 0000000..321410e
--- /dev/null
@@ -0,0 +1,125 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class F8_DeviceData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.moduleName = kwargs.get("moduleName", "")
+        self.moduleOpts = kwargs.get("moduleOpts", "")
+
+    def __eq__(self, y):
+        return self.moduleName == y.moduleName
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+
+        if self.moduleName != "":
+            retval += "device %s" % self.moduleName
+
+            if self.moduleOpts != "":
+                retval += " --opts=\"%s\"" % self.moduleOpts
+
+        return retval + "\n"
+
+class FC3_Device(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.type = kwargs.get("type", "")
+        self.moduleName = kwargs.get("moduleName", "")
+        self.moduleOpts = kwargs.get("moduleOpts", "")
+
+    def __eq__(self, y):
+        return self.moduleName == y.moduleName
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.moduleName != "":
+            retval += "device %s %s" % (self.type, self.moduleName)
+
+            if self.moduleOpts != "":
+                retval += " --opts=\"%s\"" % self.moduleOpts
+
+        return retval + "\n"
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--opts", dest="moduleOpts", default="")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) != 2:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("device command requires two arguments: module type and name"))
+
+        self.moduleOpts = opts.moduleOpts
+        self.type = extra[0]
+        self.moduleName = extra[1]
+        return self
+
+class F8_Device(FC3_Device):
+    removedKeywords = FC3_Device.removedKeywords
+    removedAttrs = FC3_Device.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_Device.__init__(self, writePriority, *args, **kwargs)
+        self.deviceList = kwargs.get("deviceList", [])
+
+    def __str__(self):
+        retval = ""
+        for device in self.deviceList:
+            retval += device.__str__()
+
+        return retval
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("%s command requires a single argument: %s") % ("device", "module name"))
+
+        dd = F8_DeviceData()
+        self._setToObj(self.op, opts, dd)
+        dd.lineno = self.lineno
+        dd.moduleName = extra[0]
+
+        # Check for duplicates in the data list.
+        if dd in self.dataList():
+            warnings.warn(_("A module with the name %s has already been defined.") % dd.moduleName)
+
+        return dd
+
+    def dataList(self):
+        return self.deviceList
diff --git a/mic/pykickstart/commands/deviceprobe.py b/mic/pykickstart/commands/deviceprobe.py
new file mode 100644 (file)
index 0000000..9f462fd
--- /dev/null
@@ -0,0 +1,40 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+
+class FC3_DeviceProbe(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.deviceprobe = kwargs.get("deviceprobe", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.deviceprobe != "":
+            retval += "deviceprobe %s\n" % self.deviceprobe
+
+        return retval
+
+    def parse(self, args):
+        self.deviceprobe = " ".join(args)
+        return self
diff --git a/mic/pykickstart/commands/displaymode.py b/mic/pykickstart/commands/displaymode.py
new file mode 100644 (file)
index 0000000..6a12d58
--- /dev/null
@@ -0,0 +1,68 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_DisplayMode(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.displayMode = kwargs.get("displayMode", None)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.displayMode is None:
+            return retval
+
+        if self.displayMode == DISPLAY_MODE_CMDLINE:
+            retval += "cmdline\n"
+        elif self.displayMode == DISPLAY_MODE_GRAPHICAL:
+            retval += "# Use graphical install\ngraphical\n"
+        elif self.displayMode == DISPLAY_MODE_TEXT:
+            retval += "# Use text mode install\ntext\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 0:
+            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % self.currentCmd)
+
+        if self.currentCmd == "cmdline":
+            self.displayMode = DISPLAY_MODE_CMDLINE
+        elif self.currentCmd == "graphical":
+            self.displayMode = DISPLAY_MODE_GRAPHICAL
+        elif self.currentCmd == "text":
+            self.displayMode = DISPLAY_MODE_TEXT
+
+        return self
diff --git a/mic/pykickstart/commands/dmraid.py b/mic/pykickstart/commands/dmraid.py
new file mode 100644 (file)
index 0000000..993575a
--- /dev/null
@@ -0,0 +1,91 @@
+#
+# Chris Lumens <clumens@redhat.com>
+# Peter Jones <pjones@redhat.com>
+#
+# Copyright 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_DmRaidData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+
+        self.name = kwargs.get("name", "")
+        self.devices = kwargs.get("devices", [])
+        self.dmset = kwargs.get("dmset", None)
+
+    def __eq__(self, y):
+        return self.name == y.name and self.devices == y.devices
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "dmraid --name=%s" % self.name
+
+        for dev in self.devices:
+            retval += " --dev=\"%s\"" % dev
+
+        return retval + "\n"
+
+class FC6_DmRaid(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=60, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.dmraids = kwargs.get("dmraids", [])
+
+    def __str__(self):
+        retval = ""
+        for dm in self.dmraids:
+            retval += dm.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--name", dest="name", action="store", type="string",
+                      required=1)
+        op.add_option("--dev", dest="devices", action="append", type="string",
+                      required=1)
+        return op
+
+    def parse(self, args):
+        dm = FC6_DmRaidData()
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        dm.name = dm.name.split('/')[-1]
+        self._setToObj(self.op, opts, dm)
+        dm.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if dm in self.dataList():
+            warnings.warn(_("A DM RAID device with the name %s and devices %s has already been defined.") % (dm.name, dm.devices))
+
+        return dm
+
+    def dataList(self):
+        return self.dmraids
diff --git a/mic/pykickstart/commands/driverdisk.py b/mic/pykickstart/commands/driverdisk.py
new file mode 100644 (file)
index 0000000..82a58c0
--- /dev/null
@@ -0,0 +1,184 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_DriverDiskData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+
+        self.partition = kwargs.get("partition", "")
+        self.source = kwargs.get("source", "")
+        self.type = kwargs.get("type", "")
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.partition:
+            retval += "%s" % self.partition
+
+            if hasattr(self, "type") and self.type:
+                retval += " --type=%s" % self.type
+        elif self.source:
+            retval += "--source=%s" % self.source
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "driverdisk %s\n" % self._getArgsAsStr()
+        return retval
+
+class FC4_DriverDiskData(FC3_DriverDiskData):
+    removedKeywords = FC3_DriverDiskData.removedKeywords
+    removedAttrs = FC3_DriverDiskData.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_DriverDiskData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.biospart = kwargs.get("biospart", "")
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.partition:
+            retval += "%s" % self.partition
+
+            if hasattr(self, "type") and self.type:
+                retval += " --type=%s" % self.type
+        elif self.source:
+            retval += "--source=%s" % self.source
+        elif self.biospart:
+            retval += "--biospart=%s" % self.biospart
+
+        return retval
+
+class F12_DriverDiskData(FC4_DriverDiskData):
+    removedKeywords = FC4_DriverDiskData.removedKeywords + ["type"]
+    removedAttrs = FC4_DriverDiskData.removedAttrs + ["type"]
+
+    def __init__(self, *args, **kwargs):
+        FC4_DriverDiskData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+F14_DriverDiskData = F12_DriverDiskData
+
+class FC3_DriverDisk(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.driverdiskList = kwargs.get("driverdiskList", [])
+
+    def __str__(self):
+        retval = ""
+        for dd in self.driverdiskList:
+            retval += dd.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--source")
+        op.add_option("--type")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one partition may be specified for driverdisk command."))
+
+        if len(extra) == 1 and opts.source:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --source and partition may be specified for driverdisk command."))
+
+        if not extra and not opts.source:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --source or partition must be specified for driverdisk command."))
+
+        ddd = self.handler.DriverDiskData()
+        self._setToObj(self.op, opts, ddd)
+        ddd.lineno = self.lineno
+        if len(extra) == 1:
+            ddd.partition = extra[0]
+
+        return ddd
+
+    def dataList(self):
+        return self.driverdiskList
+
+class FC4_DriverDisk(FC3_DriverDisk):
+    removedKeywords = FC3_DriverDisk.removedKeywords
+    removedAttrs = FC3_DriverDisk.removedKeywords
+
+    def _getParser(self):
+        op = FC3_DriverDisk._getParser(self)
+        op.add_option("--biospart")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one partition may be specified for driverdisk command."))
+
+        if len(extra) == 1 and opts.source:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --source and partition may be specified for driverdisk command."))
+        elif len(extra) == 1 and opts.biospart:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --biospart and partition may be specified for driverdisk command."))
+        elif opts.source and opts.biospart:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --biospart and --source may be specified for driverdisk command."))
+
+        if not extra and not opts.source and not opts.biospart:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --source, --biospart, or partition must be specified for driverdisk command."))
+
+        ddd = self.handler.DriverDiskData()
+        self._setToObj(self.op, opts, ddd)
+        ddd.lineno = self.lineno
+        if len(extra) == 1:
+            ddd.partition = extra[0]
+
+        return ddd
+
+class F12_DriverDisk(FC4_DriverDisk):
+    removedKeywords = FC4_DriverDisk.removedKeywords
+    removedAttrs = FC4_DriverDisk.removedKeywords
+
+    def _getParser(self):
+        op = FC4_DriverDisk._getParser(self)
+        op.add_option("--type", deprecated=1)
+        return op
+
+class F14_DriverDisk(F12_DriverDisk):
+    removedKeywords = F12_DriverDisk.removedKeywords
+    removedAttrs = F12_DriverDisk.removedKeywords
+
+    def _getParser(self):
+        op = F12_DriverDisk._getParser(self)
+        op.remove_option("--type")
+        return op
diff --git a/mic/pykickstart/commands/fcoe.py b/mic/pykickstart/commands/fcoe.py
new file mode 100644 (file)
index 0000000..3320849
--- /dev/null
@@ -0,0 +1,114 @@
+#
+# Hans de Goede <hdegoede@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class F12_FcoeData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.nic = kwargs.get("nic", None)
+
+    def __eq__(self, y):
+        return self.nic == y.nic
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.nic:
+            retval += " --nic=%s" % self.nic
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "fcoe%s\n" % self._getArgsAsStr()
+        return retval
+
+class F13_FcoeData(F12_FcoeData):
+    removedKeywords = F12_FcoeData.removedKeywords
+    removedAttrs = F12_FcoeData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F12_FcoeData.__init__(self, *args, **kwargs)
+        self.dcb = kwargs.get("dcb", False)
+
+    def _getArgsAsStr(self):
+        retval = F12_FcoeData._getArgsAsStr(self)
+
+        if self.dcb:
+            retval += " --dcb"
+
+        return retval
+
+class F12_Fcoe(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=71, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.fcoe = kwargs.get("fcoe", [])
+
+    def __str__(self):
+        retval = ""
+        for fcoe in self.fcoe:
+            retval += fcoe.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--nic", dest="nic", required=1)
+        return op
+
+    def parse(self, args):
+        zd = self.handler.FcoeData()
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) > 0:
+            mapping = {"command": "fcoe", "options": extra}
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
+
+        self._setToObj(self.op, opts, zd)
+        zd.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if zd in self.dataList():
+            warnings.warn(_("A FCOE device with the name %s has already been defined.") % zd.nic)
+
+        return zd
+
+    def dataList(self):
+        return self.fcoe
+
+class F13_Fcoe(F12_Fcoe):
+    removedKeywords = F12_Fcoe.removedKeywords
+    removedAttrs = F12_Fcoe.removedAttrs
+
+    def _getParser(self):
+        op = F12_Fcoe._getParser(self)
+        op.add_option("--dcb", dest="dcb", action="store_true", default=False)
+        return op
diff --git a/mic/pykickstart/commands/firewall.py b/mic/pykickstart/commands/firewall.py
new file mode 100644 (file)
index 0000000..24a01bd
--- /dev/null
@@ -0,0 +1,193 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Firewall(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.enabled = kwargs.get("enabled", None)
+        self.ports = kwargs.get("ports", [])
+        self.trusts = kwargs.get("trusts", [])
+
+    def __str__(self):
+        extra = []
+        filteredPorts = []
+
+        retval = KickstartCommand.__str__(self)
+
+        if self.enabled is None:
+            return retval
+
+        if self.enabled:
+            # It's possible we have words in the ports list instead of
+            # port:proto (s-c-kickstart may do this).  So, filter those
+            # out into their own list leaving what we expect.
+            for port in self.ports:
+                if port == "ssh":
+                    extra.append(" --ssh")
+                elif port == "telnet":
+                    extra.append(" --telnet")
+                elif port == "smtp":
+                    extra.append(" --smtp")
+                elif port == "http":
+                    extra.append(" --http")
+                elif port == "ftp":
+                    extra.append(" --ftp")
+                else:
+                    filteredPorts.append(port)
+
+            # All the port:proto strings go into a comma-separated list.
+            portstr = ",".join(filteredPorts)
+            if len(portstr) > 0:
+                portstr = " --port=" + portstr
+            else:
+                portstr = ""
+
+            extrastr = "".join(extra)
+            truststr = ",".join(self.trusts)
+
+            if len(truststr) > 0:
+                truststr = " --trust=" + truststr
+
+            # The output port list consists only of port:proto for
+            # everything that we don't recognize, and special options for
+            # those that we do.
+            retval += "# Firewall configuration\nfirewall --enabled%s%s%s\n" % (extrastr, portstr, truststr)
+        else:
+            retval += "# Firewall configuration\nfirewall --disabled\n"
+
+        return retval
+
+    def _getParser(self):
+        def firewall_port_cb (option, opt_str, value, parser):
+            for p in value.split(","):
+                p = p.strip()
+                if p.find(":") == -1:
+                    p = "%s:tcp" % p
+                parser.values.ensure_value(option.dest, []).append(p)
+
+        op = KSOptionParser(mapping={"ssh":["22:tcp"], "telnet":["23:tcp"],
+                             "smtp":["25:tcp"], "http":["80:tcp", "443:tcp"],
+                             "ftp":["21:tcp"]})
+
+        op.add_option("--disable", "--disabled", dest="enabled",
+                      action="store_false")
+        op.add_option("--enable", "--enabled", dest="enabled",
+                      action="store_true", default=True)
+        op.add_option("--ftp", "--http", "--smtp", "--ssh", "--telnet",
+                      dest="ports", action="map_extend")
+        op.add_option("--high", deprecated=1)
+        op.add_option("--medium", deprecated=1)
+        op.add_option("--port", dest="ports", action="callback",
+                      callback=firewall_port_cb, nargs=1, type="string")
+        op.add_option("--trust", dest="trusts", action="append")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        
+        if len(extra) != 0:
+            mapping = {"command": "firewall", "options": extra}
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
+            
+        self._setToSelf(self.op, opts)
+        return self
+
+class F9_Firewall(FC3_Firewall):
+    removedKeywords = FC3_Firewall.removedKeywords
+    removedAttrs = FC3_Firewall.removedAttrs
+
+    def _getParser(self):
+        op = FC3_Firewall._getParser(self)
+        op.remove_option("--high")
+        op.remove_option("--medium")
+        return op
+
+class F10_Firewall(F9_Firewall):
+    removedKeywords = F9_Firewall.removedKeywords
+    removedAttrs = F9_Firewall.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        F9_Firewall.__init__(self, writePriority, *args, **kwargs)
+        self.services = kwargs.get("services", [])
+
+    def __str__(self):
+        if self.enabled is None:
+            return ""
+
+        retval = F9_Firewall.__str__(self)
+        if self.enabled:
+            retval = retval.strip()
+
+            svcstr = ",".join(self.services)
+            if len(svcstr) > 0:
+                svcstr = " --service=" + svcstr
+            else:
+                svcstr = ""
+
+            return retval + "%s\n" % svcstr
+        else:
+            return retval
+
+    def _getParser(self):
+        def service_cb (option, opt_str, value, parser):
+            # python2.4 does not support action="append_const" that we were
+            # using for these options.  Instead, we have to fake it by
+            # appending whatever the option string is to the service list.
+            if not value:
+                parser.values.ensure_value(option.dest, []).append(opt_str[2:])
+                return
+
+            for p in value.split(","):
+                p = p.strip()
+                parser.values.ensure_value(option.dest, []).append(p)
+
+        op = F9_Firewall._getParser(self)
+        op.add_option("--service", dest="services", action="callback",
+                      callback=service_cb, nargs=1, type="string")
+        op.add_option("--ftp", dest="services", action="callback",
+                      callback=service_cb)
+        op.add_option("--http", dest="services", action="callback",
+                      callback=service_cb)
+        op.add_option("--smtp", dest="services", action="callback",
+                      callback=service_cb)
+        op.add_option("--ssh", dest="services", action="callback",
+                      callback=service_cb)
+        op.add_option("--telnet", deprecated=1)
+        return op
+
+class F14_Firewall(F10_Firewall):
+    removedKeywords = F10_Firewall.removedKeywords + ["telnet"]
+    removedAttrs = F10_Firewall.removedAttrs + ["telnet"]
+
+    def _getParser(self):
+        op = F10_Firewall._getParser(self)
+        op.remove_option("--telnet")
+        return op
diff --git a/mic/pykickstart/commands/firstboot.py b/mic/pykickstart/commands/firstboot.py
new file mode 100644 (file)
index 0000000..05c0ac1
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.options import *
+
+class FC3_Firstboot(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.firstboot = kwargs.get("firstboot", None)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.firstboot is None:
+            return retval
+
+        if self.firstboot == FIRSTBOOT_SKIP:
+            retval += "firstboot --disable\n"
+        elif self.firstboot == FIRSTBOOT_DEFAULT:
+            retval += "# Run the Setup Agent on first boot\nfirstboot --enable\n"
+        elif self.firstboot == FIRSTBOOT_RECONFIG:
+            retval += "# Run the Setup Agent on first boot\nfirstboot --reconfig\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--disable", "--disabled", dest="firstboot",
+                      action="store_const", const=FIRSTBOOT_SKIP)
+        op.add_option("--enable", "--enabled", dest="firstboot",
+                      action="store_const", const=FIRSTBOOT_DEFAULT)
+        op.add_option("--reconfig", dest="firstboot", action="store_const",
+                      const=FIRSTBOOT_RECONFIG)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self.firstboot = opts.firstboot
+        return self
diff --git a/mic/pykickstart/commands/group.py b/mic/pykickstart/commands/group.py
new file mode 100644 (file)
index 0000000..80ba5bd
--- /dev/null
@@ -0,0 +1,88 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class F12_GroupData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.name = kwargs.get("name", "")
+        self.gid = kwargs.get("gid", None)
+
+    def __eq__(self, y):
+        return self.name == y.name
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "group"
+
+        if self.name:
+            retval += " --name=%s" % self.name
+        if self.gid:
+            retval += " --gid=%s" % self.gid
+
+        return retval + "\n"
+
+class F12_Group(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.groupList = kwargs.get("groupList", [])
+
+    def __str__(self):
+        retval = ""
+        for user in self.groupList:
+            retval += user.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--name", required=1)
+        op.add_option("--gid", type="int")
+        return op
+
+    def parse(self, args):
+        gd = self.handler.GroupData()
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToObj(self.op, opts, gd)
+        gd.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if gd in self.dataList():
+            warnings.warn(_("A group with the name %s has already been defined.") % gd.name)
+
+        return gd
+
+    def dataList(self):
+        return self.groupList
diff --git a/mic/pykickstart/commands/ignoredisk.py b/mic/pykickstart/commands/ignoredisk.py
new file mode 100644 (file)
index 0000000..676d080
--- /dev/null
@@ -0,0 +1,139 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_IgnoreDisk(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.ignoredisk = kwargs.get("ignoredisk", [])
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if len(self.ignoredisk) > 0:
+            retval += "ignoredisk --drives=%s\n" % ",".join(self.ignoredisk)
+
+        return retval
+
+    def _getParser(self):
+        def drive_cb (option, opt_str, value, parser):
+            for d in value.split(','):
+                parser.values.ensure_value(option.dest, []).append(d)
+
+        op = KSOptionParser()
+        op.add_option("--drives", dest="ignoredisk", action="callback",
+                      callback=drive_cb, nargs=1, type="string", required=1)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        return self
+
+class F8_IgnoreDisk(FC3_IgnoreDisk):
+    removedKeywords = FC3_IgnoreDisk.removedKeywords
+    removedAttrs = FC3_IgnoreDisk.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_IgnoreDisk.__init__(self, writePriority, *args, **kwargs)
+
+        self.onlyuse = kwargs.get("onlyuse", [])
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if len(self.ignoredisk) > 0:
+            retval += "ignoredisk --drives=%s\n" % ",".join(self.ignoredisk)
+        elif len(self.onlyuse) > 0:
+            retval += "ignoredisk --only-use=%s\n" % ",".join(self.onlyuse)
+
+        return retval
+
+    def parse(self, args, errorCheck=True):
+        retval = FC3_IgnoreDisk.parse(self, args)
+
+        if errorCheck:
+            if (len(self.ignoredisk) == 0 and len(self.onlyuse) == 0) or (len(self.ignoredisk) > 0 and (len(self.onlyuse) > 0)):
+                raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --drives or --only-use must be specified for ignoredisk command."))
+
+        return retval
+
+    def _getParser(self):
+        def drive_cb (option, opt_str, value, parser):
+            for d in value.split(','):
+                parser.values.ensure_value(option.dest, []).append(d)
+
+        op = FC3_IgnoreDisk._getParser(self)
+        op.add_option("--drives", dest="ignoredisk", action="callback",
+                      callback=drive_cb, nargs=1, type="string")
+        op.add_option("--only-use", dest="onlyuse", action="callback",
+                      callback=drive_cb, nargs=1, type="string")
+        return op
+
+class RHEL6_IgnoreDisk(F8_IgnoreDisk):
+    removedKeywords = F8_IgnoreDisk.removedKeywords
+    removedAttrs = F8_IgnoreDisk.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        F8_IgnoreDisk.__init__(self, writePriority, *args, **kwargs)
+
+        self.interactive = kwargs.get("interactive", False)
+        if self.interactive:
+            self.ignoredisk = []
+
+    def __str__(self):
+        retval = F8_IgnoreDisk.__str__(self)
+
+        if self.interactive:
+            retval = "ignoredisk --interactive\n"
+
+        return retval
+
+    def parse(self, args):
+        retval = F8_IgnoreDisk.parse(self, args, errorCheck=False)
+
+        howmany = 0
+        if len(self.ignoredisk) > 0:
+            howmany += 1
+        if len(self.onlyuse) > 0:
+            howmany += 1
+        if self.interactive:
+            howmany += 1
+        if howmany != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --drives , --only-use , or --interactive must be specified for ignoredisk command."))
+
+        return retval
+
+    def _getParser(self):
+        op = F8_IgnoreDisk._getParser(self)
+        op.add_option("--interactive", dest="interactive", action="store_true",
+                      default=False)
+        return op
+
+F14_IgnoreDisk = RHEL6_IgnoreDisk
diff --git a/mic/pykickstart/commands/interactive.py b/mic/pykickstart/commands/interactive.py
new file mode 100644 (file)
index 0000000..fa3dc02
--- /dev/null
@@ -0,0 +1,58 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Interactive(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.interactive = kwargs.get("interactive", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.interactive:
+            retval += "# Use interactive kickstart installation method\ninteractive\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "interactive")
+
+        self.interactive = True
+        return self
+
+class F14_Interactive(DeprecatedCommand):
+    def __init__(self):
+        DeprecatedCommand.__init__(self)
diff --git a/mic/pykickstart/commands/iscsi.py b/mic/pykickstart/commands/iscsi.py
new file mode 100644 (file)
index 0000000..da5a544
--- /dev/null
@@ -0,0 +1,133 @@
+#
+# Chris Lumens <clumens@redhat.com>
+# Peter Jones <pjones@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc.
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_IscsiData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.ipaddr = kwargs.get("ipaddr", "")
+        self.port = kwargs.get("port", "3260")
+        self.target = kwargs.get("target", "")
+        self.user = kwargs.get("user", None)
+        self.password = kwargs.get("password", None)
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.target != "":
+            retval += " --target=%s" % self.target
+        if self.ipaddr != "":
+            retval += " --ipaddr=%s" % self.ipaddr
+        if self.port != "3260":
+            retval += " --port=%s" % self.port
+        if self.user is not None:
+            retval += " --user=%s" % self.user
+        if self.password is not None:
+            retval += " --password=%s" % self.password
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "iscsi%s\n" % self._getArgsAsStr()
+        return retval
+
+class F10_IscsiData(FC6_IscsiData):
+    removedKeywords = FC6_IscsiData.removedKeywords
+    removedAttrs = FC6_IscsiData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC6_IscsiData.__init__(self, *args, **kwargs)
+        self.user_in = kwargs.get("user_in", None)
+        self.password_in = kwargs.get("password_in", None)
+
+    def _getArgsAsStr(self):
+        retval = FC6_IscsiData._getArgsAsStr(self)
+
+        if self.user_in is not None:
+            retval += " --reverse-user=%s" % self.user_in
+        if self.password_in is not None:
+            retval += " --reverse-password=%s" % self.password_in
+
+        return retval
+
+class FC6_Iscsi(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=71, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.iscsi = kwargs.get("iscsi", [])
+
+    def __str__(self):
+        retval = ""
+        for iscsi in self.iscsi:
+            retval += iscsi.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--target", dest="target", action="store", type="string")
+        op.add_option("--ipaddr", dest="ipaddr", action="store", type="string",
+                      required=1)
+        op.add_option("--port", dest="port", action="store", type="string")
+        op.add_option("--user", dest="user", action="store", type="string")
+        op.add_option("--password", dest="password", action="store",
+                      type="string")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) != 0:
+            mapping = {"command": "iscsi", "options": extra}
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
+
+        dd = self.handler.IscsiData()
+        self._setToObj(self.op, opts, dd)
+        dd.lineno = self.lineno
+        return dd
+
+    def dataList(self):
+        return self.iscsi
+
+class F10_Iscsi(FC6_Iscsi):
+    removedKeywords = FC6_Iscsi.removedKeywords
+    removedAttrs = FC6_Iscsi.removedAttrs
+
+    def _getParser(self):
+        op = FC6_Iscsi._getParser(self)
+        op.add_option("--reverse-user", dest="user_in", action="store",
+                      type="string")
+        op.add_option("--reverse-password", dest="password_in", action="store",
+                      type="string")
+        return op
diff --git a/mic/pykickstart/commands/iscsiname.py b/mic/pykickstart/commands/iscsiname.py
new file mode 100644 (file)
index 0000000..a87d063
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Chris Lumens <clumens@redhat.com>
+# Peter Jones <pjones@redhat.com>
+#
+# Copyright 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_IscsiName(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=70, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.iscsiname = kwargs.get("iscsiname", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.iscsiname != "":
+            retval += "iscsiname %s\n" % self.iscsiname
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "iscsiname")
+        self.iscsiname = extra[0]
+        return self
diff --git a/mic/pykickstart/commands/key.py b/mic/pykickstart/commands/key.py
new file mode 100644 (file)
index 0000000..c20c423
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class RHEL5_Key(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.key = kwargs.get("key", "")
+        self.skip = kwargs.get("skip", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.key == KS_INSTKEY_SKIP:
+            retval += "key --skip\n"
+        elif self.key != "":
+            retval += "key %s\n" % self.key
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--skip", action="store_true", default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+
+        if self.skip:
+            self.key = KS_INSTKEY_SKIP
+        elif len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "key")
+        else:
+            self.key = extra[0]
+
+        return self
diff --git a/mic/pykickstart/commands/keyboard.py b/mic/pykickstart/commands/keyboard.py
new file mode 100644 (file)
index 0000000..babc2ac
--- /dev/null
@@ -0,0 +1,55 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Keyboard(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.keyboard = kwargs.get("keyboard", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.keyboard != "":
+            retval += "# System keyboard\nkeyboard %s\n" % self.keyboard
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno) 
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "keyboard")
+
+        self.keyboard = extra[0]
+        return self
diff --git a/mic/pykickstart/commands/lang.py b/mic/pykickstart/commands/lang.py
new file mode 100644 (file)
index 0000000..cf5e46c
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Lang(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.lang = kwargs.get("lang", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.lang != "":
+            retval += "# System language\nlang %s\n" % self.lang
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "lang")
+
+        self.lang = extra[0]
+        return self
+
+    def apply(self, instroot="/"):
+        if self.lang == "": return
+        f = open(instroot + "/etc/sysconfig/i18n", "w+")
+        f.write("LANG=\"%s\"\n" %(self.lang,))
+        f.close()
diff --git a/mic/pykickstart/commands/langsupport.py b/mic/pykickstart/commands/langsupport.py
new file mode 100644 (file)
index 0000000..73a9e53
--- /dev/null
@@ -0,0 +1,58 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+class FC3_LangSupport(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.deflang = kwargs.get("deflang", "")
+        self.supported = kwargs.get("supported", [])
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.deflang:
+            retval += "langsupport --default=%s" % self.deflang
+
+            if self.supported:
+                retval += " %s" % " ".join(self.supported)
+
+        return retval + "\n"
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--default", dest="deflang", default="en_US.UTF-8")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        self.supported = extra
+        return self
+
+class FC5_LangSupport(DeprecatedCommand):
+    def __init__(self):
+        DeprecatedCommand.__init__(self)
diff --git a/mic/pykickstart/commands/lilocheck.py b/mic/pykickstart/commands/lilocheck.py
new file mode 100644 (file)
index 0000000..92b3f93
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_LiloCheck(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.check = kwargs.get("check", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.check:
+            retval += "lilocheck\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "lilocheck")
+
+        self.check = True
+        return self
diff --git a/mic/pykickstart/commands/logging.py b/mic/pykickstart/commands/logging.py
new file mode 100644 (file)
index 0000000..6985619
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007, 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_Logging(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.host = kwargs.get("host", "")
+        self.level = kwargs.get("level", "info")
+        self.port = kwargs.get("port", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+        retval += "# Installation logging level\nlogging --level=%s" % self.level
+
+        if self.host != "":
+            retval += " --host=%s" % self.host
+
+            if self.port != "":
+                retval += " --port=%s" % self.port
+
+        return retval + "\n"
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--host")
+        op.add_option("--level", type="choice", default="info",
+                      choices=["debug", "info", "warning", "error", "critical"])
+        op.add_option("--port")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if opts.port and not opts.host:
+            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("Can't specify --port without --host."))
+
+        self._setToSelf(self.op, opts)
+        return self
diff --git a/mic/pykickstart/commands/logvol.py b/mic/pykickstart/commands/logvol.py
new file mode 100644 (file)
index 0000000..c1b9cc3
--- /dev/null
@@ -0,0 +1,304 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_LogVolData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.fstype = kwargs.get("fstype", "")
+        self.grow = kwargs.get("grow", False)
+        self.maxSizeMB = kwargs.get("maxSizeMB", 0)
+        self.name = kwargs.get("name", "")
+        self.format = kwargs.get("format", True)
+        self.percent = kwargs.get("percent", 0)
+        self.recommended = kwargs.get("recommended", False)
+        self.size = kwargs.get("size", None)
+        self.preexist = kwargs.get("preexist", False)
+        self.vgname = kwargs.get("vgname", "")
+        self.mountpoint = kwargs.get("mountpoint", "")
+
+    def __eq__(self, y):
+        return self.vgname == y.vgname and self.name == y.name
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.fstype != "":
+            retval += " --fstype=\"%s\"" % self.fstype
+        if self.grow:
+            retval += " --grow"
+        if self.maxSizeMB > 0:
+            retval += " --maxsize=%d" % self.maxSizeMB
+        if not self.format:
+            retval += " --noformat"
+        if self.percent > 0:
+            retval += " --percent=%d" % self.percent
+        if self.recommended:
+            retval += " --recommended"
+        if self.size > 0:
+            retval += " --size=%d" % self.size
+        if self.preexist:
+            retval += " --useexisting"
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "logvol %s %s --name=%s --vgname=%s\n" % (self.mountpoint, self._getArgsAsStr(), self.name, self.vgname)
+        return retval
+
+class FC4_LogVolData(FC3_LogVolData):
+    removedKeywords = FC3_LogVolData.removedKeywords
+    removedAttrs = FC3_LogVolData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC3_LogVolData.__init__(self, *args, **kwargs)
+        self.bytesPerInode = kwargs.get("bytesPerInode", 4096)
+        self.fsopts = kwargs.get("fsopts", "")
+
+    def _getArgsAsStr(self):
+        retval = FC3_LogVolData._getArgsAsStr(self)
+
+        if hasattr(self, "bytesPerInode") and self.bytesPerInode != 0:
+            retval += " --bytes-per-inode=%d" % self.bytesPerInode
+        if self.fsopts != "":
+            retval += " --fsoptions=\"%s\"" % self.fsopts
+
+        return retval
+
+class RHEL5_LogVolData(FC4_LogVolData):
+    removedKeywords = FC4_LogVolData.removedKeywords
+    removedAttrs = FC4_LogVolData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC4_LogVolData.__init__(self, *args, **kwargs)
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+    def _getArgsAsStr(self):
+        retval = FC4_LogVolData._getArgsAsStr(self)
+
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\"" % self.passphrase
+
+        return retval
+
+class F9_LogVolData(FC4_LogVolData):
+    removedKeywords = FC4_LogVolData.removedKeywords + ["bytesPerInode"]
+    removedAttrs = FC4_LogVolData.removedAttrs + ["bytesPerInode"]
+
+    def __init__(self, *args, **kwargs):
+        FC4_LogVolData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.fsopts = kwargs.get("fsopts", "")
+        self.fsprofile = kwargs.get("fsprofile", "")
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+    def _getArgsAsStr(self):
+        retval = FC4_LogVolData._getArgsAsStr(self)
+
+        if self.fsprofile != "":
+            retval += " --fsprofile=\"%s\"" % self.fsprofile
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\"" % self.passphrase
+
+        return retval
+
+class F12_LogVolData(F9_LogVolData):
+    removedKeywords = F9_LogVolData.removedKeywords
+    removedAttrs = F9_LogVolData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F9_LogVolData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.escrowcert = kwargs.get("escrowcert", "")
+        self.backuppassphrase = kwargs.get("backuppassphrase", False)
+
+    def _getArgsAsStr(self):
+        retval = F9_LogVolData._getArgsAsStr(self)
+
+        if self.encrypted and self.escrowcert != "":
+            retval += " --escrowcert=\"%s\"" % self.escrowcert
+
+            if self.backuppassphrase:
+                retval += " --backuppassphrase"
+
+        return retval
+
+F14_LogVolData = F12_LogVolData
+
+class F15_LogVolData(F14_LogVolData):
+    removedKeywords = F14_LogVolData.removedKeywords
+    removedAttrs = F14_LogVolData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F14_LogVolData.__init__(self, *args, **kwargs)
+        self.label = kwargs.get("label", "")
+
+    def _getArgsAsStr(self):
+        retval = F14_LogVolData._getArgsAsStr(self)
+
+        if self.label != "":
+            retval += " --label=\"%s\"" % self.label
+
+        return retval
+
+class FC3_LogVol(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=133, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.lvList = kwargs.get("lvList", [])
+
+    def __str__(self):
+        retval = ""
+
+        for part in self.lvList:
+            retval += part.__str__()
+
+        return retval
+
+    def _getParser(self):
+        def lv_cb (option, opt_str, value, parser):
+            parser.values.format = False
+            parser.values.preexist = True
+
+        op = KSOptionParser()
+        op.add_option("--fstype", dest="fstype")
+        op.add_option("--grow", dest="grow", action="store_true",
+                      default=False)
+        op.add_option("--maxsize", dest="maxSizeMB", action="store", type="int",
+                      nargs=1)
+        op.add_option("--name", dest="name", required=1)
+        op.add_option("--noformat", action="callback", callback=lv_cb,
+                      dest="format", default=True, nargs=0)
+        op.add_option("--percent", dest="percent", action="store", type="int",
+                      nargs=1)
+        op.add_option("--recommended", dest="recommended", action="store_true",
+                      default=False)
+        op.add_option("--size", dest="size", action="store", type="int",
+                      nargs=1)
+        op.add_option("--useexisting", dest="preexist", action="store_true",
+                      default=False)
+        op.add_option("--vgname", dest="vgname", required=1)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) == 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Mount point required for %s") % "logvol")
+
+        lvd = self.handler.LogVolData()
+        self._setToObj(self.op, opts, lvd)
+        lvd.lineno = self.lineno
+        lvd.mountpoint=extra[0]
+
+        # Check for duplicates in the data list.
+        if lvd in self.dataList():
+            warnings.warn(_("A logical volume with the name %s has already been defined in volume group %s.") % (lvd.device, lvd.vgname))
+
+        return lvd
+
+    def dataList(self):
+        return self.lvList
+
+class FC4_LogVol(FC3_LogVol):
+    removedKeywords = FC3_LogVol.removedKeywords
+    removedAttrs = FC3_LogVol.removedAttrs
+
+    def _getParser(self):
+        op = FC3_LogVol._getParser(self)
+        op.add_option("--bytes-per-inode", dest="bytesPerInode", action="store",
+                      type="int", nargs=1)
+        op.add_option("--fsoptions", dest="fsopts")
+        return op
+
+class RHEL5_LogVol(FC4_LogVol):
+    removedKeywords = FC4_LogVol.removedKeywords
+    removedAttrs = FC4_LogVol.removedAttrs
+
+    def _getParser(self):
+        op = FC4_LogVol._getParser(self)
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+class F9_LogVol(FC4_LogVol):
+    removedKeywords = FC4_LogVol.removedKeywords
+    removedAttrs = FC4_LogVol.removedAttrs
+
+    def _getParser(self):
+        op = FC4_LogVol._getParser(self)
+        op.add_option("--bytes-per-inode", deprecated=1)
+        op.add_option("--fsprofile", dest="fsprofile", action="store",
+                      type="string", nargs=1)
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+class F12_LogVol(F9_LogVol):
+    removedKeywords = F9_LogVol.removedKeywords
+    removedAttrs = F9_LogVol.removedAttrs
+
+    def _getParser(self):
+        op = F9_LogVol._getParser(self)
+        op.add_option("--escrowcert")
+        op.add_option("--backuppassphrase", action="store_true", default=False)
+        return op
+
+class F14_LogVol(F12_LogVol):
+    removedKeywords = F12_LogVol.removedKeywords
+    removedAttrs = F12_LogVol.removedAttrs
+
+    def _getParser(self):
+        op = F12_LogVol._getParser(self)
+        op.remove_option("--bytes-per-inode")
+        return op
+
+class F15_LogVol(F14_LogVol):
+    removedKeywords = F14_LogVol.removedKeywords
+    removedAttrs = F14_LogVol.removedAttrs
+
+    def _getParser(self):
+        op = F14_LogVol._getParser(self)
+        op.add_option("--label")
+        return op
diff --git a/mic/pykickstart/commands/mediacheck.py b/mic/pykickstart/commands/mediacheck.py
new file mode 100644 (file)
index 0000000..388823a
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC4_MediaCheck(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.mediacheck = kwargs.get("mediacheck", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+        if self.mediacheck:
+            retval += "mediacheck\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "mediacheck")
+
+        self.mediacheck = True
+        return self
diff --git a/mic/pykickstart/commands/method.py b/mic/pykickstart/commands/method.py
new file mode 100644 (file)
index 0000000..e21064a
--- /dev/null
@@ -0,0 +1,186 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007, 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc.
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Method(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.method = kwargs.get("method", "")
+
+        # Set all these attributes so calls to this command's __call__
+        # method can set them.  However we don't want to provide them as
+        # arguments to __init__ because method is special.
+        self.biospart = None
+        self.partition = None
+        self.server = None
+        self.dir = None
+        self.url = None
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.method == "cdrom":
+            retval += "# Use CDROM installation media\ncdrom\n"
+        elif self.method == "harddrive":
+            msg = "# Use hard drive installation media\nharddrive --dir=%s" % self.dir
+
+            if self.biospart is not None:
+                retval += msg + " --biospart=%s\n" % self.biospart
+            else:
+                retval += msg + " --partition=%s\n" % self.partition
+        elif self.method == "nfs":
+            retval += "# Use NFS installation media\nnfs --server=%s --dir=%s\n" % (self.server, self.dir)
+        elif self.method == "url":
+            retval += "# Use network installation\nurl --url=\"%s\"\n" % self.url
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+
+        # method = "cdrom" falls through to the return
+        if self.currentCmd == "harddrive":
+            op.add_option("--biospart", dest="biospart")
+            op.add_option("--partition", dest="partition")
+            op.add_option("--dir", dest="dir", required=1)
+        elif self.currentCmd == "nfs":
+            op.add_option("--server", dest="server", required=1)
+            op.add_option("--dir", dest="dir", required=1)
+        elif self.currentCmd == "url":
+            op.add_option("--url", dest="url", required=1)
+
+        return op
+
+    def parse(self, args):
+        self.method = self.currentCmd
+
+        op = self._getParser()
+        (opts, extra) = op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(op, opts)
+
+        if self.currentCmd == "harddrive":
+            if self.biospart is None and self.partition is None or \
+               self.biospart is not None and self.partition is not None:
+                raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of biospart or partition options must be specified."))
+
+        return self
+
+class FC6_Method(FC3_Method):
+    removedKeywords = FC3_Method.removedKeywords
+    removedAttrs = FC3_Method.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_Method.__init__(self, writePriority, *args, **kwargs)
+
+        # Same reason for this attribute as the comment in FC3_Method.
+        self.opts = None
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.method == "cdrom":
+            retval += "# Use CDROM installation media\ncdrom\n"
+        elif self.method == "harddrive":
+            msg = "# Use hard drive installation media\nharddrive --dir=%s" % self.dir
+
+            if self.biospart is not None:
+                retval += msg + " --biospart=%s\n" % self.biospart
+            else:
+                retval += msg + " --partition=%s\n" % self.partition
+        elif self.method == "nfs":
+            retval += "# Use NFS installation media\nnfs --server=%s --dir=%s" % (self.server, self.dir)
+            if self.opts is not None:
+                retval += " --opts=\"%s\"" % self.opts
+            retval += "\n"
+        elif self.method == "url":
+            retval += "# Use network installation\nurl --url=\"%s\"\n" % self.url
+
+        return retval
+
+    def _getParser(self):
+        op = FC3_Method._getParser(self)
+
+        if self.currentCmd == "nfs":
+            op.add_option("--opts", dest="opts")
+
+        return op
+
+class F13_Method(FC6_Method):
+    removedKeywords = FC6_Method.removedKeywords
+    removedAttrs = FC6_Method.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC6_Method.__init__(self, *args, **kwargs)
+
+        # And same as all the other __init__ methods.
+        self.proxy = ""
+
+    def __str__(self):
+        retval = FC6_Method.__str__(self)
+
+        if self.method == "url" and self.proxy:
+            retval = retval.strip()
+            retval += " --proxy=\"%s\"\n" % self.proxy
+
+        return retval
+
+    def _getParser(self):
+        op = FC6_Method._getParser(self)
+
+        if self.currentCmd == "url":
+            op.add_option("--proxy")
+
+        return op
+
+class F14_Method(F13_Method):
+    removedKeywords = F13_Method.removedKeywords
+    removedAttrs = F13_Method.removedAttrs    
+
+    def __init__(self, *args, **kwargs):
+        F13_Method.__init__(self, *args, **kwargs)
+
+        self.noverifyssl = False
+
+    def __str__(self):
+        retval = F13_Method.__str__(self)
+
+        if self.method == "url" and self.noverifyssl:
+            retval = retval.strip()
+            retval += " --noverifyssl\n"
+
+        return retval
+
+    def _getParser(self):
+        op = F13_Method._getParser(self)
+
+        if self.currentCmd == "url":
+            op.add_option("--noverifyssl", action="store_true", default=False)
+
+        return op
+
+RHEL6_Method = F14_Method
diff --git a/mic/pykickstart/commands/monitor.py b/mic/pykickstart/commands/monitor.py
new file mode 100644 (file)
index 0000000..8c8c2c4
--- /dev/null
@@ -0,0 +1,106 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Monitor(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.hsync = kwargs.get("hsync", "")
+        self.monitor = kwargs.get("monitor", "")
+        self.vsync = kwargs.get("vsync", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+        retval += "monitor"
+
+        if self.hsync != "":
+            retval += " --hsync=%s" % self.hsync
+        if self.monitor != "":
+            retval += " --monitor=\"%s\"" % self.monitor
+        if self.vsync != "":
+            retval += " --vsync=%s" % self.vsync
+
+        if retval != "monitor":
+            return retval + "\n"
+        else:
+            return ""
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--hsync")
+        op.add_option("--monitor")
+        op.add_option("--vsync")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if extra:
+            mapping = {"cmd": "monitor", "options": extra}
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(cmd)s command: %(options)s") % mapping)
+
+        self._setToSelf(self.op, opts)
+        return self
+
+class FC6_Monitor(FC3_Monitor):
+    removedKeywords = FC3_Monitor.removedKeywords
+    removedAttrs = FC3_Monitor.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_Monitor.__init__(self, writePriority, *args, **kwargs)
+        self.probe = kwargs.get("probe", True)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+        retval += "monitor"
+
+        if self.hsync != "":
+            retval += " --hsync=%s" % self.hsync
+        if self.monitor != "":
+            retval += " --monitor=\"%s\"" % self.monitor
+        if not self.probe:
+            retval += " --noprobe"
+        if self.vsync != "":
+            retval += " --vsync=%s" % self.vsync
+
+        if retval != "monitor":
+            return retval + "\n"
+        else:
+            return ""
+
+    def _getParser(self):
+        op = FC3_Monitor._getParser(self)
+        op.add_option("--noprobe", dest="probe", action="store_false",
+                      default=True)
+        return op
+
+class F10_Monitor(DeprecatedCommand):
+    def __init__(self):
+        DeprecatedCommand.__init__(self)
diff --git a/mic/pykickstart/commands/mouse.py b/mic/pykickstart/commands/mouse.py
new file mode 100644 (file)
index 0000000..c643bce
--- /dev/null
@@ -0,0 +1,70 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc.
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class RHEL3_Mouse(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.device = kwargs.get("device", "")
+        self.emulthree = kwargs.get("emulthree", False)
+        self.mouse = kwargs.get("mouse", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        opts = ""
+        if self.device:
+            opts += "--device=%s " % self.device
+        if self.emulthree:
+            opts += "--emulthree "
+
+        if self.mouse:
+            retval += "# System mouse\nmouse %s%s\n" % (opts, self.mouse)
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--device", dest="device", default="")
+        op.add_option("--emulthree", dest="emulthree", default=False, action="store_true")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s requires one argument") % "mouse")
+
+        self.mouse = extra[0]
+        return self
+
+class FC3_Mouse(DeprecatedCommand):
+    def __init__(self):
+        DeprecatedCommand.__init__(self)
diff --git a/mic/pykickstart/commands/multipath.py b/mic/pykickstart/commands/multipath.py
new file mode 100644 (file)
index 0000000..84ba755
--- /dev/null
@@ -0,0 +1,111 @@
+#
+# Chris Lumens <clumens@redhat.com>
+# Peter Jones <pjones@redhat.com>
+#
+# Copyright 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_MpPathData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.mpdev = kwargs.get("mpdev", "")
+        self.device = kwargs.get("device", "")
+        self.rule = kwargs.get("rule", "")
+
+    def __str__(self):
+        return " --device=%s --rule=\"%s\"" % (self.device, self.rule)
+
+class FC6_MultiPathData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.name = kwargs.get("name", "")
+        self.paths = kwargs.get("paths", [])
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+
+        for path in self.paths:
+            retval += "multipath --mpdev=%s %s\n" % (self.name, path.__str__())
+
+        return retval
+
+class FC6_MultiPath(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=50, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.mpaths = kwargs.get("mpaths", [])
+
+    def __str__(self):
+        retval = ""
+        for mpath in self.mpaths:
+            retval += mpath.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--name", dest="name", action="store", type="string",
+                      required=1)
+        op.add_option("--device", dest="device", action="store", type="string",
+                      required=1)
+        op.add_option("--rule", dest="rule", action="store", type="string",
+                      required=1)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        dd = FC6_MpPathData()
+        self._setToObj(self.op, opts, dd)
+        dd.lineno = self.lineno
+        dd.mpdev = dd.mpdev.split('/')[-1]
+
+        parent = None
+        for x in range(0, len(self.mpaths)):
+            mpath = self.mpaths[x]
+            for path in mpath.paths:
+                if path.device == dd.device:
+                    mapping = {"device": path.device, "multipathdev": path.mpdev}
+                    raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Device '%(device)s' is already used in multipath '%(multipathdev)s'") % mapping)
+            if mpath.name == dd.mpdev:
+                parent = x
+
+        if parent is None:
+            mpath = FC6_MultiPathData()
+            return mpath
+        else:
+            mpath = self.mpaths[parent]
+
+        return dd
+
+    def dataList(self):
+        return self.mpaths
diff --git a/mic/pykickstart/commands/network.py b/mic/pykickstart/commands/network.py
new file mode 100644 (file)
index 0000000..9b67f92
--- /dev/null
@@ -0,0 +1,363 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_NetworkData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.bootProto = kwargs.get("bootProto", BOOTPROTO_DHCP)
+        self.dhcpclass = kwargs.get("dhcpclass", "")
+        self.device = kwargs.get("device", "")
+        self.essid = kwargs.get("essid", "")
+        self.ethtool = kwargs.get("ethtool", "")
+        self.gateway = kwargs.get("gateway", "")
+        self.hostname = kwargs.get("hostname", "")
+        self.ip = kwargs.get("ip", "")
+        self.mtu = kwargs.get("mtu", "")
+        self.nameserver = kwargs.get("nameserver", "")
+        self.netmask = kwargs.get("netmask", "")
+        self.nodns = kwargs.get("nodns", False)
+        self.onboot = kwargs.get("onboot", True)
+        self.wepkey = kwargs.get("wepkey", "")
+
+    def __eq__(self, y):
+        return self.device and self.device == y.device
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.bootProto != "":
+            retval += " --bootproto=%s" % self.bootProto
+        if self.dhcpclass != "":
+            retval += " --dhcpclass=%s" % self.dhcpclass
+        if self.device != "":
+            retval += " --device=%s" % self.device
+        if self.essid != "":
+            retval += " --essid=\"%s\"" % self.essid
+        if self.ethtool != "":
+            retval += " --ethtool=\"%s\"" % self.ethtool
+        if self.gateway != "":
+            retval += " --gateway=%s" % self.gateway
+        if self.hostname != "":
+            retval += " --hostname=%s" % self.hostname
+        if self.ip != "":
+            retval += " --ip=%s" % self.ip
+        if self.mtu != "":
+            retval += " --mtu=%s" % self.mtu
+        if self.nameserver != "":
+            retval += " --nameserver=%s" % self.nameserver
+        if self.netmask != "":
+            retval += " --netmask=%s" % self.netmask
+        if self.nodns:
+            retval += " --nodns"
+        if not self.onboot:
+            retval += " --onboot=off"
+        if self.wepkey != "":
+            retval += " --wepkey=%s" % self.wepkey
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "network %s\n" % self._getArgsAsStr()
+        return retval
+
+class FC4_NetworkData(FC3_NetworkData):
+    removedKeywords = FC3_NetworkData.removedKeywords
+    removedAttrs = FC3_NetworkData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC3_NetworkData.__init__(self, *args, **kwargs)
+        self.notksdevice = kwargs.get("notksdevice", False)
+
+    def _getArgsAsStr(self):
+        retval = FC3_NetworkData._getArgsAsStr(self)
+
+        if self.notksdevice:
+            retval += " --notksdevice"
+
+        return retval
+
+class FC6_NetworkData(FC4_NetworkData):
+    removedKeywords = FC4_NetworkData.removedKeywords
+    removedAttrs = FC4_NetworkData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC4_NetworkData.__init__(self, *args, **kwargs)
+        self.noipv4 = kwargs.get("noipv4", False)
+        self.noipv6 = kwargs.get("noipv6", False)
+
+    def _getArgsAsStr(self):
+        retval = FC4_NetworkData._getArgsAsStr(self)
+
+        if self.noipv4:
+            retval += " --noipv4"
+        if self.noipv6:
+            retval += " --noipv6"
+
+        return retval
+
+class F8_NetworkData(FC6_NetworkData):
+    removedKeywords = FC6_NetworkData.removedKeywords
+    removedAttrs = FC6_NetworkData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC6_NetworkData.__init__(self, *args, **kwargs)
+        self.ipv6 = kwargs.get("ipv6", "")
+
+    def _getArgsAsStr(self):
+        retval = FC6_NetworkData._getArgsAsStr(self)
+
+        if self.ipv6 != "":
+            retval += " --ipv6" % self.ipv6
+
+        return retval
+
+class F16_NetworkData(F8_NetworkData):
+    removedKeywords = F8_NetworkData.removedKeywords
+    removedAttrs = F8_NetworkData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F8_NetworkData.__init__(self, *args, **kwargs)
+        self.activate = kwargs.get("activate", False)
+        self.nodefroute = kwargs.get("nodefroute", False)
+        self.wpakey = kwargs.get("wpakey", "")
+
+    def _getArgsAsStr(self):
+        retval = F8_NetworkData._getArgsAsStr(self)
+
+        if self.activate:
+            retval += " --activate"
+        if self.nodefroute:
+            retval += " --nodefroute"
+        if self.wpakey != "":
+            retval += "--wpakey=%s" % self.wpakey
+
+        return retval
+
+class RHEL4_NetworkData(FC3_NetworkData):
+    removedKeywords = FC3_NetworkData.removedKeywords
+    removedAttrs = FC3_NetworkData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC3_NetworkData.__init__(self, *args, **kwargs)
+        self.notksdevice = kwargs.get("notksdevice", False)
+
+    def _getArgsAsStr(self):
+        retval = FC3_NetworkData._getArgsAsStr(self)
+
+        if self.notksdevice:
+            retval += " --notksdevice"
+
+        return retval
+
+class RHEL6_NetworkData(F8_NetworkData):
+    removedKeywords = F8_NetworkData.removedKeywords
+    removedAttrs = F8_NetworkData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F8_NetworkData.__init__(self, *args, **kwargs)
+        self.activate = kwargs.get("activate", False)
+        self.nodefroute = kwargs.get("nodefroute", False)
+
+    def _getArgsAsStr(self):
+        retval = F8_NetworkData._getArgsAsStr(self)
+
+        if self.activate:
+            retval += " --activate"
+        if self.nodefroute:
+            retval += " --nodefroute"
+
+        return retval
+
+class FC3_Network(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.bootprotoList = [BOOTPROTO_DHCP, BOOTPROTO_BOOTP,
+                              BOOTPROTO_STATIC]
+
+        self.op = self._getParser()
+
+        self.network = kwargs.get("network", [])
+
+    def __str__(self):
+        retval = ""
+
+        for nic in self.network:
+            retval += nic.__str__()
+
+        if retval != "":
+            return "# Network information\n" + retval
+        else:
+            return ""
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--bootproto", dest="bootProto",
+                      default=BOOTPROTO_DHCP,
+                      choices=self.bootprotoList)
+        op.add_option("--dhcpclass", dest="dhcpclass")
+        op.add_option("--device", dest="device")
+        op.add_option("--essid", dest="essid")
+        op.add_option("--ethtool", dest="ethtool")
+        op.add_option("--gateway", dest="gateway")
+        op.add_option("--hostname", dest="hostname")
+        op.add_option("--ip", dest="ip")
+        op.add_option("--mtu", dest="mtu")
+        op.add_option("--nameserver", dest="nameserver")
+        op.add_option("--netmask", dest="netmask")
+        op.add_option("--nodns", dest="nodns", action="store_true",
+                      default=False)
+        op.add_option("--onboot", dest="onboot", action="store",
+                      type="ksboolean")
+        op.add_option("--wepkey", dest="wepkey")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        nd = self.handler.NetworkData()
+        self._setToObj(self.op, opts, nd)
+        nd.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if nd in self.dataList():
+            warnings.warn(_("A network device with the name %s has already been defined.") % nd.device)
+
+        return nd
+
+    def dataList(self):
+        return self.network
+
+class FC4_Network(FC3_Network):
+    removedKeywords = FC3_Network.removedKeywords
+    removedAttrs = FC3_Network.removedAttrs
+
+    def _getParser(self):
+        op = FC3_Network._getParser(self)
+        op.add_option("--notksdevice", dest="notksdevice", action="store_true",
+                      default=False)
+        return op
+
+class FC6_Network(FC4_Network):
+    removedKeywords = FC4_Network.removedKeywords
+    removedAttrs = FC4_Network.removedAttrs
+
+    def _getParser(self):
+        op = FC4_Network._getParser(self)
+        op.add_option("--noipv4", dest="noipv4", action="store_true",
+                      default=False)
+        op.add_option("--noipv6", dest="noipv6", action="store_true",
+                      default=False)
+        return op
+
+class F8_Network(FC6_Network):
+    removedKeywords = FC6_Network.removedKeywords
+    removedAttrs = FC6_Network.removedAttrs
+
+    def _getParser(self):
+        op = FC6_Network._getParser(self)
+        op.add_option("--ipv6", dest="ipv6")
+        return op
+
+class F9_Network(F8_Network):
+    removedKeywords = F8_Network.removedKeywords
+    removedAttrs = F8_Network.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        F8_Network.__init__(self, writePriority, *args, **kwargs)
+        self.bootprotoList.append(BOOTPROTO_QUERY)
+
+    def _getParser(self):
+        op = F8_Network._getParser(self)
+        op.add_option("--bootproto", dest="bootProto",
+                      default=BOOTPROTO_DHCP,
+                      choices=self.bootprotoList)
+        return op
+
+class F16_Network(F9_Network):
+    removedKeywords = F9_Network.removedKeywords
+    removedAttrs = F9_Network.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        F9_Network.__init__(self, writePriority, *args, **kwargs)
+        self.bootprotoList.append(BOOTPROTO_IBFT)
+
+    def _getParser(self):
+        op = F9_Network._getParser(self)
+        op.add_option("--activate", dest="activate", action="store_true",
+                      default=False)
+        op.add_option("--nodefroute", dest="nodefroute", action="store_true",
+                      default=False)
+        op.add_option("--wpakey", dest="wpakey", action="store", default="")
+        return op
+
+class RHEL4_Network(FC3_Network):
+    removedKeywords = FC3_Network.removedKeywords
+    removedAttrs = FC3_Network.removedAttrs
+
+    def _getParser(self):
+        op = FC3_Network._getParser(self)
+        op.add_option("--notksdevice", dest="notksdevice", action="store_true",
+                      default=False)
+        return op
+
+class RHEL5_Network(FC6_Network):
+    removedKeywords = FC6_Network.removedKeywords
+    removedAttrs = FC6_Network.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC6_Network.__init__(self, writePriority, *args, **kwargs)
+        self.bootprotoList.append(BOOTPROTO_QUERY)
+
+    def _getParser(self):
+        op = FC6_Network._getParser(self)
+        op.add_option("--bootproto", dest="bootProto",
+                      default=BOOTPROTO_DHCP,
+                      choices=self.bootprotoList)
+        return op
+
+class RHEL6_Network(F9_Network):
+    removedKeywords = F9_Network.removedKeywords
+    removedAttrs = F9_Network.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        F9_Network.__init__(self, writePriority, *args, **kwargs)
+        self.bootprotoList.append(BOOTPROTO_IBFT)
+
+    def _getParser(self):
+        op = F9_Network._getParser(self)
+        op.add_option("--activate", dest="activate", action="store_true",
+                      default=False)
+        op.add_option("--nodefroute", dest="nodefroute", action="store_true",
+                      default=False)
+        return op
diff --git a/mic/pykickstart/commands/partition.py b/mic/pykickstart/commands/partition.py
new file mode 100644 (file)
index 0000000..34e5b7a
--- /dev/null
@@ -0,0 +1,348 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_PartData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.active = kwargs.get("active", False)
+        self.primOnly = kwargs.get("primOnly", False)
+        self.end = kwargs.get("end", 0)
+        self.fstype = kwargs.get("fstype", "")
+        self.grow = kwargs.get("grow", False)
+        self.maxSizeMB = kwargs.get("maxSizeMB", 0)
+        self.format = kwargs.get("format", True)
+        self.onbiosdisk = kwargs.get("onbiosdisk", "")
+        self.disk = kwargs.get("disk", "")
+        self.onPart = kwargs.get("onPart", "")
+        self.recommended = kwargs.get("recommended", False)
+        self.size = kwargs.get("size", None)
+        self.start = kwargs.get("start", 0)
+        self.mountpoint = kwargs.get("mountpoint", "")
+
+    def __eq__(self, y):
+        return self.mountpoint == y.mountpoint
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.active:
+            retval += " --active"
+        if self.primOnly:
+            retval += " --asprimary"
+        if hasattr(self, "end") and self.end != 0:
+            retval += " --end=%s" % self.end
+        if self.fstype != "":
+            retval += " --fstype=\"%s\"" % self.fstype
+        if self.grow:
+            retval += " --grow"
+        if self.maxSizeMB > 0:
+            retval += " --maxsize=%d" % self.maxSizeMB
+        if not self.format:
+            retval += " --noformat"
+        if self.onbiosdisk != "":
+            retval += " --onbiosdisk=%s" % self.onbiosdisk
+        if self.disk != "":
+            retval += " --ondisk=%s" % self.disk
+        if self.onPart != "":
+            retval += " --onpart=%s" % self.onPart
+        if self.recommended:
+            retval += " --recommended"
+        if self.size and self.size != 0:
+            retval += " --size=%s" % self.size
+        if hasattr(self, "start") and self.start != 0:
+            retval += " --start=%s" % self.start
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "part %s%s\n" % (self.mountpoint, self._getArgsAsStr())
+        return retval
+
+class FC4_PartData(FC3_PartData):
+    removedKeywords = FC3_PartData.removedKeywords
+    removedAttrs = FC3_PartData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC3_PartData.__init__(self, *args, **kwargs)
+        self.bytesPerInode = kwargs.get("bytesPerInode", 4096)
+        self.fsopts = kwargs.get("fsopts", "")
+        self.label = kwargs.get("label", "")
+
+    def _getArgsAsStr(self):
+        retval = FC3_PartData._getArgsAsStr(self)
+
+        if hasattr(self, "bytesPerInode") and self.bytesPerInode != 0:
+            retval += " --bytes-per-inode=%d" % self.bytesPerInode
+        if self.fsopts != "":
+            retval += " --fsoptions=\"%s\"" % self.fsopts
+        if self.label != "":
+            retval += " --label=%s" % self.label
+
+        return retval
+
+class RHEL5_PartData(FC4_PartData):
+    removedKeywords = FC4_PartData.removedKeywords
+    removedAttrs = FC4_PartData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC4_PartData.__init__(self, *args, **kwargs)
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+    def _getArgsAsStr(self):
+        retval = FC4_PartData._getArgsAsStr(self)
+
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\"" % self.passphrase
+
+        return retval
+
+class F9_PartData(FC4_PartData):
+    removedKeywords = FC4_PartData.removedKeywords + ["bytesPerInode"]
+    removedAttrs = FC4_PartData.removedAttrs + ["bytesPerInode"]
+
+    def __init__(self, *args, **kwargs):
+        FC4_PartData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.fsopts = kwargs.get("fsopts", "")
+        self.label = kwargs.get("label", "")
+        self.fsprofile = kwargs.get("fsprofile", "")
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+    def _getArgsAsStr(self):
+        retval = FC4_PartData._getArgsAsStr(self)
+
+        if self.fsprofile != "":
+            retval += " --fsprofile=\"%s\"" % self.fsprofile
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\"" % self.passphrase
+
+        return retval
+
+class F11_PartData(F9_PartData):
+    removedKeywords = F9_PartData.removedKeywords + ["start", "end"]
+    removedAttrs = F9_PartData.removedAttrs + ["start", "end"]
+
+class F12_PartData(F11_PartData):
+    removedKeywords = F11_PartData.removedKeywords
+    removedAttrs = F11_PartData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F11_PartData.__init__(self, *args, **kwargs)
+
+        self.escrowcert = kwargs.get("escrowcert", "")
+        self.backuppassphrase = kwargs.get("backuppassphrase", False)
+
+    def _getArgsAsStr(self):
+        retval = F11_PartData._getArgsAsStr(self)
+
+        if self.encrypted and self.escrowcert != "":
+            retval += " --escrowcert=\"%s\"" % self.escrowcert
+
+            if self.backuppassphrase:
+                retval += " --backuppassphrase"
+
+        return retval
+
+F14_PartData = F12_PartData
+
+class FC3_Partition(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=130, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.partitions = kwargs.get("partitions", [])
+
+    def __str__(self):
+        retval = ""
+
+        for part in self.partitions:
+            retval += part.__str__()
+
+        if retval != "":
+            return "# Disk partitioning information\n" + retval
+        else:
+            return ""
+
+    def _getParser(self):
+        def part_cb (option, opt_str, value, parser):
+            if value.startswith("/dev/"):
+                parser.values.ensure_value(option.dest, value[5:])
+            else:
+                parser.values.ensure_value(option.dest, value)
+
+        op = KSOptionParser()
+        op.add_option("--active", dest="active", action="store_true",
+                      default=False)
+        op.add_option("--asprimary", dest="primOnly", action="store_true",
+                      default=False)
+        op.add_option("--end", dest="end", action="store", type="int",
+                      nargs=1)
+        op.add_option("--fstype", "--type", dest="fstype")
+        op.add_option("--grow", dest="grow", action="store_true", default=False)
+        op.add_option("--maxsize", dest="maxSizeMB", action="store", type="int",
+                      nargs=1)
+        op.add_option("--noformat", dest="format", action="store_false",
+                      default=True)
+        op.add_option("--onbiosdisk", dest="onbiosdisk")
+        op.add_option("--ondisk", "--ondrive", dest="disk")
+        op.add_option("--onpart", "--usepart", dest="onPart", action="callback",
+                      callback=part_cb, nargs=1, type="string")
+        op.add_option("--recommended", dest="recommended", action="store_true",
+                      default=False)
+        op.add_option("--size", dest="size", action="store", type="int",
+                      nargs=1)
+        op.add_option("--start", dest="start", action="store", type="int",
+                      nargs=1)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Mount point required for %s") % "partition")
+
+        pd = self.handler.PartData()
+        self._setToObj(self.op, opts, pd)
+        pd.lineno = self.lineno
+        pd.mountpoint=extra[0]
+
+        # Check for duplicates in the data list.
+        if pd in self.dataList():
+            warnings.warn(_("A partition with the mountpoint %s has already been defined.") % pd.mountpoint)
+
+        return pd
+
+    def dataList(self):
+        return self.partitions
+
+class FC4_Partition(FC3_Partition):
+    removedKeywords = FC3_Partition.removedKeywords
+    removedAttrs = FC3_Partition.removedAttrs
+
+    def __init__(self, writePriority=130, *args, **kwargs):
+        FC3_Partition.__init__(self, writePriority, *args, **kwargs)
+
+        def part_cb (option, opt_str, value, parser):
+            if value.startswith("/dev/"):
+                parser.values.ensure_value(option.dest, value[5:])
+            else:
+                parser.values.ensure_value(option.dest, value)
+
+    def _getParser(self):
+        op = FC3_Partition._getParser(self)
+        op.add_option("--bytes-per-inode", dest="bytesPerInode", action="store",
+                      type="int", nargs=1)
+        op.add_option("--fsoptions", dest="fsopts")
+        op.add_option("--label", dest="label")
+        return op
+
+class RHEL5_Partition(FC4_Partition):
+    removedKeywords = FC4_Partition.removedKeywords
+    removedAttrs = FC4_Partition.removedAttrs
+
+    def __init__(self, writePriority=130, *args, **kwargs):
+        FC4_Partition.__init__(self, writePriority, *args, **kwargs)
+
+        def part_cb (option, opt_str, value, parser):
+            if value.startswith("/dev/"):
+                parser.values.ensure_value(option.dest, value[5:])
+            else:
+                parser.values.ensure_value(option.dest, value)
+
+    def _getParser(self):
+        op = FC4_Partition._getParser(self)
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+class F9_Partition(FC4_Partition):
+    removedKeywords = FC4_Partition.removedKeywords
+    removedAttrs = FC4_Partition.removedAttrs
+
+    def __init__(self, writePriority=130, *args, **kwargs):
+        FC4_Partition.__init__(self, writePriority, *args, **kwargs)
+
+        def part_cb (option, opt_str, value, parser):
+            if value.startswith("/dev/"):
+                parser.values.ensure_value(option.dest, value[5:])
+            else:
+                parser.values.ensure_value(option.dest, value)
+
+    def _getParser(self):
+        op = FC4_Partition._getParser(self)
+        op.add_option("--bytes-per-inode", deprecated=1)
+        op.add_option("--fsprofile")
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+class F11_Partition(F9_Partition):
+    removedKeywords = F9_Partition.removedKeywords
+    removedAttrs = F9_Partition.removedAttrs
+
+    def _getParser(self):
+        op = F9_Partition._getParser(self)
+        op.add_option("--start", deprecated=1)
+        op.add_option("--end", deprecated=1)
+        return op
+
+class F12_Partition(F11_Partition):
+    removedKeywords = F11_Partition.removedKeywords
+    removedAttrs = F11_Partition.removedAttrs
+
+    def _getParser(self):
+        op = F11_Partition._getParser(self)
+        op.add_option("--escrowcert")
+        op.add_option("--backuppassphrase", action="store_true", default=False)
+        return op
+
+class F14_Partition(F12_Partition):
+    removedKeywords = F12_Partition.removedKeywords
+    removedAttrs = F12_Partition.removedAttrs
+
+    def _getParser(self):
+        op = F12_Partition._getParser(self)
+        op.remove_option("--bytes-per-inode")
+        op.remove_option("--start")
+        op.remove_option("--end")
+        return op
diff --git a/mic/pykickstart/commands/raid.py b/mic/pykickstart/commands/raid.py
new file mode 100644 (file)
index 0000000..0f4c92a
--- /dev/null
@@ -0,0 +1,365 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008, 2011 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_RaidData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.device = kwargs.get("device", None)
+        self.fstype = kwargs.get("fstype", "")
+        self.level = kwargs.get("level", "")
+        self.format = kwargs.get("format", True)
+        self.spares = kwargs.get("spares", 0)
+        self.preexist = kwargs.get("preexist", False)
+        self.mountpoint = kwargs.get("mountpoint", "")
+        self.members = kwargs.get("members", [])
+
+    def __eq__(self, y):
+        return self.device == y.device
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.device != "":
+            retval += " --device=%s" % self.device
+        if self.fstype != "":
+            retval += " --fstype=\"%s\"" % self.fstype
+        if self.level != "":
+            retval += " --level=%s" % self.level
+        if not self.format:
+            retval += " --noformat"
+        if self.spares != 0:
+            retval += " --spares=%d" % self.spares
+        if self.preexist:
+            retval += " --useexisting"
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "raid %s%s %s\n" % (self.mountpoint, self._getArgsAsStr(),
+                                      " ".join(self.members))
+        return retval
+
+class FC4_RaidData(FC3_RaidData):
+    removedKeywords = FC3_RaidData.removedKeywords
+    removedAttrs = FC3_RaidData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC3_RaidData.__init__(self, *args, **kwargs)
+        self.fsopts = kwargs.get("fsopts", "")
+
+    def _getArgsAsStr(self):
+        retval = FC3_RaidData._getArgsAsStr(self)
+
+        if self.fsopts != "":
+            retval += " --fsoptions=\"%s\"" % self.fsopts
+
+        return retval
+
+class FC5_RaidData(FC4_RaidData):
+    removedKeywords = FC4_RaidData.removedKeywords
+    removedAttrs = FC4_RaidData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC4_RaidData.__init__(self, *args, **kwargs)
+        self.bytesPerInode = kwargs.get("bytesPerInode", 4096)
+
+    def _getArgsAsStr(self):
+        retval = FC4_RaidData._getArgsAsStr(self)
+
+        if hasattr(self, "bytesPerInode") and self.bytesPerInode != 0:
+            retval += " --bytes-per-inode=%d" % self.bytesPerInode
+
+        return retval
+
+class RHEL5_RaidData(FC5_RaidData):
+    removedKeywords = FC5_RaidData.removedKeywords
+    removedAttrs = FC5_RaidData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC5_RaidData.__init__(self, *args, **kwargs)
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+    def _getArgsAsStr(self):
+        retval = FC5_RaidData._getArgsAsStr(self)
+
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\"" % self.passphrase
+
+        return retval
+
+F7_RaidData = FC5_RaidData
+
+class F9_RaidData(FC5_RaidData):
+    removedKeywords = FC5_RaidData.removedKeywords + ["bytesPerInode"]
+    removedAttrs = FC5_RaidData.removedAttrs + ["bytesPerInode"]
+
+    def __init__(self, *args, **kwargs):
+        FC5_RaidData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.fsprofile = kwargs.get("fsprofile", "")
+        self.encrypted = kwargs.get("encrypted", False)
+        self.passphrase = kwargs.get("passphrase", "")
+
+    def _getArgsAsStr(self):
+        retval = FC5_RaidData._getArgsAsStr(self)
+
+        if self.fsprofile != "":
+            retval += " --fsprofile=\"%s\"" % self.fsprofile
+        if self.encrypted:
+            retval += " --encrypted"
+
+            if self.passphrase != "":
+                retval += " --passphrase=\"%s\"" % self.passphrase
+
+        return retval
+
+class F12_RaidData(F9_RaidData):
+    removedKeywords = F9_RaidData.removedKeywords
+    removedAttrs = F9_RaidData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F9_RaidData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.escrowcert = kwargs.get("escrowcert", "")
+        self.backuppassphrase = kwargs.get("backuppassphrase", False)
+
+    def _getArgsAsStr(self):
+        retval = F9_RaidData._getArgsAsStr(self)
+
+        if self.encrypted and self.escrowcert != "":
+            retval += " --escrowcert=\"%s\"" % self.escrowcert
+
+            if self.backuppassphrase:
+                retval += " --backuppassphrase"
+        return retval
+
+F13_RaidData = F12_RaidData
+
+F14_RaidData = F13_RaidData
+
+class F15_RaidData(F14_RaidData):
+    removedKeywords = F14_RaidData.removedKeywords
+    removedAttrs = F14_RaidData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F14_RaidData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.label = kwargs.get("label", "")
+
+    def _getArgsAsStr(self):
+        retval = F14_RaidData._getArgsAsStr(self)
+
+        if self.label != "":
+            retval += " --label=%s" % self.label
+
+        return retval
+
+class FC3_Raid(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=131, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        # A dict of all the RAID levels we support.  This means that if we
+        # support more levels in the future, subclasses don't have to
+        # duplicate too much.
+        self.levelMap = { "RAID0": "RAID0", "0": "RAID0",
+                          "RAID1": "RAID1", "1": "RAID1",
+                          "RAID5": "RAID5", "5": "RAID5",
+                          "RAID6": "RAID6", "6": "RAID6" }
+
+        self.raidList = kwargs.get("raidList", [])
+
+    def __str__(self):
+        retval = ""
+
+        for raid in self.raidList:
+            retval += raid.__str__()
+
+        return retval
+
+    def _getParser(self):
+        def raid_cb (option, opt_str, value, parser):
+            parser.values.format = False
+            parser.values.preexist = True
+
+        def device_cb (option, opt_str, value, parser):
+            if value[0:2] == "md":
+                parser.values.ensure_value(option.dest, value[2:])
+            else:
+                parser.values.ensure_value(option.dest, value)
+
+        def level_cb (option, opt_str, value, parser):
+            if self.levelMap.has_key(value):
+                parser.values.ensure_value(option.dest, self.levelMap[value])
+
+        op = KSOptionParser()
+        op.add_option("--device", action="callback", callback=device_cb,
+                      dest="device", type="string", nargs=1, required=1)
+        op.add_option("--fstype", dest="fstype")
+        op.add_option("--level", dest="level", action="callback",
+                      callback=level_cb, type="string", nargs=1)
+        op.add_option("--noformat", action="callback", callback=raid_cb,
+                      dest="format", default=True, nargs=0)
+        op.add_option("--spares", dest="spares", action="store", type="int",
+                      nargs=1, default=0)
+        op.add_option("--useexisting", dest="preexist", action="store_true",
+                      default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) == 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Mount point required for %s") % "raid")
+        if len(extra) == 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Partitions required for %s") % "raid")
+
+        rd = self.handler.RaidData()
+        self._setToObj(self.op, opts, rd)
+        rd.lineno = self.lineno
+
+        # --device can't just take an int in the callback above, because it
+        # could be specificed as "mdX", which causes optparse to error when
+        # it runs int().
+        rd.device = int(rd.device)
+        rd.mountpoint = extra[0]
+        rd.members = extra[1:]
+
+        # Check for duplicates in the data list.
+        if rd in self.dataList():
+            warnings.warn(_("A RAID device with the name %s has already been defined.") % rd.device)
+
+        return rd
+
+    def dataList(self):
+        return self.raidList
+
+class FC4_Raid(FC3_Raid):
+    removedKeywords = FC3_Raid.removedKeywords
+    removedAttrs = FC3_Raid.removedAttrs
+
+    def _getParser(self):
+        op = FC3_Raid._getParser(self)
+        op.add_option("--fsoptions", dest="fsopts")
+        return op
+
+class FC5_Raid(FC4_Raid):
+    removedKeywords = FC4_Raid.removedKeywords
+    removedAttrs = FC4_Raid.removedAttrs
+
+    def _getParser(self):
+        op = FC4_Raid._getParser(self)
+        op.add_option("--bytes-per-inode", dest="bytesPerInode", action="store",
+                      type="int", nargs=1)
+        return op
+
+class RHEL5_Raid(FC5_Raid):
+    removedKeywords = FC5_Raid.removedKeywords
+    removedAttrs = FC5_Raid.removedAttrs
+
+    def __init__(self, writePriority=131, *args, **kwargs):
+        FC5_Raid.__init__(self, writePriority, *args, **kwargs)
+
+        self.levelMap.update({"RAID10": "RAID10", "10": "RAID10"})
+
+    def _getParser(self):
+        op = FC5_Raid._getParser(self)
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+class F7_Raid(FC5_Raid):
+    removedKeywords = FC5_Raid.removedKeywords
+    removedAttrs = FC5_Raid.removedAttrs
+
+    def __init__(self, writePriority=131, *args, **kwargs):
+        FC5_Raid.__init__(self, writePriority, *args, **kwargs)
+
+        self.levelMap.update({"RAID10": "RAID10", "10": "RAID10"})
+
+class F9_Raid(F7_Raid):
+    removedKeywords = F7_Raid.removedKeywords
+    removedAttrs = F7_Raid.removedAttrs
+
+    def _getParser(self):
+        op = F7_Raid._getParser(self)
+        op.add_option("--bytes-per-inode", deprecated=1)
+        op.add_option("--fsprofile")
+        op.add_option("--encrypted", action="store_true", default=False)
+        op.add_option("--passphrase")
+        return op
+
+class F12_Raid(F9_Raid):
+    removedKeywords = F9_Raid.removedKeywords
+    removedAttrs = F9_Raid.removedAttrs
+
+    def _getParser(self):
+        op = F9_Raid._getParser(self)
+        op.add_option("--escrowcert")
+        op.add_option("--backuppassphrase", action="store_true", default=False)
+        return op
+
+class F13_Raid(F12_Raid):
+    removedKeywords = F12_Raid.removedKeywords
+    removedAttrs = F12_Raid.removedAttrs
+
+    def __init__(self, writePriority=131, *args, **kwargs):
+        F12_Raid.__init__(self, writePriority, *args, **kwargs)
+
+        self.levelMap.update({"RAID4": "RAID4", "4": "RAID4"})
+
+class F14_Raid(F13_Raid):
+    removedKeywords = F13_Raid.removedKeywords
+    removedAttrs = F13_Raid.removedAttrs
+
+    def _getParser(self):
+        op = F13_Raid._getParser(self)
+        op.remove_option("--bytes-per-inode")
+        return op
+
+class F15_Raid(F14_Raid):
+    removedKeywords = F14_Raid.removedKeywords
+    removedAttrs = F14_Raid.removedAttrs
+
+    def _getParser(self):
+        op = F14_Raid._getParser(self)
+        op.add_option("--label")
+        return op
diff --git a/mic/pykickstart/commands/reboot.py b/mic/pykickstart/commands/reboot.py
new file mode 100644 (file)
index 0000000..391af14
--- /dev/null
@@ -0,0 +1,79 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+class FC3_Reboot(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.action = kwargs.get("action", None)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.action == KS_REBOOT:
+            retval += "# Reboot after installation\nreboot\n"
+        elif self.action == KS_SHUTDOWN:
+            retval += "# Shutdown after installation\nshutdown\n"
+
+        return retval
+
+    def parse(self, args):
+        if self.currentCmd == "reboot":
+            self.action = KS_REBOOT
+        else:
+            self.action = KS_SHUTDOWN
+
+        return self
+
+class FC6_Reboot(FC3_Reboot):
+    removedKeywords = FC3_Reboot.removedKeywords
+    removedAttrs = FC3_Reboot.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_Reboot.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.eject = kwargs.get("eject", False)
+
+    def __str__(self):
+        retval = FC3_Reboot.__str__(self).rstrip()
+
+        if self.eject:
+            retval += " --eject"
+
+        return retval + "\n"
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--eject", dest="eject", action="store_true",
+                      default=False)
+        return op
+
+    def parse(self, args):
+        FC3_Reboot.parse(self, args)
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        return self
diff --git a/mic/pykickstart/commands/repo.py b/mic/pykickstart/commands/repo.py
new file mode 100644 (file)
index 0000000..543ef94
--- /dev/null
@@ -0,0 +1,249 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007, 2008, 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_RepoData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.baseurl = kwargs.get("baseurl", "")
+        self.mirrorlist = kwargs.get("mirrorlist", None)
+        self.name = kwargs.get("name", "")
+
+    def __eq__(self, y):
+        return self.name == y.name
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.baseurl:
+            retval += "--baseurl=%s" % self.baseurl
+        elif self.mirrorlist:
+            retval += "--mirrorlist=%s" % self.mirrorlist
+
+        return retval
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "repo --name=\"%s\" %s\n" % (self.name, self._getArgsAsStr())
+        return retval
+
+class F8_RepoData(FC6_RepoData):
+    removedKeywords = FC6_RepoData.removedKeywords
+    removedAttrs = FC6_RepoData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC6_RepoData.__init__(self, *args, **kwargs)
+        self.cost = kwargs.get("cost", None)
+        self.includepkgs = kwargs.get("includepkgs", [])
+        self.excludepkgs = kwargs.get("excludepkgs", [])
+
+    def _getArgsAsStr(self):
+        retval = FC6_RepoData._getArgsAsStr(self)
+
+        if self.cost:
+            retval += " --cost=%s" % self.cost
+        if self.includepkgs:
+            retval += " --includepkgs=\"%s\"" % ",".join(self.includepkgs)
+        if self.excludepkgs:
+            retval += " --excludepkgs=\"%s\"" % ",".join(self.excludepkgs)
+
+        return retval
+
+class F11_RepoData(F8_RepoData):
+    removedKeywords = F8_RepoData.removedKeywords
+    removedAttrs = F8_RepoData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F8_RepoData.__init__(self, *args, **kwargs)
+        self.ignoregroups = kwargs.get("ignoregroups", None)
+
+    def _getArgsAsStr(self):
+        retval = F8_RepoData._getArgsAsStr(self)
+
+        if self.ignoregroups:
+            retval += " --ignoregroups=true"
+        return retval
+
+class F13_RepoData(F11_RepoData):
+    removedKeywords = F11_RepoData.removedKeywords
+    removedAttrs = F11_RepoData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F11_RepoData.__init__(self, *args, **kwargs)
+        self.proxy = kwargs.get("proxy", "")
+
+    def _getArgsAsStr(self):
+        retval = F11_RepoData._getArgsAsStr(self)
+
+        if self.proxy:
+            retval += " --proxy=\"%s\"" % self.proxy
+
+        return retval
+
+class F14_RepoData(F13_RepoData):
+    removedKeywords = F13_RepoData.removedKeywords
+    removedAttrs = F13_RepoData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F13_RepoData.__init__(self, *args, **kwargs)
+        self.noverifyssl = kwargs.get("noverifyssl", False)
+
+    def _getArgsAsStr(self):
+        retval = F13_RepoData._getArgsAsStr(self)
+
+        if self.noverifyssl:
+            retval += " --noverifyssl"
+
+        return retval
+
+RHEL6_RepoData = F14_RepoData
+
+F15_RepoData = F14_RepoData
+
+class FC6_Repo(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    urlRequired = True
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.repoList = kwargs.get("repoList", [])
+
+    def __str__(self):
+        retval = ""
+        for repo in self.repoList:
+            retval += repo.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--name", dest="name", required=1)
+        op.add_option("--baseurl")
+        op.add_option("--mirrorlist")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        
+        if len(extra) != 0:
+            mapping = {"command": "repo", "options": extra}
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
+
+        # This is lame, but I can't think of a better way to make sure only
+        # one of these two is specified.
+        if opts.baseurl and opts.mirrorlist:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --baseurl and --mirrorlist may be specified for repo command."))
+
+        if self.urlRequired and not opts.baseurl and not opts.mirrorlist:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("One of --baseurl or --mirrorlist must be specified for repo command."))
+
+        rd = self.handler.RepoData()
+        self._setToObj(self.op, opts, rd)
+        rd.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if rd in self.dataList():
+            warnings.warn(_("A repo with the name %s has already been defined.") % rd.name)
+
+        return rd
+
+    def dataList(self):
+        return self.repoList
+
+class F8_Repo(FC6_Repo):
+    removedKeywords = FC6_Repo.removedKeywords
+    removedAttrs = FC6_Repo.removedAttrs
+
+    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 = FC6_Repo._getParser(self)
+        op.add_option("--cost", action="store", type="int")
+        op.add_option("--excludepkgs", action="callback", callback=list_cb,
+                      nargs=1, type="string")
+        op.add_option("--includepkgs", action="callback", callback=list_cb,
+                      nargs=1, type="string")
+        return op
+
+    def methodToRepo(self):
+        if not self.handler.method.url:
+            raise KickstartError, formatErrorMsg(self.handler.method.lineno, msg=_("Method must be a url to be added to the repo list."))
+        reponame = "ks-method-url"
+        repourl = self.handler.method.url
+        rd = self.handler.RepoData(name=reponame, baseurl=repourl)
+        return rd
+
+class F11_Repo(F8_Repo):
+    removedKeywords = F8_Repo.removedKeywords
+    removedAttrs = F8_Repo.removedAttrs
+
+    def _getParser(self):
+        op = F8_Repo._getParser(self)
+        op.add_option("--ignoregroups", action="store", type="ksboolean")
+        return op
+
+class F13_Repo(F11_Repo):
+    removedKeywords = F11_Repo.removedKeywords
+    removedAttrs = F11_Repo.removedAttrs
+
+    def _getParser(self):
+        op = F11_Repo._getParser(self)
+        op.add_option("--proxy")
+        return op
+
+class F14_Repo(F13_Repo):
+    removedKeywords = F13_Repo.removedKeywords
+    removedAttrs = F13_Repo.removedAttrs
+
+    def _getParser(self):
+        op = F13_Repo._getParser(self)
+        op.add_option("--noverifyssl", action="store_true", default=False)
+        return op
+
+RHEL6_Repo = F14_Repo
+
+class F15_Repo(F14_Repo):
+    removedKeywords = F14_Repo.removedKeywords
+    removedAttrs = F14_Repo.removedAttrs
+
+    urlRequired = False
diff --git a/mic/pykickstart/commands/rescue.py b/mic/pykickstart/commands/rescue.py
new file mode 100644 (file)
index 0000000..1893d4e
--- /dev/null
@@ -0,0 +1,68 @@
+#
+# Alexander Todorov <atodorov@redhat.com>
+#
+# Copyright 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class F10_Rescue(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.rescue = False
+        self.nomount = kwargs.get("nomount", False)
+        self.romount = kwargs.get("romount", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.rescue:
+            retval += "rescue"
+
+            if self.nomount:
+                retval += " --nomount"
+            if self.romount:
+                retval += " --romount"
+
+            retval = "# Start rescue mode\n%s\n" % retval
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--nomount", dest="nomount", action="store_true", default=False)
+        op.add_option("--romount", dest="romount", action="store_true", default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if opts.nomount and opts.romount:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Only one of --nomount and --romount may be specified for rescue command."))
+
+        self._setToSelf(self.op, opts)
+        self.rescue = True
+        return self
diff --git a/mic/pykickstart/commands/rootpw.py b/mic/pykickstart/commands/rootpw.py
new file mode 100644 (file)
index 0000000..e038b45
--- /dev/null
@@ -0,0 +1,93 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_RootPw(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.isCrypted = kwargs.get("isCrypted", False)
+        self.password = kwargs.get("password", "")
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if self.isCrypted:
+            retval += " --iscrypted"
+
+        return retval
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.password != "":
+            retval += "# Root password\nrootpw%s %s\n" % (self._getArgsAsStr(), self.password)
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--iscrypted", dest="isCrypted", action="store_true",
+                      default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "rootpw")
+
+        self.password = extra[0]
+        return self
+
+class F8_RootPw(FC3_RootPw):
+    removedKeywords = FC3_RootPw.removedKeywords
+    removedAttrs = FC3_RootPw.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_RootPw.__init__(self, writePriority, *args, **kwargs)
+        self.lock = kwargs.get("lock", False)
+
+    def _getArgsAsStr(self):
+        retval = FC3_RootPw._getArgsAsStr(self)
+
+        if self.lock:
+            retval += " --lock"
+
+        if not self.isCrypted:
+            retval += " --plaintext"
+
+        return retval
+
+    def _getParser(self):
+        op = FC3_RootPw._getParser(self)
+        op.add_option("--lock", dest="lock", action="store_true", default=False)
+        op.add_option("--plaintext", dest="isCrypted", action="store_false")
+        return op
diff --git a/mic/pykickstart/commands/selinux.py b/mic/pykickstart/commands/selinux.py
new file mode 100644 (file)
index 0000000..9f8059c
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.options import *
+
+class FC3_SELinux(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.selinux = kwargs.get("selinux", None)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if not retval and self.selinux is None:
+            return ""
+
+        retval += "# SELinux configuration\n"
+
+        if self.selinux == SELINUX_DISABLED:
+            retval += "selinux --disabled\n"
+        elif self.selinux == SELINUX_ENFORCING:
+            retval += "selinux --enforcing\n"
+        elif self.selinux == SELINUX_PERMISSIVE:
+            retval += "selinux --permissive\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--disabled", dest="selinux", action="store_const",
+                      const=SELINUX_DISABLED)
+        op.add_option("--enforcing", dest="selinux", action="store_const",
+                      const=SELINUX_ENFORCING)
+        op.add_option("--permissive", dest="selinux", action="store_const",
+                      const=SELINUX_PERMISSIVE)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        return self
diff --git a/mic/pykickstart/commands/services.py b/mic/pykickstart/commands/services.py
new file mode 100644 (file)
index 0000000..2e0eab8
--- /dev/null
@@ -0,0 +1,71 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_Services(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.disabled = kwargs.get("disabled", [])
+        self.enabled = kwargs.get("enabled", [])
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+        args = ""
+
+        if len(self.disabled) > 0:
+            args += " --disabled=\"%s\"" % ",".join(self.disabled)
+        if len(self.enabled) > 0:
+            args += " --enabled=\"%s\"" % ",".join(self.enabled)
+
+        if args != "":
+            retval += "# System services\nservices%s\n" % args
+
+        return retval
+
+    def _getParser(self):
+        def services_cb (option, opt_str, value, parser):
+            for d in value.split(','):
+                parser.values.ensure_value(option.dest, []).append(d.strip())
+
+        op = KSOptionParser()
+        op.add_option("--disabled", dest="disabled", action="callback",
+                      callback=services_cb, nargs=1, type="string")
+        op.add_option("--enabled", dest="enabled", action="callback",
+                      callback=services_cb, nargs=1, type="string")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+
+        if len(self.disabled) == 0 and len(self.enabled) == 0:
+            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("One of --disabled or --enabled must be provided."))
+
+        return self
diff --git a/mic/pykickstart/commands/skipx.py b/mic/pykickstart/commands/skipx.py
new file mode 100644 (file)
index 0000000..36d1a8d
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_SkipX(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.skipx = kwargs.get("skipx", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.skipx:
+            retval += "# Do not configure the X Window System\nskipx\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if len(extra) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "skipx")
+
+        self.skipx = True
+        return self
diff --git a/mic/pykickstart/commands/sshpw.py b/mic/pykickstart/commands/sshpw.py
new file mode 100644 (file)
index 0000000..e7867eb
--- /dev/null
@@ -0,0 +1,105 @@
+#
+# Peter Jones <pjones@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class F13_SshPwData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.username = kwargs.get("username", None)
+        self.isCrypted = kwargs.get("isCrypted", False)
+        self.password = kwargs.get("password", "")
+        self.lock = kwargs.get("lock", False)
+
+    def __eq__(self, y):
+        return self.username == y.username
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+
+        retval += "sshpw"
+        retval += self._getArgsAsStr() + '\n'
+
+        return retval
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        retval += " --username=%s" % self.username
+        if self.lock:
+            retval += " --lock"
+        if self.isCrypted:
+            retval += " --iscrypted"
+        else:
+            retval += " --plaintext"
+
+        retval += " %s" % self.password
+        return retval
+
+class F13_SshPw(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.sshUserList = kwargs.get("sshUserList", [])
+
+    def __str__(self):
+        retval = ""
+        for user in self.sshUserList:
+            retval += user.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--username", dest="username", required=True)
+        op.add_option("--iscrypted", dest="isCrypted", action="store_true",
+                      default=False)
+        op.add_option("--plaintext", dest="isCrypted", action="store_false")
+        op.add_option("--lock", dest="lock", action="store_true", default=False)
+        return op
+
+    def parse(self, args):
+        ud = self.handler.SshPwData()
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToObj(self.op, opts, ud)
+        ud.lineno = self.lineno
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "sshpw")
+        ud.password = extra[0]
+
+        if ud in self.dataList():
+            warnings.warn(_("An ssh user with the name %s has already been defined.") % ud.name)
+
+        return ud
+
+    def dataList(self):
+        return self.sshUserList
diff --git a/mic/pykickstart/commands/timezone.py b/mic/pykickstart/commands/timezone.py
new file mode 100644 (file)
index 0000000..f5441de
--- /dev/null
@@ -0,0 +1,86 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Timezone(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.isUtc = kwargs.get("isUtc", False)
+        self.timezone = kwargs.get("timezone", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.timezone != "":
+            if self.isUtc:
+                utc = "--utc"
+            else:
+                utc = ""
+
+            retval += "# System timezone\ntimezone %s %s\n" %(utc, self.timezone)
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--utc", dest="isUtc", action="store_true", default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+
+        if len(extra) != 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("A single argument is expected for the %s command") % "timezone")
+
+        self.timezone = extra[0]
+        return self
+
+class FC6_Timezone(FC3_Timezone):
+    removedKeywords = FC3_Timezone.removedKeywords
+    removedAttrs = FC3_Timezone.removedAttrs
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.timezone != "":
+            if self.isUtc:
+                utc = "--isUtc"
+            else:
+                utc = ""
+
+            retval += "# System timezone\ntimezone %s %s\n" %(utc, self.timezone)
+
+        return retval
+
+    def _getParser(self):
+        op = FC3_Timezone._getParser(self)
+        op.add_option("--utc", "--isUtc", dest="isUtc", action="store_true", default=False)
+        return op
diff --git a/mic/pykickstart/commands/updates.py b/mic/pykickstart/commands/updates.py
new file mode 100644 (file)
index 0000000..53ec49f
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class F7_Updates(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.url = kwargs.get("url", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.url == "floppy":
+            retval += "updates\n"
+        elif self.url != "":
+            retval += "updates %s\n" % self.url
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 1:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s only takes one argument") % "updates")
+        elif len(extra) == 0:
+            self.url = "floppy"
+        else:
+            self.url = extra[0]
+
+        return self
diff --git a/mic/pykickstart/commands/upgrade.py b/mic/pykickstart/commands/upgrade.py
new file mode 100644 (file)
index 0000000..a68a82d
--- /dev/null
@@ -0,0 +1,106 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_Upgrade(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.upgrade = kwargs.get("upgrade", None)
+        self.op = self._getParser()
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.upgrade is None:
+            return retval
+
+        if self.upgrade:
+            retval += "# Upgrade existing installation\nupgrade\n"
+        else:
+            retval += "# Install OS instead of upgrade\ninstall\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "upgrade")
+
+        if self.currentCmd == "upgrade":
+            self.upgrade = True
+        else:
+            self.upgrade = False
+
+        return self
+
+class F11_Upgrade(FC3_Upgrade):
+    removedKeywords = FC3_Upgrade.removedKeywords
+    removedAttrs = FC3_Upgrade.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_Upgrade.__init__(self, writePriority, *args, **kwargs)
+
+        self.op = self._getParser()
+        self.root_device = kwargs.get("root_device", None)
+
+    def __str__(self):
+        if self.upgrade and (self.root_device is not None):
+            retval = KickstartCommand.__str__(self)
+            retval += "# Upgrade existing installation\nupgrade --root-device=%s\n" % self.root_device
+        else:
+            retval = FC3_Upgrade.__str__(self)
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--root-device", dest="root_device")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 0:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "upgrade")
+
+        if (opts.root_device is not None) and (opts.root_device == ""):
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not accept empty parameter %s") % ("upgrade", "--root-device"))
+        else:
+            self.root_device = opts.root_device
+
+        if self.currentCmd == "upgrade":
+            self.upgrade = True
+        else:
+            self.upgrade = False
+
+        return self
diff --git a/mic/pykickstart/commands/user.py b/mic/pykickstart/commands/user.py
new file mode 100644 (file)
index 0000000..189dc75
--- /dev/null
@@ -0,0 +1,173 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.constants import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC6_UserData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.groups = kwargs.get("groups", [])
+        self.homedir = kwargs.get("homedir", "")
+        self.isCrypted = kwargs.get("isCrypted", False)
+        self.name = kwargs.get("name", "")
+        self.password = kwargs.get("password", "")
+        self.shell = kwargs.get("shell", "")
+        self.uid = kwargs.get("uid", None)
+
+    def __eq__(self, y):
+        return self.name == y.name
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+
+        if self.uid != "":
+            retval += "user"
+            retval += self._getArgsAsStr() + "\n"
+
+        return retval
+
+    def _getArgsAsStr(self):
+        retval = ""
+
+        if len(self.groups) > 0:
+            retval += " --groups=%s" % ",".join(self.groups)
+        if self.homedir:
+            retval += " --homedir=%s" % self.homedir
+        if self.name:
+            retval += " --name=%s" % self.name
+        if self.password:
+            retval += " --password=%s" % self.password
+        if self.isCrypted:
+            retval += " --iscrypted"
+        if self.shell:
+            retval += " --shell=%s" % self.shell
+        if self.uid:
+            retval += " --uid=%s" % self.uid
+
+        return retval
+
+class F8_UserData(FC6_UserData):
+    removedKeywords = FC6_UserData.removedKeywords
+    removedAttrs = FC6_UserData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        FC6_UserData.__init__(self, *args, **kwargs)
+        self.lock = kwargs.get("lock", False)
+
+    def _getArgsAsStr(self):
+        retval = FC6_UserData._getArgsAsStr(self)
+
+        if self.lock:
+            retval += " --lock"
+
+        return retval
+
+class F12_UserData(F8_UserData):
+    removedKeywords = F8_UserData.removedKeywords
+    removedAttrs = F8_UserData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        F8_UserData.__init__(self, *args, **kwargs)
+        self.gecos = kwargs.get("gecos", "")
+
+    def _getArgsAsStr(self):
+        retval = F8_UserData._getArgsAsStr(self)
+
+        if self.gecos:
+            retval += " --gecos=\"%s\"" % (self.gecos,)
+
+        return retval
+
+class FC6_User(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.userList = kwargs.get("userList", [])
+
+    def __str__(self):
+        retval = ""
+        for user in self.userList:
+            retval += user.__str__()
+
+        return retval
+
+    def _getParser(self):
+        def groups_cb (option, opt_str, value, parser):
+            for d in value.split(','):
+                parser.values.ensure_value(option.dest, []).append(d)
+
+        op = KSOptionParser()
+        op.add_option("--groups", dest="groups", action="callback",
+                      callback=groups_cb, nargs=1, type="string")
+        op.add_option("--homedir")
+        op.add_option("--iscrypted", dest="isCrypted", action="store_true",
+                      default=False)
+        op.add_option("--name", required=1)
+        op.add_option("--password")
+        op.add_option("--shell")
+        op.add_option("--uid", type="int")
+        return op
+
+    def parse(self, args):
+        ud = self.handler.UserData()
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToObj(self.op, opts, ud)
+        ud.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if ud in self.dataList():
+            warnings.warn(_("A user with the name %s has already been defined.") % ud.name)
+
+        return ud
+
+    def dataList(self):
+        return self.userList
+
+class F8_User(FC6_User):
+    removedKeywords = FC6_User.removedKeywords
+    removedAttrs = FC6_User.removedAttrs
+
+    def _getParser(self):
+        op = FC6_User._getParser(self)
+        op.add_option("--lock", action="store_true", default=False)
+        op.add_option("--plaintext", dest="isCrypted", action="store_false")
+        return op
+
+class F12_User(F8_User):
+    removedKeywords = F8_User.removedKeywords
+    removedAttrs = F8_User.removedAttrs
+
+    def _getParser(self):
+        op = F8_User._getParser(self)
+        op.add_option("--gecos", type="string")
+        return op
diff --git a/mic/pykickstart/commands/vnc.py b/mic/pykickstart/commands/vnc.py
new file mode 100644 (file)
index 0000000..200ccfb
--- /dev/null
@@ -0,0 +1,114 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+class FC3_Vnc(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.enabled = kwargs.get("enabled", False)
+        self.password = kwargs.get("password", "")
+        self.connect = kwargs.get("connect", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if not self.enabled:
+            return retval
+
+        retval += "vnc"
+
+        if self.connect != "":
+            retval += " --connect=%s" % self.connect
+        if self.password != "":
+            retval += " --password=%s" % self.password
+
+        return retval + "\n"
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--connect")
+        op.add_option("--password", dest="password")
+        return op
+
+    def parse(self, args):
+        self.enabled = True
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToSelf(self.op, opts)
+        return self
+
+class FC6_Vnc(FC3_Vnc):
+    removedKeywords = FC3_Vnc.removedKeywords + ["connect"]
+    removedAttrs = FC3_Vnc.removedAttrs + ["connect"]
+
+    def __init__(self, writePriority=0, host="", port="", *args, **kwargs):
+        FC3_Vnc.__init__(self, writePriority, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.host = kwargs.get("host", "")
+        self.port = kwargs.get("port", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if not self.enabled:
+            return retval
+
+        retval += "vnc"
+
+        if self.host != "":
+            retval += " --host=%s" % self.host
+
+            if self.port != "":
+                retval += " --port=%s" % self.port
+        if self.password != "":
+            retval += " --password=%s" % self.password
+
+        return retval + "\n"
+
+    def _getParser(self):
+        def connect_cb (option, opt_str, value, parser):
+            cargs = value.split(":")
+            parser.values.ensure_value("host", cargs[0])
+
+            if len(cargs) > 1:
+                parser.values.ensure_value("port", cargs[1])
+
+        op = FC3_Vnc._getParser(self)
+        op.add_option("--connect", action="callback", callback=connect_cb,
+                      nargs=1, type="string")
+        op.add_option("--host", dest="host")
+        op.add_option("--port", dest="port")
+        return op
+
+class F9_Vnc(FC6_Vnc):
+    removedKeywords = FC6_Vnc.removedKeywords
+    removedAttrs = FC6_Vnc.removedAttrs
+
+    def _getParser(self):
+        op = FC6_Vnc._getParser(self)
+        op.remove_option("--connect")
+        return op
diff --git a/mic/pykickstart/commands/volgroup.py b/mic/pykickstart/commands/volgroup.py
new file mode 100644 (file)
index 0000000..255c47f
--- /dev/null
@@ -0,0 +1,102 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_VolGroupData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.format = kwargs.get("format", True)
+        self.pesize = kwargs.get("pesize", 32768)
+        self.preexist = kwargs.get("preexist", False)
+        self.vgname = kwargs.get("vgname", "")
+        self.physvols = kwargs.get("physvols", [])
+
+    def __eq__(self, y):
+        return self.vgname == y.vgname
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "volgroup %s" % self.vgname
+
+        if not self.format:
+            retval += " --noformat"
+        if self.pesize != 0:
+            retval += " --pesize=%d" % self.pesize
+        if self.preexist:
+            retval += " --useexisting"
+
+        return retval + " " + " ".join(self.physvols) + "\n"
+
+class FC3_VolGroup(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=132, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.vgList = kwargs.get("vgList", [])
+
+    def __str__(self):
+        retval = ""
+        for vg in self.vgList:
+            retval += vg.__str__()
+
+        return retval
+
+    def _getParser(self):
+        # Have to be a little more complicated to set two values.
+        def vg_cb (option, opt_str, value, parser):
+            parser.values.format = False
+            parser.values.preexist = True
+
+        op = KSOptionParser()
+        op.add_option("--noformat", action="callback", callback=vg_cb,
+                      dest="format", default=True, nargs=0)
+        op.add_option("--pesize", dest="pesize", type="int", nargs=1,
+                      default=32768)
+        op.add_option("--useexisting", dest="preexist", action="store_true",
+                      default=False)
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        vg = self.handler.VolGroupData()
+        self._setToObj(self.op, opts, vg)
+        vg.lineno = self.lineno
+        vg.vgname = extra[0]
+        vg.physvols = extra[1:]
+
+        # Check for duplicates in the data list.
+        if vg in self.dataList():
+            warnings.warn(_("A volgroup with the name %s has already been defined.") % vg.vgname)
+
+        return vg
+
+    def dataList(self):
+        return self.vgList
diff --git a/mic/pykickstart/commands/xconfig.py b/mic/pykickstart/commands/xconfig.py
new file mode 100644 (file)
index 0000000..644ee86
--- /dev/null
@@ -0,0 +1,184 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.errors import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_XConfig(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.card = kwargs.get("card", "")
+        self.defaultdesktop = kwargs.get("defaultdesktop", "")
+        self.depth = kwargs.get("depth", 0)
+        self.hsync = kwargs.get("hsync", "")
+        self.monitor = kwargs.get("monitor", "")
+        self.noProbe = kwargs.get("noProbe", False)
+        self.resolution = kwargs.get("resolution", "")
+        self.server = kwargs.get("server", "")
+        self.startX = kwargs.get("startX", False)
+        self.videoRam = kwargs.get("videoRam", "")
+        self.vsync = kwargs.get("vsync", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.card != "":
+            retval += " --card=%s" % self.card
+        if self.defaultdesktop != "":
+            retval += " --defaultdesktop=%s" % self.defaultdesktop
+        if self.depth != 0:
+            retval += " --depth=%d" % self.depth
+        if self.hsync != "":
+            retval += " --hsync=%s" % self.hsync
+        if self.monitor != "":
+            retval += " --monitor=%s" % self.monitor
+        if self.noProbe:
+            retval += " --noprobe"
+        if self.resolution != "":
+            retval += " --resolution=%s" % self.resolution
+        if self.server != "":
+            retval += " --server=%s" % self.server
+        if self.startX:
+            retval += " --startxonboot"
+        if self.videoRam != "":
+            retval += " --videoram=%s" % self.videoRam
+        if self.vsync != "":
+            retval += " --vsync=%s" % self.vsync
+
+        if retval != "":
+            retval = "# X Window System configuration information\nxconfig %s\n" % retval
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--card")
+        op.add_option("--defaultdesktop")
+        op.add_option("--depth", action="store", type="int", nargs=1)
+        op.add_option("--hsync")
+        op.add_option("--monitor")
+        op.add_option("--noprobe", dest="noProbe", action="store_true",
+                      default=False)
+        op.add_option("--resolution")
+        op.add_option("--server")
+        op.add_option("--startxonboot", dest="startX", action="store_true",
+                      default=False)
+        op.add_option("--videoram", dest="videoRam")
+        op.add_option("--vsync")
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        if extra:
+            mapping = {"command": "xconfig", "options": extra}
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("Unexpected arguments to %(command)s command: %(options)s") % mapping)
+
+        self._setToSelf(self.op, opts)
+        return self
+
+class FC6_XConfig(FC3_XConfig):
+    removedKeywords = FC3_XConfig.removedKeywords + ["card", "hsync", "monitor", "noProbe", "vsync"]
+    removedAttrs = FC3_XConfig.removedAttrs + ["card", "hsync", "monitor", "noProbe", "vsync"]
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        FC3_XConfig.__init__(self, writePriority, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+        self.driver = kwargs.get("driver", "")
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if hasattr(self, "driver") and self.driver != "":
+            retval += " --driver=%s" % self.driver
+        if self.defaultdesktop != "":
+            retval += " --defaultdesktop=%s" % self.defaultdesktop
+        if self.depth != 0:
+            retval += " --depth=%d" % self.depth
+        if hasattr(self, "resolution") and self.resolution != "":
+            retval += " --resolution=%s" % self.resolution
+        if self.startX:
+            retval += " --startxonboot"
+        if hasattr(self, "videoRam") and self.videoRam != "":
+            retval += " --videoram=%s" % self.videoRam
+
+        if retval != "":
+            retval = "# X Window System configuration information\nxconfig %s\n" % retval
+
+        return retval
+
+    def _getParser(self):
+        op = FC3_XConfig._getParser(self)
+        op.add_option("--card", deprecated=1)
+        op.add_option("--driver", dest="driver")
+        op.add_option("--hsync", deprecated=1)
+        op.add_option("--monitor", deprecated=1)
+        op.add_option("--noprobe", deprecated=1)
+        op.add_option("--vsync", deprecated=1)
+        return op
+
+class F9_XConfig(FC6_XConfig):
+    removedKeywords = FC6_XConfig.removedKeywords
+    removedAttrs = FC6_XConfig.removedAttrs
+
+    def _getParser(self):
+        op = FC6_XConfig._getParser(self)
+        op.remove_option("--card")
+        op.remove_option("--hsync")
+        op.remove_option("--monitor")
+        op.remove_option("--noprobe")
+        op.remove_option("--vsync")
+        return op
+
+class F10_XConfig(F9_XConfig):
+    removedKeywords = F9_XConfig.removedKeywords + ["driver", "resolution", "videoRam"]
+    removedAttrs = F9_XConfig.removedAttrs + ["driver", "resolution", "videoRam"]
+
+    def __init__(self, writePriority=0, *args, **kwargs):
+        F9_XConfig.__init__(self, writePriority, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+    def _getParser(self):
+        op = F9_XConfig._getParser(self)
+        op.add_option("--driver", deprecated=1)
+        op.add_option("--depth", deprecated=1)
+        op.add_option("--resolution", deprecated=1)
+        op.add_option("--videoram", deprecated=1)
+        return op
+
+class F14_XConfig(F10_XConfig):
+    removedKeywords = F10_XConfig.removedKeywords
+    removedAttrs = F10_XConfig.removedAttrs
+
+    def _getParser(self):
+        op = F10_XConfig._getParser(self)
+        op.remove_option("--driver")
+        op.remove_option("--depth")
+        op.remove_option("--resolution")
+        op.remove_option("--videoram")
+        return op
diff --git a/mic/pykickstart/commands/zerombr.py b/mic/pykickstart/commands/zerombr.py
new file mode 100644 (file)
index 0000000..79555a9
--- /dev/null
@@ -0,0 +1,69 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+import warnings
+
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_ZeroMbr(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=110, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+        self.zerombr = kwargs.get("zerombr", False)
+
+    def __str__(self):
+        retval = KickstartCommand.__str__(self)
+
+        if self.zerombr:
+            retval += "# Clear the Master Boot Record\nzerombr\n"
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        return op
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 0:
+            warnings.warn(_("Ignoring deprecated option on line %s:  The zerombr command no longer takes any options.  In future releases, this will result in a fatal error from kickstart.  Please modify your kickstart file to remove any options.") % self.lineno, DeprecationWarning)
+
+        self.zerombr = True
+        return self
+
+class F9_ZeroMbr(FC3_ZeroMbr):
+    removedKeywords = FC3_ZeroMbr.removedKeywords
+    removedAttrs = FC3_ZeroMbr.removedAttrs
+
+    def parse(self, args):
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+
+        if len(extra) > 0:
+            raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("Kickstart command %s does not take any arguments") % "zerombr")
+
+        self.zerombr = True
+        return self
diff --git a/mic/pykickstart/commands/zfcp.py b/mic/pykickstart/commands/zfcp.py
new file mode 100644 (file)
index 0000000..1ed2694
--- /dev/null
@@ -0,0 +1,134 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.options import *
+
+import gettext
+import warnings
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class FC3_ZFCPData(BaseData):
+    removedKeywords = BaseData.removedKeywords
+    removedAttrs = BaseData.removedAttrs
+
+    def __init__(self, *args, **kwargs):
+        BaseData.__init__(self, *args, **kwargs)
+        self.devnum = kwargs.get("devnum", "")
+        self.wwpn = kwargs.get("wwpn", "")
+        self.fcplun = kwargs.get("fcplun", "")
+        self.scsiid = kwargs.get("scsiid", "")
+        self.scsilun = kwargs.get("scsilun", "")
+
+    def __eq__(self, y):
+        return self.devnum == y.devnum and self.wwpn == y.wwpn and \
+               self.fcplun == y.fcplun and self.scsiid == y.scsiid and \
+               self.scsilun == y.scsilun
+
+    def __str__(self):
+        retval = BaseData.__str__(self)
+        retval += "zfcp"
+
+        if self.devnum != "":
+            retval += " --devnum=%s" % self.devnum
+        if self.wwpn != "":
+            retval += " --wwpn=%s" % self.wwpn
+        if self.fcplun != "":
+            retval += " --fcplun=%s" % self.fcplun
+        if hasattr(self, "scsiid") and self.scsiid != "":
+            retval += " --scsiid=%s" % self.scsiid
+        if hasattr(self, "scsilun") and self.scsilun != "":
+            retval += " --scsilun=%s" % self.scsilun
+
+        return retval + "\n"
+
+class F12_ZFCPData(FC3_ZFCPData):
+    removedKeywords = FC3_ZFCPData.removedKeywords + ["scsiid", "scsilun"]
+    removedAttrs = FC3_ZFCPData.removedAttrs + ["scsiid", "scsilun"]
+
+    def __init__(self, *args, **kwargs):
+        FC3_ZFCPData.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+F14_ZFCPData = F12_ZFCPData
+
+class FC3_ZFCP(KickstartCommand):
+    removedKeywords = KickstartCommand.removedKeywords
+    removedAttrs = KickstartCommand.removedAttrs
+
+    def __init__(self, writePriority=71, *args, **kwargs):
+        KickstartCommand.__init__(self, writePriority, *args, **kwargs)
+        self.op = self._getParser()
+
+        self.zfcp = kwargs.get("zfcp", [])
+
+    def __str__(self):
+        retval = ""
+        for zfcp in self.zfcp:
+            retval += zfcp.__str__()
+
+        return retval
+
+    def _getParser(self):
+        op = KSOptionParser()
+        op.add_option("--devnum", dest="devnum", required=1)
+        op.add_option("--fcplun", dest="fcplun", required=1)
+        op.add_option("--scsiid", dest="scsiid", required=1)
+        op.add_option("--scsilun", dest="scsilun", required=1)
+        op.add_option("--wwpn", dest="wwpn", required=1)
+        return op
+
+    def parse(self, args):
+        zd = self.handler.ZFCPData()
+        (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+        self._setToObj(self.op, opts, zd)
+        zd.lineno = self.lineno
+
+        # Check for duplicates in the data list.
+        if zd in self.dataList():
+            warnings.warn(_("A zfcp with this information has already been defined."))
+
+        return zd
+
+    def dataList(self):
+        return self.zfcp
+
+class F12_ZFCP(FC3_ZFCP):
+    removedKeywords = FC3_ZFCP.removedKeywords
+    removedAttrs = FC3_ZFCP.removedAttrs + ["scsiid", "scsilun"]
+
+    def __init__(self, *args, **kwargs):
+        FC3_ZFCP.__init__(self, *args, **kwargs)
+        self.deleteRemovedAttrs()
+
+    def _getParser(self):
+        op = FC3_ZFCP._getParser(self)
+        op.add_option("--scsiid", deprecated=1)
+        op.add_option("--scsilun", deprecated=1)
+        return op
+
+class F14_ZFCP(F12_ZFCP):
+    removedKeywords = F12_ZFCP.removedKeywords
+    removedAttrs = F12_ZFCP.removedAttrs
+
+    def _getParser(self):
+        op = F12_ZFCP._getParser(self)
+        op.remove_option("--scsiid")
+        op.remove_option("--scsilun")
+        return op
diff --git a/mic/pykickstart/constants.py b/mic/pykickstart/constants.py
new file mode 100644 (file)
index 0000000..5e12fc8
--- /dev/null
@@ -0,0 +1,57 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005-2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+CLEARPART_TYPE_LINUX = 0
+CLEARPART_TYPE_ALL = 1
+CLEARPART_TYPE_NONE = 2
+
+DISPLAY_MODE_CMDLINE = 0
+DISPLAY_MODE_GRAPHICAL = 1
+DISPLAY_MODE_TEXT = 2
+
+FIRSTBOOT_DEFAULT = 0
+FIRSTBOOT_SKIP = 1
+FIRSTBOOT_RECONFIG = 2
+
+KS_MISSING_PROMPT = 0
+KS_MISSING_IGNORE = 1
+
+SELINUX_DISABLED = 0
+SELINUX_ENFORCING = 1
+SELINUX_PERMISSIVE = 2
+
+KS_SCRIPT_PRE = 0
+KS_SCRIPT_POST = 1
+KS_SCRIPT_TRACEBACK = 2
+
+KS_WAIT = 0
+KS_REBOOT = 1
+KS_SHUTDOWN = 2
+
+KS_INSTKEY_SKIP = -99
+
+BOOTPROTO_DHCP = "dhcp"
+BOOTPROTO_BOOTP = "bootp"
+BOOTPROTO_STATIC = "static"
+BOOTPROTO_QUERY = "query"
+BOOTPROTO_IBFT = "ibft"
+
+GROUP_REQUIRED = 0
+GROUP_DEFAULT = 1
+GROUP_ALL = 2
diff --git a/mic/pykickstart/errors.py b/mic/pykickstart/errors.py
new file mode 100644 (file)
index 0000000..a234d99
--- /dev/null
@@ -0,0 +1,103 @@
+#
+# errors.py:  Kickstart error handling.
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+Error handling classes and functions.
+
+This module exports a single function:
+
+    formatErrorMsg - Properly formats an error message.
+
+It also exports several exception classes:
+
+    KickstartError - A generic exception class.
+
+    KickstartParseError - An exception for errors relating to parsing.
+
+    KickstartValueError - An exception for errors relating to option
+                          processing.
+
+    KickstartVersionError - An exception for errors relating to unsupported
+                            syntax versions.
+"""
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+def formatErrorMsg(lineno, msg=""):
+    """Properly format the error message msg for inclusion in an exception."""
+    if msg != "":
+        mapping = {"lineno": lineno, "msg": msg}
+        return _("The following problem occurred on line %(lineno)s of the kickstart file:\n\n%(msg)s\n") % mapping
+    else:
+        return _("There was a problem reading from line %s of the kickstart file") % lineno
+
+class KickstartError(Exception):
+    """A generic exception class for unspecific error conditions."""
+    def __init__(self, val = ""):
+        """Create a new KickstartError exception instance with the descriptive
+           message val.  val should be the return value of formatErrorMsg.
+        """
+        Exception.__init__(self)
+        self.value = val
+
+    def __str__ (self):
+        return self.value
+
+class KickstartParseError(KickstartError):
+    """An exception class for errors when processing the input file, such as
+       unknown options, commands, or sections.
+    """
+    def __init__(self, msg):
+        """Create a new KickstartParseError exception instance with the
+           descriptive message val.  val should be the return value of
+           formatErrorMsg.
+        """
+        KickstartError.__init__(self, msg)
+
+    def __str__(self):
+        return self.value
+
+class KickstartValueError(KickstartError):
+    """An exception class for errors when processing arguments to commands,
+       such as too many arguments, too few arguments, or missing required
+       arguments.
+    """
+    def __init__(self, msg):
+        """Create a new KickstartValueError exception instance with the
+           descriptive message val.  val should be the return value of
+           formatErrorMsg.
+        """
+        KickstartError.__init__(self, msg)
+
+    def __str__ (self):
+        return self.value
+
+class KickstartVersionError(KickstartError):
+    """An exception class for errors related to using an incorrect version of
+       kickstart syntax.
+    """
+    def __init__(self, msg):
+        """Create a new KickstartVersionError exception instance with the
+           descriptive message val.  val should be the return value of
+           formatErrorMsg.
+        """
+        KickstartError.__init__(self, msg)
+
+    def __str__ (self):
+        return self.value
diff --git a/mic/pykickstart/handlers/__init__.py b/mic/pykickstart/handlers/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/mic/pykickstart/handlers/control.py b/mic/pykickstart/handlers/control.py
new file mode 100644 (file)
index 0000000..d8c8f2b
--- /dev/null
@@ -0,0 +1,1307 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.version import *
+from pykickstart.commands import *
+
+# This map is keyed on kickstart syntax version as provided by
+# pykickstart.version.  Within each sub-dict is a mapping from command name
+# to the class that handles it.  This is an onto mapping - that is, multiple
+# command names can map to the same class.  However, the Handler will ensure
+# that only one instance of each class ever exists.
+commandMap = {
+    FC3: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC3_Bootloader,
+        "cdrom": method.FC3_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "driverdisk": driverdisk.FC3_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC3_Reboot,
+        "harddrive": method.FC3_Method,
+        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC3_LangSupport,
+        "lilo": bootloader.FC3_Bootloader,
+        "lilocheck": lilocheck.FC3_LiloCheck,
+        "logvol": logvol.FC3_LogVol,
+        "monitor": monitor.FC3_Monitor,
+        "mouse": mouse.FC3_Mouse,
+        "network": network.FC3_Network,
+        "nfs": method.FC3_Method,
+        "part": partition.FC3_Partition,
+        "partition": partition.FC3_Partition,
+        "poweroff": reboot.FC3_Reboot,
+        "raid": raid.FC3_Raid,
+        "reboot": reboot.FC3_Reboot,
+        "rootpw": rootpw.FC3_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "shutdown": reboot.FC3_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC3_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC3_Method,
+        "vnc": vnc.FC3_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC3_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on fc3
+    FC4: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC4_Bootloader,
+        "cdrom": method.FC3_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC3_Reboot,
+        "harddrive": method.FC3_Method,
+        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC3_LangSupport,
+        "logvol": logvol.FC4_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC3_Monitor,
+        "mouse": mouse.FC3_Mouse,
+        "network": network.FC4_Network,
+        "nfs": method.FC3_Method,
+        "part": partition.FC4_Partition,
+        "partition": partition.FC4_Partition,
+        "poweroff": reboot.FC3_Reboot,
+        "raid": raid.FC4_Raid,
+        "reboot": reboot.FC3_Reboot,
+        "rootpw": rootpw.FC3_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "shutdown": reboot.FC3_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC3_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC3_Method,
+        "vnc": vnc.FC3_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC3_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on fc4
+    FC5: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC4_Bootloader,
+        "cdrom": method.FC3_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC3_Reboot,
+        "harddrive": method.FC3_Method,
+        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC5_LangSupport,
+        "logvol": logvol.FC4_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC3_Monitor,
+        "mouse": mouse.FC3_Mouse,
+        "network": network.FC4_Network,
+        "nfs": method.FC3_Method,
+        "part": partition.FC4_Partition,
+        "partition": partition.FC4_Partition,
+        "poweroff": reboot.FC3_Reboot,
+        "raid": raid.FC5_Raid,
+        "reboot": reboot.FC3_Reboot,
+        "rootpw": rootpw.FC3_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "shutdown": reboot.FC3_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC3_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC3_Method,
+        "vnc": vnc.FC3_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC3_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on fc5
+    FC6: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC4_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.FC6_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC5_LangSupport,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.FC4_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC6_Monitor,
+        "mouse": mouse.FC3_Mouse,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.FC6_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.FC4_Partition,
+        "partition": partition.FC4_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.FC5_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.FC6_Repo,
+        "rootpw": rootpw.FC3_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "user": user.FC6_User,
+        "url": method.FC6_Method,
+        "vnc": vnc.FC6_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC6_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on fc6
+    F7: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC4_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.FC6_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.FC4_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC6_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.FC6_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.FC4_Partition,
+        "partition": partition.FC4_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F7_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.FC6_Repo,
+        "rootpw": rootpw.FC3_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC6_Method,
+        "user": user.FC6_User,
+        "vnc": vnc.FC6_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC6_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on f7
+    F8: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F8_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.FC6_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.FC4_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC6_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F8_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.FC4_Partition,
+        "partition": partition.FC4_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F7_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F8_Repo,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC6_Method,
+        "user": user.F8_User,
+        "vnc": vnc.FC6_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC6_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on f8
+    F9: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F9_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F8_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.F9_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.FC6_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F9_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC6_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.F9_Partition,
+        "partition": partition.F9_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F9_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F8_Repo,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC6_Method,
+        "user": user.F8_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F9_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on f9
+    F10: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F9_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F8_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.F10_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F9_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.F9_Partition,
+        "partition": partition.F9_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F9_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F8_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC6_Method,
+        "user": user.F8_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F10_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on f10
+    F11: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F9_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F8_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.F10_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F9_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.F11_Partition,
+        "partition": partition.F11_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F9_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F11_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.FC6_Method,
+        "user": user.F8_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F10_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on f11
+    F12: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F12_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F12_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F12_DriverDisk,
+        "fcoe": fcoe.F12_Fcoe,
+        "firewall": firewall.F10_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "group": group.F12_Group,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F12_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.F12_Partition,
+        "partition": partition.F12_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F12_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F11_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.FC6_Method,
+        "user": user.F12_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F10_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.F12_ZFCP,
+    },
+
+    # based on f12
+    F13: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F12_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F12_Bootloader,
+        "cdrom": method.F13_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F12_DriverDisk,
+        "fcoe": fcoe.F13_Fcoe,
+        "firewall": firewall.F10_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "group": group.F12_Group,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.F13_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F12_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.F13_Method,
+        "part": partition.F12_Partition,
+        "partition": partition.F12_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F13_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F13_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "sshpw": sshpw.F13_SshPw,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.F13_Method,
+        "user": user.F12_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F10_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.F12_ZFCP,
+    },
+
+    # based on f13
+    F14: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F12_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F14_Bootloader,
+        "cdrom": method.F14_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F14_DriverDisk,
+        "fcoe": fcoe.F13_Fcoe,
+        "firewall": firewall.F14_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "group": group.F12_Group,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.F14_Method,
+        "ignoredisk": ignoredisk.F14_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "interactive": interactive.F14_Interactive,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F14_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.F14_Method,
+        "part": partition.F14_Partition,
+        "partition": partition.F14_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F14_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F14_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "sshpw": sshpw.F13_SshPw,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.F14_Method,
+        "user": user.F12_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F14_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.F14_ZFCP,
+    },
+
+    # based on f14
+    F15: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F12_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F15_Bootloader,
+        "cdrom": method.F14_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F14_DriverDisk,
+        "fcoe": fcoe.F13_Fcoe,
+        "firewall": firewall.F14_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "group": group.F12_Group,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.F14_Method,
+        "ignoredisk": ignoredisk.F14_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F15_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F9_Network,
+        "nfs": method.F14_Method,
+        "part": partition.F14_Partition,
+        "partition": partition.F14_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F15_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F15_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "sshpw": sshpw.F13_SshPw,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.F14_Method,
+        "user": user.F12_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F14_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.F14_ZFCP,
+    },
+
+    # based on f15
+    F16: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F12_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.F15_Bootloader,
+        "cdrom": method.F14_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F14_DriverDisk,
+        "fcoe": fcoe.F13_Fcoe,
+        "firewall": firewall.F14_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "group": group.F12_Group,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.F14_Method,
+        "ignoredisk": ignoredisk.F14_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F15_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.F16_Network,
+        "nfs": method.F14_Method,
+        "part": partition.F14_Partition,
+        "partition": partition.F14_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F15_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.F15_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "sshpw": sshpw.F13_SshPw,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.F14_Method,
+        "user": user.F12_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F14_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.F14_ZFCP,
+    },
+
+    # based on fc1
+    RHEL3: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC3_Bootloader,
+        "cdrom": method.FC3_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "driverdisk": driverdisk.FC3_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC3_Reboot,
+        "harddrive": method.FC3_Method,
+        "ignoredisk": ignoredisk.FC3_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC3_LangSupport,
+        "lilo": bootloader.FC3_Bootloader,
+        "lilocheck": lilocheck.FC3_LiloCheck,
+        "logvol": logvol.FC3_LogVol,
+        "monitor": monitor.FC3_Monitor,
+        "mouse": mouse.RHEL3_Mouse,
+        "network": network.FC3_Network,
+        "nfs": method.FC3_Method,
+        "part": partition.FC3_Partition,
+        "partition": partition.FC3_Partition,
+        "poweroff": reboot.FC3_Reboot,
+        "raid": raid.FC3_Raid,
+        "reboot": reboot.FC3_Reboot,
+        "rootpw": rootpw.FC3_RootPw,
+        "shutdown": reboot.FC3_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC3_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC3_Method,
+        "vnc": vnc.FC3_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC3_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+    },
+
+    # based on fc3
+    RHEL4: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.FC3_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.FC3_Bootloader,
+        "cdrom": method.FC3_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "driverdisk": driverdisk.FC4_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC3_Reboot,
+        "harddrive": method.FC3_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC3_LangSupport,
+        "lilo": bootloader.FC3_Bootloader,
+        "lilocheck": lilocheck.FC3_LiloCheck,
+        "logvol": logvol.FC3_LogVol,
+        "monitor": monitor.FC3_Monitor,
+        "mouse": mouse.FC3_Mouse,
+        "network": network.RHEL4_Network,
+        "nfs": method.FC3_Method,
+        "part": partition.FC3_Partition,
+        "partition": partition.FC3_Partition,
+        "poweroff": reboot.FC3_Reboot,
+        "raid": raid.FC3_Raid,
+        "reboot": reboot.FC3_Reboot,
+        "rootpw": rootpw.FC3_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "shutdown": reboot.FC3_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC3_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "url": method.FC3_Method,
+        "vnc": vnc.FC3_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC3_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on fc6
+    RHEL5: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F9_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.RHEL5_Bootloader,
+        "cdrom": method.FC6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.FC3_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F12_DriverDisk,
+        "firewall": firewall.FC3_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.FC6_Method,
+        "ignoredisk": ignoredisk.F8_IgnoreDisk,
+        "install": upgrade.FC3_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.FC6_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "key": key.RHEL5_Key,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "langsupport": langsupport.FC5_LangSupport,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.RHEL5_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.FC6_Monitor,
+        "mouse": mouse.FC3_Mouse,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.RHEL5_Network,
+        "nfs": method.FC6_Method,
+        "part": partition.RHEL5_Partition,
+        "partition": partition.RHEL5_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.RHEL5_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.FC6_Repo,
+        "rootpw": rootpw.FC3_RootPw,
+        "services": services.FC6_Services,
+        "selinux": selinux.FC3_SELinux,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "upgrade": upgrade.FC3_Upgrade,
+        "user": user.FC6_User,
+        "url": method.FC6_Method,
+        "vnc": vnc.FC6_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.FC6_XConfig,
+        "zerombr": zerombr.FC3_ZeroMbr,
+        "zfcp": zfcp.FC3_ZFCP,
+    },
+
+    # based on f13ish
+    RHEL6: {
+        "auth": authconfig.FC3_Authconfig,
+        "authconfig": authconfig.FC3_Authconfig,
+        "autopart": autopart.F12_AutoPart,
+        "autostep": autostep.FC3_AutoStep,
+        "bootloader": bootloader.RHEL6_Bootloader,
+        "cdrom": method.RHEL6_Method,
+        "clearpart": clearpart.FC3_ClearPart,
+        "cmdline": displaymode.FC3_DisplayMode,
+        "device": device.F8_Device,
+        "deviceprobe": deviceprobe.FC3_DeviceProbe,
+        "dmraid": dmraid.FC6_DmRaid,
+        "driverdisk": driverdisk.F12_DriverDisk,
+        "fcoe": fcoe.F13_Fcoe,
+        "firewall": firewall.F10_Firewall,
+        "firstboot": firstboot.FC3_Firstboot,
+        "graphical": displaymode.FC3_DisplayMode,
+        "group": group.F12_Group,
+        "halt": reboot.FC6_Reboot,
+        "harddrive": method.RHEL6_Method,
+        "ignoredisk": ignoredisk.RHEL6_IgnoreDisk,
+        "install": upgrade.F11_Upgrade,
+        "interactive": interactive.FC3_Interactive,
+        "iscsi": iscsi.F10_Iscsi,
+        "iscsiname": iscsiname.FC6_IscsiName,
+        "keyboard": keyboard.FC3_Keyboard,
+        "lang": lang.FC3_Lang,
+        "logging": logging.FC6_Logging,
+        "logvol": logvol.F12_LogVol,
+        "mediacheck": mediacheck.FC4_MediaCheck,
+        "monitor": monitor.F10_Monitor,
+        "multipath": multipath.FC6_MultiPath,
+        "network": network.RHEL6_Network,
+        "nfs": method.RHEL6_Method,
+        "part": partition.F12_Partition,
+        "partition": partition.F12_Partition,
+        "poweroff": reboot.FC6_Reboot,
+        "raid": raid.F13_Raid,
+        "reboot": reboot.FC6_Reboot,
+        "repo": repo.RHEL6_Repo,
+        "rescue": rescue.F10_Rescue,
+        "rootpw": rootpw.F8_RootPw,
+        "selinux": selinux.FC3_SELinux,
+        "services": services.FC6_Services,
+        "shutdown": reboot.FC6_Reboot,
+        "skipx": skipx.FC3_SkipX,
+        "sshpw": sshpw.F13_SshPw,
+        "text": displaymode.FC3_DisplayMode,
+        "timezone": timezone.FC6_Timezone,
+        "updates": updates.F7_Updates,
+        "upgrade": upgrade.F11_Upgrade,
+        "url": method.RHEL6_Method,
+        "user": user.F12_User,
+        "vnc": vnc.F9_Vnc,
+        "volgroup": volgroup.FC3_VolGroup,
+        "xconfig": xconfig.F10_XConfig,
+        "zerombr": zerombr.F9_ZeroMbr,
+        "zfcp": zfcp.F12_ZFCP,
+    }
+}
+
+# This map is keyed on kickstart syntax version as provided by
+# pykickstart.version.  Within each sub-dict is a mapping from a data object
+# name to the class that provides it.  This is a bijective mapping - that is,
+# each name maps to exactly one data class and all data classes have a name.
+# More than one instance of each class is allowed to exist, however.
+dataMap = {
+    FC3: {
+        "DriverDiskData": driverdisk.FC3_DriverDiskData,
+        "LogVolData": logvol.FC3_LogVolData,
+        "NetworkData": network.FC3_NetworkData,
+        "PartData": partition.FC3_PartData,
+        "RaidData": raid.FC3_RaidData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    FC4: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "LogVolData": logvol.FC4_LogVolData,
+        "NetworkData": network.FC4_NetworkData,
+        "PartData": partition.FC4_PartData,
+        "RaidData": raid.FC4_RaidData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    FC5: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "LogVolData": logvol.FC4_LogVolData,
+        "NetworkData": network.FC4_NetworkData,
+        "PartData": partition.FC4_PartData,
+        "RaidData": raid.FC5_RaidData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    FC6: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.FC6_IscsiData,
+        "LogVolData": logvol.FC4_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.FC6_NetworkData,
+        "PartData": partition.FC4_PartData,
+        "RaidData": raid.FC5_RaidData,
+        "RepoData": repo.FC6_RepoData,
+        "UserData": user.FC6_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    F7: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.FC6_IscsiData,
+        "LogVolData": logvol.FC4_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.FC6_NetworkData,
+        "PartData": partition.FC4_PartData,
+        "RaidData": raid.F7_RaidData,
+        "RepoData": repo.FC6_RepoData,
+        "UserData": user.FC6_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    F8: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.FC6_IscsiData,
+        "LogVolData": logvol.FC4_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.FC4_PartData,
+        "RaidData": raid.F7_RaidData,
+        "RepoData": repo.F8_RepoData,
+        "UserData": user.F8_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    F9: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.FC6_IscsiData,
+        "LogVolData": logvol.F9_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F9_PartData,
+        "RaidData": raid.F9_RaidData,
+        "RepoData": repo.F8_RepoData,
+        "UserData": user.F8_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    F10: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F9_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F9_PartData,
+        "RaidData": raid.F9_RaidData,
+        "RepoData": repo.F8_RepoData,
+        "UserData": user.F8_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    F11: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F9_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F11_PartData,
+        "RaidData": raid.F9_RaidData,
+        "RepoData": repo.F11_RepoData,
+        "UserData": user.F8_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    F12: {
+        "DriverDiskData": driverdisk.F12_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "FcoeData": fcoe.F12_FcoeData,
+        "GroupData": group.F12_GroupData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F12_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F12_PartData,
+        "RaidData": raid.F12_RaidData,
+        "RepoData": repo.F11_RepoData,
+        "UserData": user.F12_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.F12_ZFCPData,
+    },
+    F13: {
+        "DriverDiskData": driverdisk.F12_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "FcoeData": fcoe.F13_FcoeData,
+        "GroupData": group.F12_GroupData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F12_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F12_PartData,
+        "RaidData": raid.F13_RaidData,
+        "RepoData": repo.F13_RepoData,
+        "SshPwData": sshpw.F13_SshPwData,
+        "UserData": user.F12_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.F12_ZFCPData,
+    },
+    F14: {
+        "DriverDiskData": driverdisk.F14_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "FcoeData": fcoe.F13_FcoeData,
+        "GroupData": group.F12_GroupData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F14_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F14_PartData,
+        "RaidData": raid.F14_RaidData,
+        "RepoData": repo.F14_RepoData,
+        "SshPwData": sshpw.F13_SshPwData,
+        "UserData": user.F12_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.F14_ZFCPData,
+    },
+    F15: {
+        "DriverDiskData": driverdisk.F14_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "FcoeData": fcoe.F13_FcoeData,
+        "GroupData": group.F12_GroupData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F15_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F8_NetworkData,
+        "PartData": partition.F14_PartData,
+        "RaidData": raid.F15_RaidData,
+        "RepoData": repo.F15_RepoData,
+        "SshPwData": sshpw.F13_SshPwData,
+        "UserData": user.F12_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.F14_ZFCPData,
+    },
+    F16: {
+        "DriverDiskData": driverdisk.F14_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "FcoeData": fcoe.F13_FcoeData,
+        "GroupData": group.F12_GroupData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F15_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.F16_NetworkData,
+        "PartData": partition.F14_PartData,
+        "RaidData": raid.F15_RaidData,
+        "RepoData": repo.F15_RepoData,
+        "SshPwData": sshpw.F13_SshPwData,
+        "UserData": user.F12_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.F14_ZFCPData,
+    },
+    RHEL3: {
+        "DriverDiskData": driverdisk.FC3_DriverDiskData,
+        "LogVolData": logvol.FC3_LogVolData,
+        "NetworkData": network.RHEL4_NetworkData,
+        "PartData": partition.FC3_PartData,
+        "RaidData": raid.FC3_RaidData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    RHEL4: {
+        "DriverDiskData": driverdisk.FC4_DriverDiskData,
+        "LogVolData": logvol.FC3_LogVolData,
+        "NetworkData": network.RHEL4_NetworkData,
+        "PartData": partition.FC3_PartData,
+        "RaidData": raid.FC3_RaidData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    RHEL5: {
+        "DriverDiskData": driverdisk.F12_DriverDiskData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "IscsiData": iscsi.FC6_IscsiData,
+        "LogVolData": logvol.RHEL5_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.FC6_NetworkData,
+        "PartData": partition.RHEL5_PartData,
+        "RaidData": raid.RHEL5_RaidData,
+        "RepoData": repo.FC6_RepoData,
+        "UserData": user.FC6_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.FC3_ZFCPData,
+    },
+    RHEL6: {
+        "DriverDiskData": driverdisk.F12_DriverDiskData,
+        "DeviceData": device.F8_DeviceData,
+        "DmRaidData": dmraid.FC6_DmRaidData,
+        "FcoeData": fcoe.F13_FcoeData,
+        "GroupData": group.F12_GroupData,
+        "IscsiData": iscsi.F10_IscsiData,
+        "LogVolData": logvol.F12_LogVolData,
+        "MultiPathData": multipath.FC6_MultiPathData,
+        "NetworkData": network.RHEL6_NetworkData,
+        "PartData": partition.F12_PartData,
+        "RaidData": raid.F13_RaidData,
+        "RepoData": repo.RHEL6_RepoData,
+        "SshPwData": sshpw.F13_SshPwData,
+        "UserData": user.F12_UserData,
+        "VolGroupData": volgroup.FC3_VolGroupData,
+        "ZFCPData": zfcp.F12_ZFCPData,
+    }
+}
diff --git a/mic/pykickstart/handlers/f10.py b/mic/pykickstart/handlers/f10.py
new file mode 100644 (file)
index 0000000..17c8211
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F10Handler(BaseHandler):
+    version = F10
diff --git a/mic/pykickstart/handlers/f11.py b/mic/pykickstart/handlers/f11.py
new file mode 100644 (file)
index 0000000..d21aee3
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2008 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F11Handler(BaseHandler):
+    version = F11
diff --git a/mic/pykickstart/handlers/f12.py b/mic/pykickstart/handlers/f12.py
new file mode 100644 (file)
index 0000000..cea3ece
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F12Handler(BaseHandler):
+    version = F12
diff --git a/mic/pykickstart/handlers/f13.py b/mic/pykickstart/handlers/f13.py
new file mode 100644 (file)
index 0000000..b94c738
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F13Handler(BaseHandler):
+    version = F13
diff --git a/mic/pykickstart/handlers/f14.py b/mic/pykickstart/handlers/f14.py
new file mode 100644 (file)
index 0000000..478f75d
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2010 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F14Handler(BaseHandler):
+    version = F14
diff --git a/mic/pykickstart/handlers/f15.py b/mic/pykickstart/handlers/f15.py
new file mode 100644 (file)
index 0000000..12aecb4
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2010 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F15Handler(BaseHandler):
+    version = F15
diff --git a/mic/pykickstart/handlers/f16.py b/mic/pykickstart/handlers/f16.py
new file mode 100644 (file)
index 0000000..3c52f8d
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2011 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F16Handler(BaseHandler):
+    version = F16
diff --git a/mic/pykickstart/handlers/f7.py b/mic/pykickstart/handlers/f7.py
new file mode 100644 (file)
index 0000000..5e856ea
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F7Handler(BaseHandler):
+    version = F7
diff --git a/mic/pykickstart/handlers/f8.py b/mic/pykickstart/handlers/f8.py
new file mode 100644 (file)
index 0000000..1a97881
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F8Handler(BaseHandler):
+    version = F8
diff --git a/mic/pykickstart/handlers/f9.py b/mic/pykickstart/handlers/f9.py
new file mode 100644 (file)
index 0000000..116f1b5
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class F9Handler(BaseHandler):
+    version = F9
diff --git a/mic/pykickstart/handlers/fc3.py b/mic/pykickstart/handlers/fc3.py
new file mode 100644 (file)
index 0000000..a115dc2
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class FC3Handler(BaseHandler):
+    version = FC3
diff --git a/mic/pykickstart/handlers/fc4.py b/mic/pykickstart/handlers/fc4.py
new file mode 100644 (file)
index 0000000..fd47b73
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class FC4Handler(BaseHandler):
+    version = FC4
diff --git a/mic/pykickstart/handlers/fc5.py b/mic/pykickstart/handlers/fc5.py
new file mode 100644 (file)
index 0000000..bcdc29d
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class FC5Handler(BaseHandler):
+    version = FC5
diff --git a/mic/pykickstart/handlers/fc6.py b/mic/pykickstart/handlers/fc6.py
new file mode 100644 (file)
index 0000000..c83a929
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class FC6Handler(BaseHandler):
+    version = FC6
diff --git a/mic/pykickstart/handlers/rhel3.py b/mic/pykickstart/handlers/rhel3.py
new file mode 100644 (file)
index 0000000..131763c
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class RHEL3Handler(BaseHandler):
+    version = RHEL3
diff --git a/mic/pykickstart/handlers/rhel4.py b/mic/pykickstart/handlers/rhel4.py
new file mode 100644 (file)
index 0000000..3496c43
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class RHEL4Handler(BaseHandler):
+    version = RHEL4
diff --git a/mic/pykickstart/handlers/rhel5.py b/mic/pykickstart/handlers/rhel5.py
new file mode 100644 (file)
index 0000000..abb7a8d
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class RHEL5Handler(BaseHandler):
+    version = RHEL5
diff --git a/mic/pykickstart/handlers/rhel6.py b/mic/pykickstart/handlers/rhel6.py
new file mode 100644 (file)
index 0000000..7202419
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2010 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+from pykickstart.base import *
+from pykickstart.version import *
+
+class RHEL6Handler(BaseHandler):
+    version = RHEL6
diff --git a/mic/pykickstart/ko.py b/mic/pykickstart/ko.py
new file mode 100644 (file)
index 0000000..1350d19
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2009 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+Base classes for internal pykickstart use.
+
+The module exports the following important classes:
+
+    KickstartObject - The base class for all classes in pykickstart
+"""
+
+class KickstartObject(object):
+    """The base class for all other classes in pykickstart."""
+    def __init__(self, *args, **kwargs):
+        """Create a new KickstartObject instance.  All other classes in
+           pykickstart should be derived from this one.  Instance attributes:
+        """
+        pass
+
+    def __str__(self):
+        return ""
diff --git a/mic/pykickstart/options.py b/mic/pykickstart/options.py
new file mode 100644 (file)
index 0000000..341c5d7
--- /dev/null
@@ -0,0 +1,204 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+Specialized option handling.
+
+This module exports two classes:
+
+    KSOptionParser - A specialized subclass of OptionParser to be used
+                     in BaseHandler subclasses.
+
+    KSOption - A specialized subclass of Option.
+"""
+import warnings
+from copy import copy
+from optparse import *
+
+from constants import *
+from errors import *
+from version import *
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+class KSOptionParser(OptionParser):
+    """A specialized subclass of optparse.OptionParser to handle extra option
+       attribute checking, work error reporting into the KickstartParseError
+       framework, and to turn off the default help.
+    """
+    def exit(self, status=0, msg=None):
+        pass
+
+    def error(self, msg):
+        if self.lineno != None:
+            raise KickstartParseError, formatErrorMsg(self.lineno, msg=msg)
+        else:
+            raise KickstartParseError, msg
+
+    def keys(self):
+        retval = []
+
+        for opt in self.option_list:
+            if opt not in retval:
+                retval.append(opt.dest)
+
+        return retval
+
+    def _init_parsing_state (self):
+        OptionParser._init_parsing_state(self)
+        self.option_seen = {}
+
+    def check_values (self, values, args):
+        def seen(self, option):
+            return self.option_seen.has_key(option)
+
+        def usedTooNew(self, option):
+            return option.introduced and option.introduced > self.version
+
+        def usedDeprecated(self, option):
+            return option.deprecated
+
+        def usedRemoved(self, option):
+            return option.removed and option.removed <= self.version
+
+        for option in filter(lambda o: isinstance(o, Option), self.option_list):
+            if option.required and not seen(self, option):
+                raise KickstartValueError, formatErrorMsg(self.lineno, _("Option %s is required") % option)
+            elif seen(self, option) and usedTooNew(self, 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(self, option) and usedRemoved(self, 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(self, option) and usedDeprecated(self, option):
+                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_args(self, *args, **kwargs):
+        if kwargs.has_key("lineno"):
+            self.lineno = kwargs.pop("lineno")
+
+        return OptionParser.parse_args(self, **kwargs)
+
+    def __init__(self, mapping=None, version=None):
+        """Create a new KSOptionParser instance.  Each KickstartCommand
+           subclass should create one instance of KSOptionParser, providing
+           at least the lineno attribute.  mapping and version are not required.
+           Instance attributes:
+
+           mapping -- A mapping from option strings to different values.
+           version -- The version of the kickstart syntax we are checking
+                      against.
+        """
+        OptionParser.__init__(self, option_class=KSOption,
+                              add_help_option=False,
+                              conflict_handler="resolve")
+        if mapping is None:
+            self.map = {}
+        else:
+            self.map = mapping
+
+        self.lineno = None
+        self.option_seen = {}
+        self.version = version
+
+def _check_ksboolean(option, opt, value):
+    if value.lower() in ("on", "yes", "true", "1"):
+        return True
+    elif value.lower() in ("off", "no", "false", "0"):
+        return False
+    else:
+        mapping = {"opt": opt, "value": value}
+        raise OptionValueError(_("Option %(opt)s: invalid boolean value: %(value)r") % mapping)
+
+def _check_string(option, opt, value):
+    if len(value) > 2 and value.startswith("--"):
+        mapping = {"opt": opt, "value": value}
+        raise OptionValueError(_("Option %(opt)s: invalid string value: %(value)r") % mapping)
+    else:
+        return value
+
+# Creates a new Option class that supports several new attributes:
+# - required:  any option with this attribute must be supplied or an exception
+#              is thrown
+# - introduced:  the kickstart syntax version that this option first appeared
+#                in - an exception will be raised if the option is used and
+#                the specified syntax version is less than the value of this
+#                attribute
+# - deprecated:  the kickstart syntax version that this option was deprecated
+#                in - a DeprecationWarning will be thrown if the option is
+#                used and the specified syntax version is greater than the
+#                value of this attribute
+# - removed:  the kickstart syntax version that this option was removed in - an
+#             exception will be raised if the option is used and the specified
+#             syntax version is greated than the value of this attribute
+# Also creates a new type:
+# - ksboolean:  support various kinds of boolean values on an option
+# And two new actions:
+# - map :  allows you to define an opt -> val mapping such that dest gets val
+#          when opt is seen
+# - map_extend:  allows you to define an opt -> [val1, ... valn] mapping such
+#                that dest gets a list of vals built up when opt is seen
+class KSOption (Option):
+    ATTRS = Option.ATTRS + ['introduced', 'deprecated', 'removed', 'required']
+    ACTIONS = Option.ACTIONS + ("map", "map_extend",)
+    STORE_ACTIONS = Option.STORE_ACTIONS + ("map", "map_extend",)
+
+    TYPES = Option.TYPES + ("ksboolean", "string")
+    TYPE_CHECKER = copy(Option.TYPE_CHECKER)
+    TYPE_CHECKER["ksboolean"] = _check_ksboolean
+    TYPE_CHECKER["string"] = _check_string
+
+    def _check_required(self):
+        if self.required and not self.takes_value():
+            raise OptionError(_("Required flag set for option that doesn't take a value"), self)
+
+    # Make sure _check_required() is called from the constructor!
+    CHECK_METHODS = Option.CHECK_METHODS + [_check_required]
+
+    def process (self, opt, value, values, parser):
+        Option.process(self, opt, value, values, parser)
+        parser.option_seen[self] = 1
+
+    # Override default take_action method to handle our custom actions.
+    def take_action(self, action, dest, opt, value, values, parser):
+        if action == "map":
+            values.ensure_value(dest, parser.map[opt.lstrip('-')])
+        elif action == "map_extend":
+            values.ensure_value(dest, []).extend(parser.map[opt.lstrip('-')])
+        else:
+            Option.take_action(self, action, dest, opt, value, values, parser)
+
+    def takes_value(self):
+        # Deprecated options don't take a value.
+        return Option.takes_value(self) and not self.deprecated
+
+    def __init__(self, *args, **kwargs):
+        self.deprecated = False
+        self.required = False
+        Option.__init__(self, *args, **kwargs)
diff --git a/mic/pykickstart/parser.py b/mic/pykickstart/parser.py
new file mode 100644 (file)
index 0000000..771ca1e
--- /dev/null
@@ -0,0 +1,702 @@
+#
+# parser.py:  Kickstart file parser.
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2005, 2006, 2007, 2008, 2011 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+Main kickstart file processing module.
+
+This module exports several important classes:
+
+    Script - Representation of a single %pre, %post, or %traceback script.
+
+    Packages - Representation of the %packages section.
+
+    KickstartParser - The kickstart file parser state machine.
+"""
+
+from collections import Iterator
+import os
+import shlex
+import sys
+import tempfile
+from copy import copy
+from optparse import *
+from urlgrabber import urlread
+import urlgrabber.grabber as grabber
+
+import constants
+from errors import KickstartError, KickstartParseError, KickstartValueError, formatErrorMsg
+from ko import KickstartObject
+from sections import *
+import version
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+STATE_END = "end"
+STATE_COMMANDS = "commands"
+
+ver = version.DEVEL
+
+def _preprocessStateMachine (lineIter):
+    l = None
+    lineno = 0
+
+    # Now open an output kickstart file that we are going to write to one
+    # line at a time.
+    (outF, outName) = tempfile.mkstemp("-ks.cfg", "", "/tmp")
+
+    while True:
+        try:
+            l = lineIter.next()
+        except StopIteration:
+            break
+
+        # At the end of the file?
+        if l == "":
+            break
+
+        lineno += 1
+        url = None
+
+        ll = l.strip()
+        if not ll.startswith("%ksappend"):
+            os.write(outF, l)
+            continue
+
+        # Try to pull down the remote file.
+        try:
+            ksurl = ll.split(' ')[1]
+        except:
+            raise KickstartParseError, formatErrorMsg(lineno, msg=_("Illegal url for %%ksappend: %s") % ll)
+
+        try:
+            url = grabber.urlopen(ksurl)
+        except grabber.URLGrabError, e:
+            raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file: %s") % e.strerror)
+        else:
+            # Sanity check result.  Sometimes FTP doesn't catch a file
+            # is missing.
+            try:
+                if url.size < 1:
+                    raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file"))
+            except:
+                raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file"))
+
+        # If that worked, write the remote file to the output kickstart
+        # file in one burst.  Then close everything up to get ready to
+        # read ahead in the input file.  This allows multiple %ksappend
+        # lines to exist.
+        if url is not None:
+            os.write(outF, url.read())
+            url.close()
+
+    # All done - close the temp file and return its location.
+    os.close(outF)
+    return outName
+
+def preprocessFromString (s):
+    """Preprocess the kickstart file, provided as the string str.  This
+        method is currently only useful for handling %ksappend lines,
+        which need to be fetched before the real kickstart parser can be
+        run.  Returns the location of the complete kickstart file.
+    """
+    i = iter(s.splitlines(True) + [""])
+    rc = _preprocessStateMachine (i.next)
+    return rc
+
+def preprocessKickstart (f):
+    """Preprocess the kickstart file, given by the filename file.  This
+        method is currently only useful for handling %ksappend lines,
+        which need to be fetched before the real kickstart parser can be
+        run.  Returns the location of the complete kickstart file.
+    """
+    try:
+        fh = urlopen(f)
+    except grabber.URLGrabError, e:
+        raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror)
+
+    rc = _preprocessStateMachine (iter(fh.readlines()))
+    fh.close()
+    return rc
+
+class PutBackIterator(Iterator):
+    def __init__(self, iterable):
+        self._iterable = iter(iterable)
+        self._buf = None
+
+    def __iter__(self):
+        return self
+
+    def put(self, s):
+        self._buf = s
+
+    def next(self):
+        if self._buf:
+            retval = self._buf
+            self._buf = None
+            return retval
+        else:
+            return self._iterable.next()
+
+###
+### SCRIPT HANDLING
+###
+class Script(KickstartObject):
+    """A class representing a single kickstart script.  If functionality beyond
+       just a data representation is needed (for example, a run method in
+       anaconda), Script may be subclassed.  Although a run method is not
+       provided, most of the attributes of Script have to do with running the
+       script.  Instances of Script are held in a list by the Version object.
+    """
+    def __init__(self, script, *args , **kwargs):
+        """Create a new Script instance.  Instance attributes:
+
+           errorOnFail -- If execution of the script fails, should anaconda
+                          stop, display an error, and then reboot without
+                          running any other scripts?
+           inChroot    -- Does the script execute in anaconda's chroot
+                          environment or not?
+           interp      -- The program that should be used to interpret this
+                          script.
+           lineno      -- The line number this script starts on.
+           logfile     -- Where all messages from the script should be logged.
+           script      -- A string containing all the lines of the script.
+           type        -- The type of the script, which can be KS_SCRIPT_* from
+                          pykickstart.constants.
+        """
+        KickstartObject.__init__(self, *args, **kwargs)
+        self.script = "".join(script)
+
+        self.interp = kwargs.get("interp", "/bin/sh")
+        self.inChroot = kwargs.get("inChroot", False)
+        self.lineno = kwargs.get("lineno", None)
+        self.logfile = kwargs.get("logfile", None)
+        self.errorOnFail = kwargs.get("errorOnFail", False)
+        self.type = kwargs.get("type", constants.KS_SCRIPT_PRE)
+
+    def __str__(self):
+        """Return a string formatted for output to a kickstart file."""
+        retval = ""
+
+        if self.type == constants.KS_SCRIPT_PRE:
+            retval += '\n%pre'
+        elif self.type == constants.KS_SCRIPT_POST:
+            retval += '\n%post'
+        elif self.type == constants.KS_SCRIPT_TRACEBACK:
+            retval += '\n%traceback'
+
+        if self.interp != "/bin/sh" and self.interp != "":
+            retval += " --interpreter=%s" % self.interp
+        if self.type == constants.KS_SCRIPT_POST and not self.inChroot:
+            retval += " --nochroot"
+        if self.logfile != None:
+            retval += " --logfile %s" % self.logfile
+        if self.errorOnFail:
+            retval += " --erroronfail"
+
+        if self.script.endswith("\n"):
+            if ver >= version.F8:
+                return retval + "\n%s%%end\n" % self.script
+            else:
+                return retval + "\n%s\n" % self.script
+        else:
+            if ver >= version.F8:
+                return retval + "\n%s\n%%end\n" % self.script
+            else:
+                return retval + "\n%s\n" % self.script
+
+
+##
+## PACKAGE HANDLING
+##
+class Group:
+    """A class representing a single group in the %packages section."""
+    def __init__(self, name="", include=constants.GROUP_DEFAULT):
+        """Create a new Group instance.  Instance attributes:
+
+           name    -- The group's identifier
+           include -- The level of how much of the group should be included.
+                      Values can be GROUP_* from pykickstart.constants.
+        """
+        self.name = name
+        self.include = include
+
+    def __str__(self):
+        """Return a string formatted for output to a kickstart file."""
+        if self.include == constants.GROUP_REQUIRED:
+            return "@%s --nodefaults" % self.name
+        elif self.include == constants.GROUP_ALL:
+            return "@%s --optional" % self.name
+        else:
+            return "@%s" % self.name
+
+    def __cmp__(self, other):
+        if self.name < other.name:
+            return -1
+        elif self.name > other.name:
+            return 1
+        return 0
+
+class Packages(KickstartObject):
+    """A class representing the %packages section of the kickstart file."""
+    def __init__(self, *args, **kwargs):
+        """Create a new Packages instance.  Instance attributes:
+
+           addBase       -- Should the Base group be installed even if it is
+                            not specified?
+           default       -- Should the default package set be selected?
+           excludedList  -- A list of all the packages marked for exclusion in
+                            the %packages section, without the leading minus
+                            symbol.
+           excludeDocs   -- Should documentation in each package be excluded?
+           groupList     -- A list of Group objects representing all the groups
+                            specified in the %packages section.  Names will be
+                            stripped of the leading @ symbol.
+           excludedGroupList -- A list of Group objects representing all the
+                                groups specified for removal in the %packages
+                                section.  Names will be stripped of the leading
+                                -@ symbols.
+           handleMissing -- If unknown packages are specified in the %packages
+                            section, should it be ignored or not?  Values can
+                            be KS_MISSING_* from pykickstart.constants.
+           packageList   -- A list of all the packages specified in the
+                            %packages section.
+           instLangs     -- A list of languages to install.
+        """
+        KickstartObject.__init__(self, *args, **kwargs)
+
+        self.addBase = True
+        self.default = False
+        self.excludedList = []
+        self.excludedGroupList = []
+        self.excludeDocs = False
+        self.groupList = []
+        self.handleMissing = constants.KS_MISSING_PROMPT
+        self.packageList = []
+        self.instLangs = None
+
+    def __str__(self):
+        """Return a string formatted for output to a kickstart file."""
+        pkgs = ""
+
+        if not self.default:
+            grps = self.groupList
+            grps.sort()
+            for grp in grps:
+                pkgs += "%s\n" % grp.__str__()
+
+            p = self.packageList
+            p.sort()
+            for pkg in p:
+                pkgs += "%s\n" % pkg
+
+            grps = self.excludedGroupList
+            grps.sort()
+            for grp in grps:
+                pkgs += "-%s\n" % grp.__str__()
+
+            p = self.excludedList
+            p.sort()
+            for pkg in p:
+                pkgs += "-%s\n" % pkg
+
+            if pkgs == "":
+                return ""
+
+        retval = "\n%packages"
+
+        if self.default:
+            retval += " --default"
+        if self.excludeDocs:
+            retval += " --excludedocs"
+        if not self.addBase:
+            retval += " --nobase"
+        if self.handleMissing == constants.KS_MISSING_IGNORE:
+            retval += " --ignoremissing"
+        if self.instLangs:
+            retval += " --instLangs=%s" % self.instLangs
+
+        if ver >= version.F8:
+            return retval + "\n" + pkgs + "\n%end\n"
+        else:
+            return retval + "\n" + pkgs + "\n"
+
+    def _processGroup (self, line):
+        op = OptionParser()
+        op.add_option("--nodefaults", action="store_true", default=False)
+        op.add_option("--optional", action="store_true", default=False)
+
+        (opts, extra) = op.parse_args(args=line.split())
+
+        if opts.nodefaults and opts.optional:
+            raise KickstartValueError, _("Group cannot specify both --nodefaults and --optional")
+
+        # If the group name has spaces in it, we have to put it back together
+        # now.
+        grp = " ".join(extra)
+
+        if opts.nodefaults:
+            self.groupList.append(Group(name=grp, include=constants.GROUP_REQUIRED))
+        elif opts.optional:
+            self.groupList.append(Group(name=grp, include=constants.GROUP_ALL))
+        else:
+            self.groupList.append(Group(name=grp, include=constants.GROUP_DEFAULT))
+
+    def add (self, pkgList):
+        """Given a list of lines from the input file, strip off any leading
+           symbols and add the result to the appropriate list.
+        """
+        existingExcludedSet = set(self.excludedList)
+        existingPackageSet = set(self.packageList)
+        newExcludedSet = set()
+        newPackageSet = set()
+
+        excludedGroupList = []
+
+        for pkg in pkgList:
+            stripped = pkg.strip()
+
+            if stripped[0] == "@":
+                self._processGroup(stripped[1:])
+            elif stripped[0] == "-":
+                if stripped[1] == "@":
+                    excludedGroupList.append(Group(name=stripped[2:]))
+                else:
+                    newExcludedSet.add(stripped[1:])
+            else:
+                newPackageSet.add(stripped)
+
+        # Groups have to be excluded in two different ways (note: can't use
+        # sets here because we have to store objects):
+        excludedGroupNames = map(lambda g: g.name, excludedGroupList)
+
+        # First, an excluded group may be cancelling out a previously given
+        # one.  This is often the case when using %include.  So there we should
+        # just remove the group from the list.
+        self.groupList = filter(lambda g: g.name not in excludedGroupNames, self.groupList)
+
+        # Second, the package list could have included globs which are not
+        # processed by pykickstart.  In that case we need to preserve a list of
+        # excluded groups so whatever tool doing package/group installation can
+        # take appropriate action.
+        self.excludedGroupList.extend(excludedGroupList)
+
+        existingPackageSet = (existingPackageSet - newExcludedSet) | newPackageSet
+        existingExcludedSet = (existingExcludedSet - existingPackageSet) | newExcludedSet
+
+        self.packageList = list(existingPackageSet)
+        self.excludedList = list(existingExcludedSet)
+
+
+###
+### PARSER
+###
+class KickstartParser:
+    """The kickstart file parser class as represented by a basic state
+       machine.  To create a specialized parser, make a subclass and override
+       any of the methods you care about.  Methods that don't need to do
+       anything may just pass.  However, _stateMachine should never be
+       overridden.
+    """
+    def __init__ (self, handler, followIncludes=True, errorsAreFatal=True,
+                  missingIncludeIsFatal=True):
+        """Create a new KickstartParser instance.  Instance attributes:
+
+           errorsAreFatal        -- Should errors cause processing to halt, or
+                                    just print a message to the screen?  This
+                                    is most useful for writing syntax checkers
+                                    that may want to continue after an error is
+                                    encountered.
+           followIncludes        -- If %include is seen, should the included
+                                    file be checked as well or skipped?
+           handler               -- An instance of a BaseHandler subclass.  If
+                                    None, the input file will still be parsed
+                                    but no data will be saved and no commands
+                                    will be executed.
+           missingIncludeIsFatal -- Should missing include files be fatal, even
+                                    if errorsAreFatal is False?
+        """
+        self.errorsAreFatal = errorsAreFatal
+        self.followIncludes = followIncludes
+        self.handler = handler
+        self.currentdir = {}
+        self.missingIncludeIsFatal = missingIncludeIsFatal
+
+        self._state = STATE_COMMANDS
+        self._includeDepth = 0
+        self._line = ""
+
+        self.version = self.handler.version
+
+        global ver
+        ver = self.version
+
+        self._sections = {}
+        self.setupSections()
+
+    def _reset(self):
+        """Reset the internal variables of the state machine for a new kickstart file."""
+        self._state = STATE_COMMANDS
+        self._includeDepth = 0
+
+    def getSection(self, s):
+        """Return a reference to the requested section (s must start with '%'s),
+           or raise KeyError if not found.
+        """
+        return self._sections[s]
+
+    def handleCommand (self, lineno, args):
+        """Given the list of command and arguments, call the Version's
+           dispatcher method to handle the command.  Returns the command or
+           data object returned by the dispatcher.  This method may be
+           overridden in a subclass if necessary.
+        """
+        if self.handler:
+            self.handler.currentCmd = args[0]
+            self.handler.currentLine = self._line
+            retval = self.handler.dispatcher(args, lineno)
+
+            return retval
+
+    def registerSection(self, obj):
+        """Given an instance of a Section subclass, register the new section
+           with the parser.  Calling this method means the parser will
+           recognize your new section and dispatch into the given object to
+           handle it.
+        """
+        if not obj.sectionOpen:
+            raise TypeError, "no sectionOpen given for section %s" % obj
+
+        if not obj.sectionOpen.startswith("%"):
+            raise TypeError, "section %s tag does not start with a %%" % obj.sectionOpen
+
+        self._sections[obj.sectionOpen] = obj
+
+    def _finalize(self, obj):
+        """Called at the close of a kickstart section to take any required
+           actions.  Internally, this is used to add scripts once we have the
+           whole body read.
+        """
+        obj.finalize()
+        self._state = STATE_COMMANDS
+
+    def _handleSpecialComments(self, line):
+        """Kickstart recognizes a couple special comments."""
+        if self._state != STATE_COMMANDS:
+            return
+
+        # Save the platform for s-c-kickstart.
+        if line[:10] == "#platform=":
+            self.handler.platform = self._line[11:]
+
+    def _readSection(self, lineIter, lineno):
+        obj = self._sections[self._state]
+
+        while True:
+            try:
+                line = lineIter.next()
+                if line == "":
+                    # This section ends at the end of the file.
+                    if self.version >= version.F8:
+                        raise KickstartParseError, formatErrorMsg(lineno, msg=_("Section does not end with %%end."))
+
+                    self._finalize(obj)
+            except StopIteration:
+                break
+
+            lineno += 1
+
+            # Throw away blank lines and comments, unless the section wants all
+            # lines.
+            if self._isBlankOrComment(line) and not obj.allLines:
+                continue
+
+            if line.startswith("%"):
+                args = shlex.split(line)
+
+                if args and args[0] == "%end":
+                    # This is a properly terminated section.
+                    self._finalize(obj)
+                    break
+                elif args and args[0] == "%ksappend":
+                    continue
+                elif args and (self._validState(args[0]) or args[0] in ["%include", "%ksappend"]):
+                    # This is an unterminated section.
+                    if self.version >= version.F8:
+                        raise KickstartParseError, formatErrorMsg(lineno, msg=_("Section does not end with %%end."))
+
+                    # Finish up.  We do not process the header here because
+                    # kicking back out to STATE_COMMANDS will ensure that happens.
+                    lineIter.put(line)
+                    lineno -= 1
+                    self._finalize(obj)
+                    break
+            else:
+                # This is just a line within a section.  Pass it off to whatever
+                # section handles it.
+                obj.handleLine(line)
+
+        return lineno
+
+    def _validState(self, st):
+        """Is the given section tag one that has been registered with the parser?"""
+        return st in self._sections.keys()
+
+    def _tryFunc(self, fn):
+        """Call the provided function (which doesn't take any arguments) and
+           do the appropriate error handling.  If errorsAreFatal is False, this
+           function will just print the exception and keep going.
+        """
+        try:
+            fn()
+        except Exception as msg:
+            if self.errorsAreFatal:
+                raise
+            else:
+                print msg
+
+    def _isBlankOrComment(self, line):
+        return line.isspace() or line == "" or line.lstrip()[0] == '#'
+
+    def _stateMachine(self, lineIter):
+        # For error reporting.
+        lineno = 0
+
+        while True:
+            # Get the next line out of the file, quitting if this is the last line.
+            try:
+                self._line = lineIter.next()
+                if self._line == "":
+                    break
+            except StopIteration:
+                break
+
+            lineno += 1
+
+            # Eliminate blank lines, whitespace-only lines, and comments.
+            if self._isBlankOrComment(self._line):
+                self._handleSpecialComments(self._line)
+                continue
+
+            # Remove any end-of-line comments.
+            sanitized = self._line.split("#")[0]
+
+            # Then split the line.
+            args = shlex.split(sanitized.rstrip())
+
+            if args[0] == "%include":
+                # This case comes up primarily in ksvalidator.
+                if not self.followIncludes:
+                    continue
+
+                if len(args) == 1 or not args[1]:
+                    raise KickstartParseError, formatErrorMsg(lineno)
+
+                self._includeDepth += 1
+
+                try:
+                    self.readKickstart(args[1], reset=False)
+                except KickstartError:
+                    # Handle the include file being provided over the
+                    # network in a %pre script.  This case comes up in the
+                    # early parsing in anaconda.
+                    if self.missingIncludeIsFatal:
+                        raise
+
+                self._includeDepth -= 1
+                continue
+
+            # Now on to the main event.
+            if self._state == STATE_COMMANDS:
+                if args[0] == "%ksappend":
+                    # This is handled by the preprocess* functions, so continue.
+                    continue
+                elif args[0][0] == '%':
+                    # This is the beginning of a new section.  Handle its header
+                    # here.
+                    newSection = args[0]
+                    if not self._validState(newSection):
+                        raise KickstartParseError, formatErrorMsg(lineno, msg=_("Unknown kickstart section: %s" % newSection))
+
+                    self._state = newSection
+                    obj = self._sections[self._state]
+                    self._tryFunc(lambda: obj.handleHeader(lineno, args))
+
+                    # This will handle all section processing, kicking us back
+                    # out to STATE_COMMANDS at the end with the current line
+                    # being the next section header, etc.
+                    lineno = self._readSection(lineIter, lineno)
+                else:
+                    # This is a command in the command section.  Dispatch to it.
+                    self._tryFunc(lambda: self.handleCommand(lineno, args))
+            elif self._state == STATE_END:
+                break
+
+    def readKickstartFromString (self, s, reset=True):
+        """Process a kickstart file, provided as the string str."""
+        if reset:
+            self._reset()
+
+        # Add a "" to the end of the list so the string reader acts like the
+        # file reader and we only get StopIteration when we're after the final
+        # line of input.
+        i = PutBackIterator(s.splitlines(True) + [""])
+        self._stateMachine (i)
+
+    def readKickstart(self, f, reset=True):
+        """Process a kickstart file, given by the filename f."""
+        if reset:
+            self._reset()
+
+        # an %include might not specify a full path.  if we don't try to figure
+        # out what the path should have been, then we're unable to find it
+        # requiring full path specification, though, sucks.  so let's make
+        # the reading "smart" by keeping track of what the path is at each
+        # include depth.
+        if not os.path.exists(f):
+            if self.currentdir.has_key(self._includeDepth - 1):
+                if os.path.exists(os.path.join(self.currentdir[self._includeDepth - 1], f)):
+                    f = os.path.join(self.currentdir[self._includeDepth - 1], f)
+
+        cd = os.path.dirname(f)
+        if not cd.startswith("/"):
+            cd = os.path.abspath(cd)
+        self.currentdir[self._includeDepth] = cd
+
+        try:
+            s = urlread(f)
+        except grabber.URLGrabError, e:
+            raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror)
+
+        self.readKickstartFromString(s, reset=False)
+
+    def setupSections(self):
+        """Install the sections all kickstart files support.  You may override
+           this method in a subclass, but should avoid doing so unless you know
+           what you're doing.
+        """
+        self._sections = {}
+
+        # Install the sections all kickstart files support.
+        self.registerSection(PreScriptSection(self.handler, dataObj=Script))
+        self.registerSection(PostScriptSection(self.handler, dataObj=Script))
+        self.registerSection(TracebackScriptSection(self.handler, dataObj=Script))
+        self.registerSection(PackageSection(self.handler))
diff --git a/mic/pykickstart/sections.py b/mic/pykickstart/sections.py
new file mode 100644 (file)
index 0000000..44df856
--- /dev/null
@@ -0,0 +1,244 @@
+#
+# sections.py:  Kickstart file sections.
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2011 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+This module exports the classes that define a section of a kickstart file.  A
+section is a chunk of the file starting with a %tag and ending with a %end.
+Examples of sections include %packages, %pre, and %post.
+
+You may use this module to define your own custom sections which will be
+treated just the same as a predefined one by the kickstart parser.  All that
+is necessary is to create a new subclass of Section and call
+parser.registerSection with an instance of your new class.
+"""
+from constants import *
+from options import KSOptionParser
+from version import *
+
+class Section(object):
+    """The base class for defining kickstart sections.  You are free to
+       subclass this as appropriate.
+
+       Class attributes:
+
+       allLines    -- Does this section require the parser to call handleLine
+                      for every line in the section, even blanks and comments?
+       sectionOpen -- The string that denotes the start of this section.  You
+                      must start your tag with a percent sign.
+       timesSeen   -- This attribute is for informational purposes only.  It is
+                      incremented every time handleHeader is called to keep
+                      track of the number of times a section of this type is
+                      seen.
+    """
+    allLines = False
+    sectionOpen = ""
+    timesSeen = 0
+
+    def __init__(self, handler, **kwargs):
+        """Create a new Script instance.  At the least, you must pass in an
+           instance of a baseHandler subclass.
+
+           Valid kwargs:
+
+           dataObj --
+        """
+        self.handler = handler
+
+        self.version = self.handler.version
+
+        self.dataObj = kwargs.get("dataObj", None)
+
+    def finalize(self):
+        """This method is called when the %end tag for a section is seen.  It
+           is not required to be provided.
+        """
+        pass
+
+    def handleLine(self, line):
+        """This method is called for every line of a section.  Take whatever
+           action is appropriate.  While this method is not required to be
+           provided, not providing it does not make a whole lot of sense.
+
+           Arguments:
+
+           line -- The complete line, with any trailing newline.
+        """
+        pass
+
+    def handleHeader(self, lineno, args):
+        """This method is called when the opening tag for a section is seen.
+           Not all sections will need this method, though all provided with
+           kickstart include one.
+
+           Arguments:
+
+           args -- A list of all strings passed as arguments to the section
+                   opening tag.
+        """
+        self.timesSeen += 1
+
+class NullSection(Section):
+    """This defines a section that pykickstart will recognize but do nothing
+       with.  If the parser runs across a %section that has no object registered,
+       it will raise an error.  Sometimes, you may want to simply ignore those
+       sections instead.  This class is useful for that purpose.
+    """
+    def __init__(self, *args, **kwargs):
+        """Create a new NullSection instance.  You must pass a sectionOpen
+           parameter (including a leading '%') for the section you wish to
+           ignore.
+        """
+        Section.__init__(self, *args, **kwargs)
+        self.sectionOpen = kwargs.get("sectionOpen")
+
+class ScriptSection(Section):
+    allLines = True
+
+    def __init__(self, *args, **kwargs):
+        Section.__init__(self, *args, **kwargs)
+        self._script = {}
+        self._resetScript()
+
+    def _getParser(self):
+        op = KSOptionParser(self.version)
+        op.add_option("--erroronfail", dest="errorOnFail", action="store_true",
+                      default=False)
+        op.add_option("--interpreter", dest="interpreter", default="/bin/sh")
+        op.add_option("--log", "--logfile", dest="log")
+        return op
+
+    def _resetScript(self):
+        self._script = {"interp": "/bin/sh", "log": None, "errorOnFail": False,
+                        "lineno": None, "chroot": False, "body": []}
+
+    def handleLine(self, line):
+        self._script["body"].append(line)
+
+    def finalize(self):
+        if " ".join(self._script["body"]).strip() == "":
+            return
+
+        kwargs = {"interp": self._script["interp"],
+                  "inChroot": self._script["chroot"],
+                  "lineno": self._script["lineno"],
+                  "logfile": self._script["log"],
+                  "errorOnFail": self._script["errorOnFail"],
+                  "type": self._script["type"]}
+
+        s = self.dataObj (self._script["body"], **kwargs)
+        self._resetScript()
+
+        if self.handler:
+            self.handler.scripts.append(s)
+
+    def handleHeader(self, lineno, args):
+        """Process the arguments to a %pre/%post/%traceback header for later
+           setting on a Script instance once the end of the script is found.
+           This method may be overridden in a subclass if necessary.
+        """
+        Section.handleHeader(self, lineno, args)
+        op = self._getParser()
+
+        (opts, extra) = op.parse_args(args=args[1:], lineno=lineno)
+
+        self._script["interp"] = opts.interpreter
+        self._script["lineno"] = lineno
+        self._script["log"] = opts.log
+        self._script["errorOnFail"] = opts.errorOnFail
+        if hasattr(opts, "nochroot"):
+            self._script["chroot"] = not opts.nochroot
+
+class PreScriptSection(ScriptSection):
+    sectionOpen = "%pre"
+
+    def _resetScript(self):
+        ScriptSection._resetScript(self)
+        self._script["type"] = KS_SCRIPT_PRE
+
+class PostScriptSection(ScriptSection):
+    sectionOpen = "%post"
+
+    def _getParser(self):
+        op = ScriptSection._getParser(self)
+        op.add_option("--nochroot", dest="nochroot", action="store_true",
+                      default=False)
+        return op
+
+    def _resetScript(self):
+        ScriptSection._resetScript(self)
+        self._script["chroot"] = True
+        self._script["type"] = KS_SCRIPT_POST
+
+class TracebackScriptSection(ScriptSection):
+    sectionOpen = "%traceback"
+
+    def _resetScript(self):
+        ScriptSection._resetScript(self)
+        self._script["type"] = KS_SCRIPT_TRACEBACK
+
+class PackageSection(Section):
+    sectionOpen = "%packages"
+
+    def handleLine(self, line):
+        if not self.handler:
+            return
+
+        (h, s, t) = line.partition('#')
+        line = h.rstrip()
+
+        self.handler.packages.add([line])
+
+    def handleHeader(self, lineno, args):
+        """Process the arguments to the %packages header and set attributes
+           on the Version's Packages instance appropriate.  This method may be
+           overridden in a subclass if necessary.
+        """
+        Section.handleHeader(self, lineno, args)
+        op = KSOptionParser(version=self.version)
+        op.add_option("--excludedocs", dest="excludedocs", action="store_true",
+                      default=False)
+        op.add_option("--ignoremissing", dest="ignoremissing",
+                      action="store_true", default=False)
+        op.add_option("--nobase", dest="nobase", action="store_true",
+                      default=False)
+        op.add_option("--ignoredeps", dest="resolveDeps", action="store_false",
+                      deprecated=FC4, removed=F9)
+        op.add_option("--resolvedeps", dest="resolveDeps", action="store_true",
+                      deprecated=FC4, removed=F9)
+        op.add_option("--default", dest="defaultPackages", action="store_true",
+                      default=False, introduced=F7)
+        op.add_option("--instLangs", dest="instLangs", type="string",
+                      default="", introduced=F9)
+
+        (opts, extra) = op.parse_args(args=args[1:], lineno=lineno)
+
+        self.handler.packages.excludeDocs = opts.excludedocs
+        self.handler.packages.addBase = not opts.nobase
+        if opts.ignoremissing:
+            self.handler.packages.handleMissing = KS_MISSING_IGNORE
+        else:
+            self.handler.packages.handleMissing = KS_MISSING_PROMPT
+
+        if opts.defaultPackages:
+            self.handler.packages.default = True
+
+        if opts.instLangs:
+            self.handler.packages.instLangs = opts.instLangs
diff --git a/mic/pykickstart/version.py b/mic/pykickstart/version.py
new file mode 100644 (file)
index 0000000..102cc37
--- /dev/null
@@ -0,0 +1,197 @@
+#
+# Chris Lumens <clumens@redhat.com>
+#
+# Copyright 2006, 2007, 2008, 2009, 2010 Red Hat, Inc.
+#
+# 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.  Any Red Hat
+# trademarks that are incorporated in the source code or documentation are not
+# subject to the GNU General Public License and may only be used or replicated
+# with the express permission of Red Hat, Inc. 
+#
+"""
+Methods for working with kickstart versions.
+
+This module defines several symbolic constants that specify kickstart syntax
+versions.  Each version corresponds roughly to one release of Red Hat Linux,
+Red Hat Enterprise Linux, or Fedora Core as these are where most syntax
+changes take place.
+
+This module also exports several functions:
+
+    makeVersion - Given a version number, return an instance of the
+                  matching handler class.
+
+    returnClassForVersion - Given a version number, return the matching
+                            handler class.  This does not return an
+                            instance of that class, however.
+
+    stringToVersion - Convert a string representation of a version number
+                      into the symbolic constant.
+
+    versionToString - Perform the reverse mapping.
+
+    versionFromFile - Read a kickstart file and determine the version of
+                      syntax it uses.  This requires the kickstart file to
+                      have a version= comment in it.
+"""
+import imputil, re, sys
+from urlgrabber import urlopen
+
+import gettext
+_ = lambda x: gettext.ldgettext("pykickstart", x)
+
+from pykickstart.errors import KickstartVersionError
+
+# Symbolic names for internal version numbers.
+RHEL3 = 900
+FC3 = 1000
+RHEL4 = 1100
+FC4 = 2000
+FC5 = 3000
+FC6 = 4000
+RHEL5 = 4100
+F7  = 5000
+F8 = 6000
+F9 = 7000
+F10 = 8000
+F11 = 9000
+F12 = 10000
+F13 = 11000
+RHEL6 = 11100
+F14 = 12000
+F15 = 13000
+F16 = 14000
+
+# This always points at the latest version and is the default.
+DEVEL = F16
+
+# A one-to-one mapping from string representations to version numbers.
+versionMap = {
+        "DEVEL": DEVEL,
+        "FC3": FC3, "FC4": FC4, "FC5": FC5, "FC6": FC6, "F7": F7, "F8": F8,
+        "F9": F9, "F10": F10, "F11": F11, "F12": F12, "F13": F13,
+        "F14": F14, "F15": F15, "F16": F16,
+        "RHEL3": RHEL3, "RHEL4": RHEL4, "RHEL5": RHEL5, "RHEL6": RHEL6
+}
+
+def stringToVersion(s):
+    """Convert string into one of the provided version constants.  Raises
+       KickstartVersionError if string does not match anything.
+    """
+    # First try these short forms.
+    try:
+        return versionMap[s.upper()]
+    except KeyError:
+        pass
+
+    # Now try the Fedora versions.
+    m = re.match("^fedora.* (\d+)$", s, re.I)
+
+    if m and m.group(1):
+        if versionMap.has_key("FC" + m.group(1)):
+            return versionMap["FC" + m.group(1)]
+        elif versionMap.has_key("F" + m.group(1)):
+            return versionMap["F" + m.group(1)]
+        else:
+            raise KickstartVersionError(_("Unsupported version specified: %s") % s)
+
+    # Now try the RHEL versions.
+    m = re.match("^red hat enterprise linux.* (\d+)([\.\d]*)$", s, re.I)
+
+    if m and m.group(1):
+        if versionMap.has_key("RHEL" + m.group(1)):
+            return versionMap["RHEL" + m.group(1)]
+        else:
+            raise KickstartVersionError(_("Unsupported version specified: %s") % s)
+
+    # If nothing else worked, we're out of options.
+    raise KickstartVersionError(_("Unsupported version specified: %s") % s)
+
+def versionToString(version, skipDevel=False):
+    """Convert version into a string representation of the version number.
+       This is the reverse operation of stringToVersion.  Raises
+       KickstartVersionError if version does not match anything.
+    """
+    if not skipDevel and version == versionMap["DEVEL"]:
+        return "DEVEL"
+
+    for (key, val) in versionMap.iteritems():
+        if key == "DEVEL":
+            continue
+        elif val == version:
+            return key
+
+    raise KickstartVersionError(_("Unsupported version specified: %s") % version)
+
+def versionFromFile(f):
+    """Given a file or URL, look for a line starting with #version= and
+       return the version number.  If no version is found, return DEVEL.
+    """
+    v = DEVEL
+
+    fh = urlopen(f)
+
+    while True:
+        try:
+            l = fh.readline()
+        except StopIteration:
+            break
+
+        # At the end of the file?
+        if l == "":
+            break
+
+        if l.isspace() or l.strip() == "":
+            continue
+
+        if l[:9] == "#version=":
+            v = stringToVersion(l[9:].rstrip())
+            break
+
+    fh.close()
+    return v
+
+def returnClassForVersion(version=DEVEL):
+    """Return the class of the syntax handler for version.  version can be
+       either a string or the matching constant.  Raises KickstartValueError
+       if version does not match anything.
+    """
+    try:
+        version = int(version)
+        module = "%s" % versionToString(version, skipDevel=True)
+    except ValueError:
+        module = "%s" % version
+        version = stringToVersion(version)
+
+    module = module.lower()
+
+    try:
+        import pykickstart.handlers
+        sys.path.extend(pykickstart.handlers.__path__)
+        found = imputil.imp.find_module(module)
+        loaded = imputil.imp.load_module(module, found[0], found[1], found[2])
+
+        for (k, v) in loaded.__dict__.iteritems():
+            if k.lower().endswith("%shandler" % module):
+                return v
+    except:
+        raise KickstartVersionError(_("Unsupported version specified: %s") % version)
+
+def makeVersion(version=DEVEL):
+    """Return a new instance of the syntax handler for version.  version can be
+       either a string or the matching constant.  This function is useful for
+       standalone programs which just need to handle a specific version of
+       kickstart syntax (as provided by a command line argument, for example)
+       and need to instantiate the correct object.
+    """
+    cl = returnClassForVersion(version)
+    return cl()
index 7d7c69d002d01553c04dc29fd1d20a27356021f7..3b0c8613b0936bc404ca78f035143a79cd95ca99 100644 (file)
@@ -29,7 +29,7 @@ class CreatorError(Exception):
     def __init__(self, msg):
         Exception.__init__(self, msg)
 
-class KickstartError(CreatorError):
+class KsError(CreatorError):
     pass
 class MountError(CreatorError):
     pass
index 9f3ddfb34f07b7c8197dcaf4914053ccaeba3a2d..916781be1841c54aa4497fb10e4d719429d3ea59 100644 (file)
@@ -23,7 +23,7 @@ import logging
 
 import yum
 import rpmUtils
-from mic.kickstart.pykickstart import parser as ksparser
+from pykickstart import parser as ksparser
 
 import urlparse
 import urllib2 as u2
index 1d3a17ab22a601f90ac87b519b794a4cb3e4afe7..fe045c7b4cb06261e48a8dfd9afcc10cac18ae88 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -36,9 +36,9 @@ PACKAGES = [MOD_NAME,
             MOD_NAME + '/pluginbase',
             MOD_NAME + '/kickstart',
             MOD_NAME + '/kickstart/custom_commands',
-            MOD_NAME + '/kickstart/pykickstart',
-            MOD_NAME + '/kickstart/pykickstart/commands',
-            MOD_NAME + '/kickstart/pykickstart/handlers',
+            MOD_NAME + '/pykickstart',
+            MOD_NAME + '/pykickstart/commands',
+            MOD_NAME + '/pykickstart/handlers',
            ]
 
 setup(name=MOD_NAME,