Update views.py to include 512mb ram case
RAM server side validation is as follows: - pid is a mandatory parameter for a valid RAM, otherwise a validation error is raised - check if enable_512mb_ram is enabled. In this case, validate if the input ram is either a whole number or 0.5 and in the range 0.5 <= value <= 200 - otherwise check ram is a whole number in the range 1 <= value <= 200
This commit is contained in:
parent
f85ef714ab
commit
c2dbbf0424
1 changed files with 25 additions and 2 deletions
|
@ -20,6 +20,7 @@ from utils.forms import BillingAddressForm, BillingAddressFormSignup
|
||||||
from utils.hosting_utils import get_vm_price_with_vat
|
from utils.hosting_utils import get_vm_price_with_vat
|
||||||
from utils.stripe_utils import StripeUtils
|
from utils.stripe_utils import StripeUtils
|
||||||
from utils.tasks import send_plain_email_task
|
from utils.tasks import send_plain_email_task
|
||||||
|
from .cms_models import DCLCalculatorPluginModel
|
||||||
from .forms import ContactForm
|
from .forms import ContactForm
|
||||||
from .models import VMTemplate, VMPricing
|
from .models import VMTemplate, VMPricing
|
||||||
from .utils import get_cms_integration, create_vm
|
from .utils import get_cms_integration, create_vm
|
||||||
|
@ -82,7 +83,29 @@ class IndexView(CreateView):
|
||||||
raise ValidationError(_('Invalid number of cores'))
|
raise ValidationError(_('Invalid number of cores'))
|
||||||
|
|
||||||
def validate_memory(self, value):
|
def validate_memory(self, value):
|
||||||
if (value > 200) or (value < 1):
|
if 'pid' in self.request.POST:
|
||||||
|
try:
|
||||||
|
plugin = DCLCalculatorPluginModel.objects.get(
|
||||||
|
id=self.request.POST['pid']
|
||||||
|
)
|
||||||
|
except DCLCalculatorPluginModel.DoesNotExist as dne:
|
||||||
|
logger.error(
|
||||||
|
str(dne) + " plugin_id: " + self.request.POST['pid']
|
||||||
|
)
|
||||||
|
raise ValidationError(_('Invalid calculator properties'))
|
||||||
|
if plugin.enable_512mb_ram:
|
||||||
|
if value % 1 == 0 or value == 0.5:
|
||||||
|
logger.debug(
|
||||||
|
"Given ram {value} is either 0.5 or a"
|
||||||
|
" whole number".format(value=value)
|
||||||
|
)
|
||||||
|
if (value > 200) or (value < 0.5):
|
||||||
|
raise ValidationError(_('Invalid RAM size'))
|
||||||
|
else:
|
||||||
|
raise ValidationError(_('Invalid RAM size'))
|
||||||
|
elif (value > 200) or (value < 1) or (value % 1 != 0):
|
||||||
|
raise ValidationError(_('Invalid RAM size'))
|
||||||
|
else:
|
||||||
raise ValidationError(_('Invalid RAM size'))
|
raise ValidationError(_('Invalid RAM size'))
|
||||||
|
|
||||||
def validate_storage(self, value):
|
def validate_storage(self, value):
|
||||||
|
@ -101,7 +124,7 @@ class IndexView(CreateView):
|
||||||
cores = request.POST.get('cpu')
|
cores = request.POST.get('cpu')
|
||||||
cores_field = forms.IntegerField(validators=[self.validate_cores])
|
cores_field = forms.IntegerField(validators=[self.validate_cores])
|
||||||
memory = request.POST.get('ram')
|
memory = request.POST.get('ram')
|
||||||
memory_field = forms.IntegerField(validators=[self.validate_memory])
|
memory_field = forms.FloatField(validators=[self.validate_memory])
|
||||||
storage = request.POST.get('storage')
|
storage = request.POST.get('storage')
|
||||||
storage_field = forms.IntegerField(validators=[self.validate_storage])
|
storage_field = forms.IntegerField(validators=[self.validate_storage])
|
||||||
template_id = int(request.POST.get('config'))
|
template_id = int(request.POST.get('config'))
|
||||||
|
|
Loading…
Reference in a new issue