Adam Collard has proposed merging 
~adam-collard/maas:create-discovered-subnet-in-correct-fabric into maas:master.

Commit message:
LP:2011853 create discovered subnets in correct fabric.


Requested reviews:
  MAAS Maintainers (maas-maintainers)
Related bugs:
  Bug #2011853 in MAAS: "Auto-discovered subnet does not get correct VLAN"
  https://bugs.launchpad.net/maas/+bug/2011853

For more details, see:
https://code.launchpad.net/~adam-collard/maas/+git/maas/+merge/444258
-- 
Your team MAAS Committers is subscribed to branch maas:master.
diff --git a/src/maasserver/models/interface.py b/src/maasserver/models/interface.py
index 3d33de0..83b0a10 100644
--- a/src/maasserver/models/interface.py
+++ b/src/maasserver/models/interface.py
@@ -887,7 +887,9 @@ class Interface(CleanSave, TimestampedModel):
                     # so that the user gets a chance to configure it. Note,
                     # however, that if this is already a managed cluster
                     # interface, a Fabric/VLAN will already have been created.
-                    subnet = Subnet.objects.create_from_cidr(cidr)
+                    subnet = Subnet.objects.create_from_cidr(
+                        cidr, vlan=self.vlan
+                    )
                     maaslog.info(
                         f"Creating subnet {cidr} connected to interface "
                         f"{self} of node {self.get_node()}."
diff --git a/src/maasserver/models/tests/test_interface.py b/src/maasserver/models/tests/test_interface.py
index 620a706..78ca70d 100644
--- a/src/maasserver/models/tests/test_interface.py
+++ b/src/maasserver/models/tests/test_interface.py
@@ -42,7 +42,6 @@ from maasserver.models import (
     Subnet,
     VLAN,
 )
-from maasserver.models import Fabric
 from maasserver.models import interface as interface_module
 from maasserver.models.config import NetworkDiscoveryConfig
 from maasserver.models.interface import (
@@ -2519,25 +2518,22 @@ class TestUpdateIpAddresses(MAASServerTestCase):
 
     def test_creates_missing_subnet(self):
         interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
+        self.assertEqual(0, interface.ip_addresses.count())
         network = factory.make_ip4_or_6_network()
         cidr = str(network)
         address = str(network.ip)
         interface.update_ip_addresses([cidr])
 
-        default_fabric = Fabric.objects.get_default_fabric()
         subnets = Subnet.objects.filter(
-            cidr=str(network.cidr), vlan__fabric=default_fabric
+            cidr=str(network.cidr), vlan=interface.vlan
         )
         self.assertEqual(1, len(subnets))
         self.assertEqual(1, interface.ip_addresses.count())
-        self.assertThat(
-            interface.ip_addresses.first(),
-            MatchesStructure.byEquality(
-                alloc_type=IPADDRESS_TYPE.DISCOVERED,
-                subnet=subnets[0],
-                ip=address,
-            ),
-        )
+
+        ip = interface.ip_addresses.first()
+        self.assertEqual(ip.alloc_type, IPADDRESS_TYPE.DISCOVERED)
+        self.assertEqual(ip.subnet, subnets[0])
+        self.assertEqual(ip.ip, address)
 
     def test_creates_discovered_ip_addresses(self):
         interface = factory.make_Interface(INTERFACE_TYPE.PHYSICAL)
-- 
Mailing list: https://launchpad.net/~sts-sponsors
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~sts-sponsors
More help   : https://help.launchpad.net/ListHelp

Reply via email to