Merge ~cgrabowski/maas:fix_vlan_discovery_3.2 into maas:3.2

Proposed by Christian Grabowski
Status: Merged
Approved by: Alberto Donato
Approved revision: 14202cb7119c1f7bc8c0ca02d04a2472ffb0e795
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~cgrabowski/maas:fix_vlan_discovery_3.2
Merge into: maas:3.2
Diff against target: 71 lines (+7/-15)
3 files modified
src/maasserver/models/interface.py (+2/-10)
src/maasserver/models/tests/test_interface.py (+2/-2)
src/maasserver/models/tests/test_node.py (+3/-3)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
MAAS Lander Approve
Review via email: mp+424988@code.launchpad.net

Commit message

update report_neighbours test
(cherry picked from commit 50f817870f78b6fadfe6f7c0e371d92ef7a93d0c)

ignore observed vlan if already exists
(cherry picked from commit 717044811f229360753ea10ff32f91ea897f16ec)

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b fix_vlan_discovery_3.2 lp:~cgrabowski/maas/+git/maas into -b 3.2 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 14202cb7119c1f7bc8c0ca02d04a2472ffb0e795

review: Approve
Revision history for this message
Alberto Donato (ack) wrote :

+1

review: Approve

Update scan failed

At least one of the branches involved have failed to scan. You can manually schedule a rescan if required.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/models/interface.py b/src/maasserver/models/interface.py
index 7945291..4fb826b 100644
--- a/src/maasserver/models/interface.py
+++ b/src/maasserver/models/interface.py
@@ -1547,16 +1547,8 @@ class Interface(CleanSave, TimestampedModel):
15471547
1548 if ip:1548 if ip:
1549 subnet = Subnet.objects.get_best_subnet_for_ip(ip)1549 subnet = Subnet.objects.get_best_subnet_for_ip(ip)
1550 if subnet:1550 # VLAN already exists, don't update it
1551 vlan = subnet.vlan1551 if subnet and subnet.vlan.vid == vid:
1552 vlan.fabric = fabric
1553 vlan.save()
1554 maaslog.info(
1555 "%s: Automatically updated VLAN %d (observed on %s).",
1556 self.get_log_string(),
1557 vid,
1558 vlan.fabric.get_name(),
1559 )
1560 return1552 return
15611553
1562 vlan, created = VLAN.objects.get_or_create(1554 vlan, created = VLAN.objects.get_or_create(
diff --git a/src/maasserver/models/tests/test_interface.py b/src/maasserver/models/tests/test_interface.py
index fcfdc85..8213518 100644
--- a/src/maasserver/models/tests/test_interface.py
+++ b/src/maasserver/models/tests/test_interface.py
@@ -4076,7 +4076,7 @@ class TestReportVID(MAASServerTestCase):
4076 new_vlan.description,4076 new_vlan.description,
4077 )4077 )
40784078
4079 def test_report_vid_handles_existing_vlan(self):4079 def test_report_vid_does_not_modify_existing_vlan(self):
4080 fabric1 = factory.make_Fabric()4080 fabric1 = factory.make_Fabric()
4081 fabric2 = factory.make_Fabric()4081 fabric2 = factory.make_Fabric()
4082 observing_vlan = fabric1.get_default_vlan()4082 observing_vlan = fabric1.get_default_vlan()
@@ -4088,7 +4088,7 @@ class TestReportVID(MAASServerTestCase):
4088 neighbour_vlan.vid, ip=subnet2.get_next_ip_for_allocation()4088 neighbour_vlan.vid, ip=subnet2.get_next_ip_for_allocation()
4089 )4089 )
4090 neighbour_vlan.refresh_from_db()4090 neighbour_vlan.refresh_from_db()
4091 self.assertEqual(observing_vlan.fabric, neighbour_vlan.fabric)4091 self.assertEqual(observing_vlan.fabric, fabric1)
40924092
40934093
4094class TestInterfaceGetDefaultBridgeName(MAASServerTestCase):4094class TestInterfaceGetDefaultBridgeName(MAASServerTestCase):
diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
index f585f53..09fac42 100644
--- a/src/maasserver/models/tests/test_node.py
+++ b/src/maasserver/models/tests/test_node.py
@@ -10994,7 +10994,7 @@ class TestReportNeighbours(MAASServerTestCase):
10994 [call(3, ip=neighbours[0]["ip"]), call(7, ip=neighbours[1]["ip"])]10994 [call(3, ip=neighbours[0]["ip"]), call(7, ip=neighbours[1]["ip"])]
10995 )10995 )
1099610996
10997 def test_updates_fabric_of_existing_vlan(self):10997 def test_does_not_updates_fabric_of_existing_vlan(self):
10998 rack = factory.make_RackController()10998 rack = factory.make_RackController()
10999 observing_fabric = factory.make_Fabric()10999 observing_fabric = factory.make_Fabric()
11000 other_fabric = factory.make_Fabric()11000 other_fabric = factory.make_Fabric()
@@ -11015,10 +11015,10 @@ class TestReportNeighbours(MAASServerTestCase):
11015 ]11015 ]
11016 rack.report_neighbours(neighbours)11016 rack.report_neighbours(neighbours)
11017 observed_vlan.refresh_from_db()11017 observed_vlan.refresh_from_db()
11018 self.assertEqual(observing_fabric, observed_vlan.fabric)11018 self.assertEqual(other_fabric, observed_vlan.fabric)
11019 self.assertEqual(11019 self.assertEqual(
11020 VLAN.objects.filter(11020 VLAN.objects.filter(
11021 vid=observed_vlan.vid, fabric=observing_fabric11021 vid=observed_vlan.vid, fabric=other_fabric
11022 ).count(),11022 ).count(),
11023 1,11023 1,
11024 )11024 )

Subscribers

People subscribed via source and target branches