From 8c20ce756ca073227ad94c629e143cc3d5ded0bb Mon Sep 17 00:00:00 2001 From: Őry Máté <ory.mate@cloud.bme.hu> Date: Tue, 19 Aug 2014 12:08:21 +0200 Subject: [PATCH] vm: allow saving lease fixes #252 --- circle/dashboard/forms.py | 3 +++ circle/vm/operations.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/circle/dashboard/forms.py b/circle/dashboard/forms.py index c9fcf44..7c5e093 100644 --- a/circle/dashboard/forms.py +++ b/circle/dashboard/forms.py @@ -703,6 +703,8 @@ class VmRenewForm(forms.Form): force = forms.BooleanField(required=False, label=_( "Set expiration times even if they are shorter than " "the current value.")) + save = forms.BooleanField(required=False, label=_( + "Save selected lease.")) def __init__(self, *args, **kwargs): choices = kwargs.pop('choices') @@ -714,6 +716,7 @@ class VmRenewForm(forms.Form): empty_label=None, label=_('Length'))) if len(choices) < 2: self.fields['lease'].widget = HiddenInput() + self.fields['save'].widget = HiddenInput() @property def helper(self): diff --git a/circle/vm/operations.py b/circle/vm/operations.py index 5f7322e..7a18def 100644 --- a/circle/vm/operations.py +++ b/circle/vm/operations.py @@ -754,7 +754,7 @@ class RenewOperation(InstanceOperation): required_perms = () concurrency_check = False - def _operation(self, activity, lease=None, force=False): + def _operation(self, activity, lease=None, force=False, save=False): suspend, delete = self.instance.get_renew_times(lease) if (not force and suspend and self.instance.time_of_suspend and suspend < self.instance.time_of_suspend): @@ -768,6 +768,8 @@ class RenewOperation(InstanceOperation): "in its delete time get earlier than before.")) self.instance.time_of_suspend = suspend self.instance.time_of_delete = delete + if save: + self.instance.lease = lease self.instance.save() activity.result = create_readable(ugettext_noop( "Renewed to suspend at %(suspend)s and destroy at %(delete)s."), -- libgit2 0.26.0