| 5 | |
| 6 | |
| 7 | class FlavorAddForm(forms.Form): |
| 8 | label = forms.CharField(label="Name", |
| 9 | error_messages={'required': _('No flavor name has been entered')}, |
| 10 | max_length=20) |
| 11 | vcpu = forms.IntegerField(label="VCPU", |
| 12 | error_messages={'required': _('No VCPU has been entered')}, ) |
| 13 | disk = forms.IntegerField(label="HDD", |
| 14 | error_messages={'required': _('No HDD image has been entered')}, ) |
| 15 | memory = forms.IntegerField(label="RAM", |
| 16 | error_messages={'required': _('No RAM size has been entered')}, ) |
| 17 | |
| 18 | def clean_name(self): |
| 19 | label = self.cleaned_data['label'] |
| 20 | have_symbol = re.match('^[a-zA-Z0-9._-]+$', label) |
| 21 | if not have_symbol: |
| 22 | raise forms.ValidationError(_('The flavor name must not contain any special characters')) |
| 23 | elif len(label) > 20: |
| 24 | raise forms.ValidationError(_('The flavor name must not exceed 20 characters')) |
| 25 | try: |
| 26 | Flavor.objects.get(label=label) |
| 27 | except Flavor.DoesNotExist: |
| 28 | return label |
| 29 | raise forms.ValidationError(_('Flavor name is already use')) |
| 30 | |
| 31 | |
| 32 | class NewVMForm(forms.Form): |