2 # Chris Lumens <clumens@redhat.com>
3 # Peter Jones <pjones@redhat.com>
5 # Copyright 2006, 2007 Red Hat, Inc.
7 # This copyrighted material is made available to anyone wishing to use, modify,
8 # copy, or redistribute it subject to the terms and conditions of the GNU
9 # General Public License v.2. This program is distributed in the hope that it
10 # will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
11 # implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 # See the GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License along with
15 # this program; if not, write to the Free Software Foundation, Inc., 51
16 # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Any Red Hat
17 # trademarks that are incorporated in the source code or documentation are not
18 # subject to the GNU General Public License and may only be used or replicated
19 # with the express permission of Red Hat, Inc.
21 from pykickstart
.base
import BaseData
, KickstartCommand
22 from pykickstart
.options
import KSOptionParser
26 _
= lambda x
: gettext
.ldgettext("pykickstart", x
)
28 class FC6_DmRaidData(BaseData
):
29 removedKeywords
= BaseData
.removedKeywords
30 removedAttrs
= BaseData
.removedAttrs
32 def __init__(self
, *args
, **kwargs
):
33 BaseData
.__init
__(self
, *args
, **kwargs
)
35 self
.name
= kwargs
.get("name", "")
36 self
.devices
= kwargs
.get("devices", [])
37 self
.dmset
= kwargs
.get("dmset", None)
43 return self
.name
== y
.name
and self
.devices
== y
.devices
49 retval
= BaseData
.__str
__(self
)
50 retval
+= "dmraid --name=%s" % self
.name
52 for dev
in self
.devices
:
53 retval
+= " --dev=\"%s\"" % dev
57 class FC6_DmRaid(KickstartCommand
):
58 removedKeywords
= KickstartCommand
.removedKeywords
59 removedAttrs
= KickstartCommand
.removedAttrs
61 def __init__(self
, writePriority
=60, *args
, **kwargs
):
62 KickstartCommand
.__init
__(self
, writePriority
, *args
, **kwargs
)
63 self
.op
= self
._getParser
()
65 self
.dmraids
= kwargs
.get("dmraids", [])
69 for dm
in self
.dmraids
:
70 retval
+= dm
.__str
__()
76 op
.add_option("--name", dest
="name", action
="store", type="string",
78 op
.add_option("--dev", dest
="devices", action
="append", type="string",
82 def parse(self
, args
):
84 (opts
, _extra
) = self
.op
.parse_args(args
=args
, lineno
=self
.lineno
)
85 dm
.name
= dm
.name
.split('/')[-1]
86 self
._setToObj
(self
.op
, opts
, dm
)
87 dm
.lineno
= self
.lineno
89 # Check for duplicates in the data list.
90 if dm
in self
.dataList():
91 warnings
.warn(_("A DM RAID device with the name %s and devices %s has already been defined.") % (dm
.name
, dm
.devices
))