[blivet:master 07/16] Add get_max_spares device to Container class
mulhern
amulhern at redhat.com
Tue May 6 16:42:32 UTC 2014
Make it raise an exception, but catch and rethrow possible
exception in _setSpares().
Signed-off-by: mulhern <amulhern at redhat.com>
---
blivet/devicelibs/raid.py | 2 ++
blivet/devices.py | 5 ++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/blivet/devicelibs/raid.py b/blivet/devicelibs/raid.py
index 4a13340..e30b223 100644
--- a/blivet/devicelibs/raid.py
+++ b/blivet/devicelibs/raid.py
@@ -464,6 +464,8 @@ class Container(object):
name = "container"
names = [name]
min_members = 1
+ def get_max_spares(self, member_count):
+ raise RaidError("get_max_spares is not defined for level container")
def get_recommended_stride(self, member_devices):
raise RaidError("get_recommended_stride is not defined for level container")
def get_size(self, member_sizes, num_members=None, chunk_size=None, superblock_size_func=None):
diff --git a/blivet/devices.py b/blivet/devices.py
index 652f8ea..95880db 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -3362,7 +3362,10 @@ class MDRaidArrayDevice(ContainerDevice):
return spares
def _setSpares(self, spares):
- max_spares = self.level.get_max_spares(len(self.parents))
+ try:
+ max_spares = self.level.get_max_spares(len(self.parents))
+ except errors.RaidError as e:
+ raise errors.DeviceError("unable to set spares for device %s: %s" % (self.name, e))
if spares > max_spares:
log.debug("failed to set new spares value %d (max is %d)",
spares, max_spares)
--
1.8.3.1
More information about the anaconda-patches
mailing list