filesystem: fix path property from Raid - override attribute
The following commmit:ce146ab28
add .path to Raid so for_client(raid-with-partitions) works introduced a (read only) path property for Raid objects, returning an imaginary value to make for_client work with Raid objects. Later on, the following commit:8e658998e
add "path" attributes to fs model objects that curtin now provides a path for introduced a (read/write) path attribute to all filesystem objects. For Raid however, the property still takes precedence over the new attribute of the same name, so doing raid.path = x is invalid (no setter) and results in the following exception: AttributeError: can't set attribute 'path' Fixed by using a @property + @setter attribute for path. The getter returns the actual path if it exists, otherwise returns the same imaginary value as before. Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
This commit is contained in:
parent
4496f22ff8
commit
6737e2c053
|
@ -820,16 +820,22 @@ class Raid(_Device):
|
||||||
wipe = attr.ib(default=None)
|
wipe = attr.ib(default=None)
|
||||||
ptable = attributes.ptable()
|
ptable = attributes.ptable()
|
||||||
metadata = attr.ib(default=None)
|
metadata = attr.ib(default=None)
|
||||||
path = attr.ib(default=None)
|
_path = attr.ib(default=None)
|
||||||
container = attributes.ref(backlink="_subvolumes", default=None) # Raid
|
container = attributes.ref(backlink="_subvolumes", default=None) # Raid
|
||||||
_subvolumes = attributes.backlink(default=attr.Factory(list))
|
_subvolumes = attributes.backlink(default=attr.Factory(list))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path(self):
|
def path(self):
|
||||||
|
if self._path is not None:
|
||||||
|
return self._path
|
||||||
# This is just here to make for_client(raid-with-partitions) work. It
|
# This is just here to make for_client(raid-with-partitions) work. It
|
||||||
# might not be very accurate.
|
# might not be very accurate.
|
||||||
return '/dev/md/' + self.name
|
return '/dev/md/' + self.name
|
||||||
|
|
||||||
|
@path.setter
|
||||||
|
def path(self, value):
|
||||||
|
self._path = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def size(self):
|
def size(self):
|
||||||
if self.preserve and self._m._probe_data:
|
if self.preserve and self._m._probe_data:
|
||||||
|
|
Loading…
Reference in New Issue