diff options
Diffstat (limited to 'scripts/lib/mic/3rdparty/pykickstart/commands/volgroup.py')
-rw-r--r-- | scripts/lib/mic/3rdparty/pykickstart/commands/volgroup.py | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/scripts/lib/mic/3rdparty/pykickstart/commands/volgroup.py b/scripts/lib/mic/3rdparty/pykickstart/commands/volgroup.py new file mode 100644 index 0000000000..255c47f0ae --- /dev/null +++ b/scripts/lib/mic/3rdparty/pykickstart/commands/volgroup.py | |||
@@ -0,0 +1,102 @@ | |||
1 | # | ||
2 | # Chris Lumens <clumens@redhat.com> | ||
3 | # | ||
4 | # Copyright 2005, 2006, 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.options import * | ||
22 | |||
23 | import gettext | ||
24 | import warnings | ||
25 | _ = lambda x: gettext.ldgettext("pykickstart", x) | ||
26 | |||
27 | class FC3_VolGroupData(BaseData): | ||
28 | removedKeywords = BaseData.removedKeywords | ||
29 | removedAttrs = BaseData.removedAttrs | ||
30 | |||
31 | def __init__(self, *args, **kwargs): | ||
32 | BaseData.__init__(self, *args, **kwargs) | ||
33 | self.format = kwargs.get("format", True) | ||
34 | self.pesize = kwargs.get("pesize", 32768) | ||
35 | self.preexist = kwargs.get("preexist", False) | ||
36 | self.vgname = kwargs.get("vgname", "") | ||
37 | self.physvols = kwargs.get("physvols", []) | ||
38 | |||
39 | def __eq__(self, y): | ||
40 | return self.vgname == y.vgname | ||
41 | |||
42 | def __str__(self): | ||
43 | retval = BaseData.__str__(self) | ||
44 | retval += "volgroup %s" % self.vgname | ||
45 | |||
46 | if not self.format: | ||
47 | retval += " --noformat" | ||
48 | if self.pesize != 0: | ||
49 | retval += " --pesize=%d" % self.pesize | ||
50 | if self.preexist: | ||
51 | retval += " --useexisting" | ||
52 | |||
53 | return retval + " " + " ".join(self.physvols) + "\n" | ||
54 | |||
55 | class FC3_VolGroup(KickstartCommand): | ||
56 | removedKeywords = KickstartCommand.removedKeywords | ||
57 | removedAttrs = KickstartCommand.removedAttrs | ||
58 | |||
59 | def __init__(self, writePriority=132, *args, **kwargs): | ||
60 | KickstartCommand.__init__(self, writePriority, *args, **kwargs) | ||
61 | self.op = self._getParser() | ||
62 | |||
63 | self.vgList = kwargs.get("vgList", []) | ||
64 | |||
65 | def __str__(self): | ||
66 | retval = "" | ||
67 | for vg in self.vgList: | ||
68 | retval += vg.__str__() | ||
69 | |||
70 | return retval | ||
71 | |||
72 | def _getParser(self): | ||
73 | # Have to be a little more complicated to set two values. | ||
74 | def vg_cb (option, opt_str, value, parser): | ||
75 | parser.values.format = False | ||
76 | parser.values.preexist = True | ||
77 | |||
78 | op = KSOptionParser() | ||
79 | op.add_option("--noformat", action="callback", callback=vg_cb, | ||
80 | dest="format", default=True, nargs=0) | ||
81 | op.add_option("--pesize", dest="pesize", type="int", nargs=1, | ||
82 | default=32768) | ||
83 | op.add_option("--useexisting", dest="preexist", action="store_true", | ||
84 | default=False) | ||
85 | return op | ||
86 | |||
87 | def parse(self, args): | ||
88 | (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno) | ||
89 | vg = self.handler.VolGroupData() | ||
90 | self._setToObj(self.op, opts, vg) | ||
91 | vg.lineno = self.lineno | ||
92 | vg.vgname = extra[0] | ||
93 | vg.physvols = extra[1:] | ||
94 | |||
95 | # Check for duplicates in the data list. | ||
96 | if vg in self.dataList(): | ||
97 | warnings.warn(_("A volgroup with the name %s has already been defined.") % vg.vgname) | ||
98 | |||
99 | return vg | ||
100 | |||
101 | def dataList(self): | ||
102 | return self.vgList | ||