tuskar-ui/tuskar_ui/forms.py
Radomir Dopieralski 378c296f85 A dialog for registering nodes
A dialog for registering new nodes, as described by the wireframe.

Implements: blueprint tripleo-node-registration-widget
Change-Id: I6c4566677a3ba5c2de0c6994d30133e1fdd5a60d
2014-01-13 16:53:19 +01:00

39 lines
1.3 KiB
Python

# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from django import forms
from django.utils.translation import ugettext_lazy as _
import netaddr
class NumberInput(forms.widgets.TextInput):
input_type = 'number'
class MACField(forms.fields.Field):
def clean(self, value):
try:
return str(netaddr.EUI(
value.strip(), version=48, dialect=netaddr.mac_unix)).upper()
except (netaddr.AddrFormatError, TypeError):
raise forms.ValidationError(_(u'Enter a valid MAC address.'))
class NetworkField(forms.fields.Field):
def clean(self, value):
try:
return str(netaddr.IPNetwork(value, version=4))
except netaddr.AddrFormatError:
raise forms.ValidationError(_("Enter valid IPv4 network address."))