sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #05500
[Merge] ~ack/maas:more-mac-cleanups into maas:master
Alberto Donato has proposed merging ~ack/maas:more-mac-cleanups into maas:master.
Commit message:
some more cleanups related to MAC validation
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~ack/maas/+git/maas/+merge/438130
--
Your team MAAS Maintainers is requested to review the proposed merge of ~ack/maas:more-mac-cleanups into maas:master.
diff --git a/src/maasserver/api/machines.py b/src/maasserver/api/machines.py
index 766dc68..a5374f0 100644
--- a/src/maasserver/api/machines.py
+++ b/src/maasserver/api/machines.py
@@ -13,7 +13,7 @@ import json
import re
from django.conf import settings
-from django.core.exceptions import PermissionDenied, ValidationError
+from django.core.exceptions import PermissionDenied
from django.db.models import Q
from django.http import (
HttpResponse,
@@ -62,7 +62,7 @@ from maasserver.exceptions import (
NodeStateViolation,
Unauthorized,
)
-from maasserver.fields import MAC_VALIDATOR
+from maasserver.fields import MAC_RE
from maasserver.forms import (
AdminMachineForm,
get_machine_create_form,
@@ -1914,9 +1914,7 @@ class AnonMachinesHandler(AnonNodesHandler):
# caught.
macs_valid = True
for mac_address in mac_addresses:
- try:
- MAC_VALIDATOR(mac_address)
- except ValidationError:
+ if not MAC_RE.match(mac_address):
macs_valid = False
break
if macs_valid:
diff --git a/src/maasserver/fields.py b/src/maasserver/fields.py
index 276d4d4..0d014ff 100644
--- a/src/maasserver/fields.py
+++ b/src/maasserver/fields.py
@@ -36,8 +36,9 @@ MAC_RE = re.compile(
r"([0-9a-fA-F]{3,4}.){2}[0-9a-fA-F]{3,4}" # aabb.ccdd.eeff
r"$"
)
-MAC_ERROR_MSG = "'%(value)s' is not a valid MAC address."
-MAC_VALIDATOR = RegexValidator(regex=MAC_RE, message=MAC_ERROR_MSG)
+MAC_VALIDATOR = RegexValidator(
+ regex=MAC_RE, message="'%(value)s' is not a valid MAC address."
+)
class MACAddressFormField(forms.CharField):
@@ -45,9 +46,7 @@ class MACAddressFormField(forms.CharField):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- self.validators.append(
- RegexValidator(regex=MAC_RE, message=MAC_ERROR_MSG)
- )
+ self.validators.append(MAC_VALIDATOR)
class MACAddressField(Field):
diff --git a/src/maasserver/rpc/tests/test_rackcontrollers.py b/src/maasserver/rpc/tests/test_rackcontrollers.py
index 88b0591..05de7b4 100644
--- a/src/maasserver/rpc/tests/test_rackcontrollers.py
+++ b/src/maasserver/rpc/tests/test_rackcontrollers.py
@@ -212,7 +212,7 @@ class TestRegisterRackController(MAASServerTestCase):
def test_creates_new_rackcontroller(self):
existing_machine = factory.make_Machine()
- rack_mac = (factory.make_mac_address(),)
+ rack_mac = factory.make_mac_address()
interfaces = {
factory.make_name("eth0"): {
"type": "physical",
Follow ups