← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~ack/maas:maasserver-fields-cleanups into maas:master

 

Alberto Donato has proposed merging ~ack/maas:maasserver-fields-cleanups into maas:master.

Commit message:
cleanups to MAC-related custom field/form


Requested reviews:
  MAAS Maintainers (maas-maintainers)

For more details, see:
https://code.launchpad.net/~ack/maas/+git/maas/+merge/437993
-- 
Your team MAAS Maintainers is requested to review the proposed merge of ~ack/maas:maasserver-fields-cleanups into maas:master.
diff --git a/src/maasserver/api/machines.py b/src/maasserver/api/machines.py
index 7ba6143..766dc68 100644
--- a/src/maasserver/api/machines.py
+++ b/src/maasserver/api/machines.py
@@ -62,7 +62,7 @@ from maasserver.exceptions import (
     NodeStateViolation,
     Unauthorized,
 )
-from maasserver.fields import mac_validator
+from maasserver.fields import MAC_VALIDATOR
 from maasserver.forms import (
     AdminMachineForm,
     get_machine_create_form,
@@ -1915,7 +1915,7 @@ class AnonMachinesHandler(AnonNodesHandler):
             macs_valid = True
             for mac_address in mac_addresses:
                 try:
-                    mac_validator(mac_address)
+                    MAC_VALIDATOR(mac_address)
                 except ValidationError:
                     macs_valid = False
                     break
diff --git a/src/maasserver/fields.py b/src/maasserver/fields.py
index bc8277d..83b5d83 100644
--- a/src/maasserver/fields.py
+++ b/src/maasserver/fields.py
@@ -3,20 +3,6 @@
 
 """Custom model and form fields."""
 
-__all__ = [
-    "CIDRField",
-    "EditableBinaryField",
-    "Field",
-    "HostListFormField",
-    "IPListFormField",
-    "IPv4CIDRField",
-    "MACAddressField",
-    "MACAddressFormField",
-    "MODEL_NAME_VALIDATOR",
-    "NodeChoiceField",
-    "VersionedTextFileField",
-]
-
 import re
 
 from django import forms
@@ -46,17 +32,17 @@ MODEL_NAME_VALIDATOR = RegexValidator(r"^\w[ \w-]*$")
 
 
 MAC_RE = re.compile(
-    r"^\s*("
-    r"([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}|"
-    r"([0-9a-fA-F]{1,2}-){5}[0-9a-fA-F]{1,2}|"
-    r"([0-9a-fA-F]{3,4}.){2}[0-9a-fA-F]{3,4}"
-    r")\s*$"
+    r"^"
+    r"([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}|"  # aa:bb:cc:dd:ee:ff
+    r"([0-9a-fA-F]{1,2}-){5}[0-9a-fA-F]{1,2}|"  # aa-bb-cc-dd-ee-ff
+    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=MAC_ERROR_MSG)
 
 
 class StrippedCharField(forms.CharField):
@@ -102,7 +88,7 @@ class MACAddressField(Field):
 
     description = "MAC address"
 
-    default_validators = [mac_validator]
+    default_validators = [MAC_VALIDATOR]
 
     def db_type(self, *args, **kwargs):
         return "macaddr"
diff --git a/src/maasserver/models/tests/test_interface.py b/src/maasserver/models/tests/test_interface.py
index a6cd866..919074b 100644
--- a/src/maasserver/models/tests/test_interface.py
+++ b/src/maasserver/models/tests/test_interface.py
@@ -1008,7 +1008,7 @@ class TestInterface(MAASServerTestCase):
         # twice: once as part of Interface.clean() resulting in the __all__
         # error, and once as part of field validation that happens after a
         # few queries are done, so we cannot easily get rid of
-        # mac_validator() in clean().
+        # MAC_VALIDATOR() in clean().
         self.assertThat(
             exception.message_dict,
             MatchesDict(
diff --git a/src/maasserver/node_constraint_filter_forms.py b/src/maasserver/node_constraint_filter_forms.py
index 091d6fa..44b0064 100644
--- a/src/maasserver/node_constraint_filter_forms.py
+++ b/src/maasserver/node_constraint_filter_forms.py
@@ -24,7 +24,7 @@ from maasserver.enum import (
     SIMPLIFIED_NODE_STATUS,
     SIMPLIFIED_NODE_STATUS_LABEL_CHOICES,
 )
-from maasserver.fields import mac_validator, MODEL_NAME_VALIDATOR
+from maasserver.fields import MAC_VALIDATOR, MODEL_NAME_VALIDATOR
 import maasserver.forms as maasserver_forms
 from maasserver.forms import (
     ConstrainedMultipleChoiceField,
@@ -1332,7 +1332,7 @@ class ReadNodesForm(FilterNodeForm):
     )
 
     mac_address = ValidatorMultipleChoiceField(
-        validator=mac_validator,
+        validator=MAC_VALIDATOR,
         label="MAC addresses to filter on",
         required=False,
         error_messages={

Follow ups