diff options
author | Joel Granados Moreno <jgranado@redhat.com> | 2009-03-24 14:32:49 +0100 |
---|---|---|
committer | Joel Granados Moreno <jgranado@redhat.com> | 2009-04-02 17:49:46 +0200 |
commit | 76d838cc4610f2c1e2099f5badd28d1cc65b0c18 (patch) | |
tree | 36d21159af5de4a06ae105ec1ceb52f57ab5caf7 | |
parent | e58e33800372627c77ddad6b32b8b2b3dbdebbd9 (diff) | |
download | anaconda-76d838cc4610f2c1e2099f5badd28d1cc65b0c18.tar.gz anaconda-76d838cc4610f2c1e2099f5badd28d1cc65b0c18.tar.xz anaconda-76d838cc4610f2c1e2099f5badd28d1cc65b0c18.zip |
Create setup and teardown functs for dmraid devs.
* storage/devices.py (DMRaidArrayDevice): Erase the activate and
deactivate functions for the DMRaidArrayDevice. They are no really
being used.
* storage/devices.py (DMRaidArrayDevice): Create setup and teardown
functions for the class.
* storage/devices.py (Device): Add the pyblock attribute to the shallow
copy list.
-rw-r--r-- | storage/devices.py | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/storage/devices.py b/storage/devices.py index 32e4c2344..da9aacc85 100644 --- a/storage/devices.py +++ b/storage/devices.py @@ -201,7 +201,8 @@ class Device(object): new = self.__class__.__new__(self.__class__) memo[id(self)] = new shallow_copy_attrs = ('partedDisk', 'partedDevice', - '_partedPartition', '_origPartedDisk') + '_partedPartition', '_origPartedDisk', + '_raidSet') for (attr, value) in self.__dict__.items(): if attr in shallow_copy_attrs: setattr(new, attr, copy.copy(value)) @@ -2403,12 +2404,6 @@ class DMRaidArrayDevice(DiskDevice): """ Return a list of this array's member device instances. """ return self.parents - def activate(self, mknod=True): - self._raidSet.activate(mknod=mknod) - - def deactivate(self): - self._raidSet.deactivate() - def updateSysfsPath(self): """ Update this device's sysfs path. """ log_method_call(self, self.name, status=self.status) @@ -2422,6 +2417,29 @@ class DMRaidArrayDevice(DiskDevice): else: self.sysfsPath = '' + def teardown(self, recursive=None): + """ Close, or tear down, a device. """ + log_method_call(self, self.name, status=self.status) + if not self.exists: + raise DeviceError("device has not been created") + + if self.format.exists: + self.format.teardown() + + # This call already checks if the set is not active. + self._raidSet.deactivate() + + def setup(self, intf=None): + """ Open, or set up, a device. """ + log_method_call(self, self.name, status=self.status) + if not self.exists: + raise DeviceError("device has not been created") + + # This call already checks if the set is active. + self._raidSet.activate(mknod=True) + + udev_settle() + class MultipathDevice(DMDevice): """ A multipath device """ |