diff options
Diffstat (limited to 'scripts/lib/mic/3rdparty/pykickstart/commands/services.py')
-rw-r--r-- | scripts/lib/mic/3rdparty/pykickstart/commands/services.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/scripts/lib/mic/3rdparty/pykickstart/commands/services.py b/scripts/lib/mic/3rdparty/pykickstart/commands/services.py new file mode 100644 index 0000000000..2e0eab8007 --- /dev/null +++ b/scripts/lib/mic/3rdparty/pykickstart/commands/services.py | |||
@@ -0,0 +1,71 @@ | |||
1 | # | ||
2 | # Chris Lumens <clumens@redhat.com> | ||
3 | # | ||
4 | # Copyright 2007 Red Hat, Inc. | ||
5 | # | ||
6 | # This copyrighted material is made available to anyone wishing to use, modify, | ||
7 | # copy, or redistribute it subject to the terms and conditions of the GNU | ||
8 | # General Public License v.2. This program is distributed in the hope that it | ||
9 | # will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the | ||
10 | # implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
11 | # See the GNU General Public License for more details. | ||
12 | # | ||
13 | # You should have received a copy of the GNU General Public License along with | ||
14 | # this program; if not, write to the Free Software Foundation, Inc., 51 | ||
15 | # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Any Red Hat | ||
16 | # trademarks that are incorporated in the source code or documentation are not | ||
17 | # subject to the GNU General Public License and may only be used or replicated | ||
18 | # with the express permission of Red Hat, Inc. | ||
19 | # | ||
20 | from pykickstart.base import * | ||
21 | from pykickstart.errors import * | ||
22 | from pykickstart.options import * | ||
23 | |||
24 | import gettext | ||
25 | _ = lambda x: gettext.ldgettext("pykickstart", x) | ||
26 | |||
27 | class FC6_Services(KickstartCommand): | ||
28 | removedKeywords = KickstartCommand.removedKeywords | ||
29 | removedAttrs = KickstartCommand.removedAttrs | ||
30 | |||
31 | def __init__(self, writePriority=0, *args, **kwargs): | ||
32 | KickstartCommand.__init__(self, writePriority, *args, **kwargs) | ||
33 | self.op = self._getParser() | ||
34 | |||
35 | self.disabled = kwargs.get("disabled", []) | ||
36 | self.enabled = kwargs.get("enabled", []) | ||
37 | |||
38 | def __str__(self): | ||
39 | retval = KickstartCommand.__str__(self) | ||
40 | args = "" | ||
41 | |||
42 | if len(self.disabled) > 0: | ||
43 | args += " --disabled=\"%s\"" % ",".join(self.disabled) | ||
44 | if len(self.enabled) > 0: | ||
45 | args += " --enabled=\"%s\"" % ",".join(self.enabled) | ||
46 | |||
47 | if args != "": | ||
48 | retval += "# System services\nservices%s\n" % args | ||
49 | |||
50 | return retval | ||
51 | |||
52 | def _getParser(self): | ||
53 | def services_cb (option, opt_str, value, parser): | ||
54 | for d in value.split(','): | ||
55 | parser.values.ensure_value(option.dest, []).append(d.strip()) | ||
56 | |||
57 | op = KSOptionParser() | ||
58 | op.add_option("--disabled", dest="disabled", action="callback", | ||
59 | callback=services_cb, nargs=1, type="string") | ||
60 | op.add_option("--enabled", dest="enabled", action="callback", | ||
61 | callback=services_cb, nargs=1, type="string") | ||
62 | return op | ||
63 | |||
64 | def parse(self, args): | ||
65 | (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno) | ||
66 | self._setToSelf(self.op, opts) | ||
67 | |||
68 | if len(self.disabled) == 0 and len(self.enabled) == 0: | ||
69 | raise KickstartParseError, formatErrorMsg(self.lineno, msg=_("One of --disabled or --enabled must be provided.")) | ||
70 | |||
71 | return self | ||