[PATCH 5/5] Move changes from action ctors into apply methods.
David Lehman
dlehman at redhat.com
Tue Apr 22 19:19:21 UTC 2014
On 04/22/2014 11:08 AM, Vratislav Podzimek wrote:
> On Tue, 2014-04-22 at 10:26 -0500, David Lehman wrote:
>> The apply method is called from DeviceTree.registerAction, so there is no
>> need to change any code that creates actions.
>> ---
>> blivet/deviceaction.py | 106 +++++++++++++++++++++++++++++++++++++++++++++----
>> blivet/devicetree.py | 2 +
>> tests/action_test.py | 55 +++++++++++++++++++++----
>> 3 files changed, 148 insertions(+), 15 deletions(-)
>>
>> diff --git a/blivet/deviceaction.py b/blivet/deviceaction.py
>> index 4a50a1a..d1edec7 100644
>> --- a/blivet/deviceaction.py
>> +++ b/blivet/deviceaction.py
>> @@ -153,14 +153,20 @@ class DeviceAction(util.ObjectID):
>> raise ValueError("arg 1 must be a StorageDevice instance")
>> self.device = device
>> self.container = getattr(self.device, "container", None)
>> + self.applied = False
> I'd like to this to be self._applied. Or should it be used from the
> outside somewhere?
Fixed. It isn't intended to be used from outside.
>
>> +
>> + def apply(self):
>> + """ apply changes related to the action to the device(s) """
>> + self.applied = True
>>
>> def execute(self):
>> """ perform the action """
>> - pass
>> + if not self.applied:
>> + raise RuntimeError("cannot execute unapplied action")
>>
>> def cancel(self):
>> """ cancel the action """
>> - pass
>> + self.applied = False
>>
>> @property
>> def isDestroy(self):
>> @@ -280,6 +286,7 @@ class ActionCreateDevice(DeviceAction):
>> DeviceAction.__init__(self, device)
>>
>> def execute(self):
>> + super(ActionCreateDevice, self).execute()
>> self.device.create()
>>
>> def requires(self, action):
>> @@ -328,6 +335,7 @@ class ActionDestroyDevice(DeviceAction):
>> DeviceAction.__init__(self, device)
>>
>> def execute(self):
>> + super(ActionDestroyDevice, self).execute()
>> self.device.destroy()
>>
>> # Make sure libparted does not keep cached info for this device
>> @@ -427,13 +435,26 @@ class ActionResizeDevice(DeviceAction):
>> else:
>> self.origsize = device.size
>>
>> - self.device.targetSize = newsize
>> + self.targetSize = newsize
> And this should be self._targetSize.
Also fixed. Thanks.
>
More information about the anaconda-patches
mailing list