| 4 | |
| 5 | |
| 6 | class AddNetPool(forms.Form): |
| 7 | name = forms.CharField(error_messages={'required': _('No pool name has been entered')}, |
| 8 | max_length=20) |
| 9 | subnet = forms.CharField(error_messages={'required': _('No subnet has been entered')}, |
| 10 | max_length=20) |
| 11 | forward = forms.CharField(max_length=100) |
| 12 | dhcp = forms.BooleanField(required=False) |
| 13 | fixed = forms.BooleanField(required=False) |
| 14 | bridge_name = forms.CharField(max_length=20, required=False) |
| 15 | openvswitch = forms.BooleanField(required=False) |
| 16 | |
| 17 | def clean_name(self): |
| 18 | name = self.cleaned_data['name'] |
| 19 | have_symbol = re.match('^[a-zA-Z0-9\.\_\-]+$', name) |
| 20 | if not have_symbol: |
| 21 | raise forms.ValidationError(_('The pool name must not contain any special characters')) |
| 22 | elif len(name) > 20: |
| 23 | raise forms.ValidationError(_('The pool name must not exceed 20 characters')) |
| 24 | return name |
| 25 | |
| 26 | def clean_subnet(self): |
| 27 | subnet = self.cleaned_data['subnet'] |
| 28 | have_symbol = re.match('^[0-9./]+$', subnet) |
| 29 | if not have_symbol: |
| 30 | raise forms.ValidationError(_('The pool subnet must not contain any special characters')) |
| 31 | elif len(subnet) > 20: |
| 32 | raise forms.ValidationError(_('The pool subnet must not exceed 20 characters')) |
| 33 | return subnet |
| 34 | |
| 35 | def clean_bridge_name(self): |
| 36 | bridge_name = self.cleaned_data['bridge_name'] |
| 37 | if self.cleaned_data['forward'] == 'bridge': |
| 38 | have_symbol = re.match('^[a-zA-Z0-9\.\_\:\-]+$', bridge_name) |
| 39 | if not have_symbol: |
| 40 | raise forms.ValidationError(_('The pool bridge name must not contain any special characters')) |
| 41 | elif len(bridge_name) > 20: |
| 42 | raise forms.ValidationError(_('The pool bridge name must not exceed 20 characters')) |
| 43 | return bridge_name |