Merge ~mpontillo/maas:fix-registration--bug-1705774 into maas:master

Proposed by Mike Pontillo
Status: Merged
Approved by: Mike Pontillo
Approved revision: 88bc926050e09bac0bc94d7106d62a8a31ce97f2
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~mpontillo/maas:fix-registration--bug-1705774
Merge into: maas:master
Diff against target: 64 lines (+41/-1)
2 files modified
src/maasserver/models/node.py (+1/-1)
src/maasserver/models/tests/test_node.py (+40/-0)
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
Review via email: mp+328051@code.launchpad.net

Commit message

Fix registration of disabled interfaces.

LP: #1705774

To post a comment you must log in.
Revision history for this message
Lee Trager (ltrager) wrote :

Thanks for fixing this! I've confirmed this fixes the bug I filed(remember to link it).

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :
Revision history for this message
MAAS Lander (maas-lander) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/models/node.py b/src/maasserver/models/node.py
2index d27a111..d06ce5b 100644
3--- a/src/maasserver/models/node.py
4+++ b/src/maasserver/models/node.py
5@@ -4455,7 +4455,7 @@ class Controller(Node):
6 interface.ip_addresses.exclude(
7 alloc_type=IPADDRESS_TYPE.DISCOVERED))
8 updated_ip_addresses = set()
9- if use_interface_vlan:
10+ if use_interface_vlan and interface.vlan is not None:
11 vlan = interface.vlan
12 elif len(links) > 0:
13 fabric = Fabric.objects.create()
14diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
15index 88ad200..6f1c034 100644
16--- a/src/maasserver/models/tests/test_node.py
17+++ b/src/maasserver/models/tests/test_node.py
18@@ -9151,6 +9151,46 @@ class TestUpdateInterfaces(MAASServerTestCase):
19 vlan=br0_vlan,
20 ))
21
22+ def test_registers_bridge_with_disabled_parent(self):
23+ controller = self.create_empty_controller()
24+ interfaces = {
25+ 'eth0': {
26+ 'enabled': True,
27+ 'links': [{
28+ 'address': '10.0.0.2/24',
29+ 'gateway': '10.0.0.1',
30+ 'mode': 'static'
31+ }],
32+ 'mac_address': '52:54:00:3a:01:35',
33+ 'parents': [],
34+ 'source': 'ipaddr',
35+ 'type': 'physical'
36+ },
37+ 'virbr0': {
38+ 'enabled': True,
39+ 'links': [{
40+ 'address': '192.168.122.1/24', 'mode': 'static'
41+ }],
42+ 'mac_address': '52:54:00:3a:01:36',
43+ 'parents': ['virbr0-nic'],
44+ 'source': 'ipaddr',
45+ 'type': 'bridge'
46+ },
47+ 'virbr0-nic': {
48+ 'enabled': False,
49+ 'mac_address': '52:54:00:3a:01:36',
50+ 'links': [],
51+ 'parents': [],
52+ 'source': 'ipaddr',
53+ 'type': 'physical'
54+ }
55+ }
56+ self.update_interfaces(controller, interfaces)
57+ subnet = get_one(Subnet.objects.filter(cidr='10.0.0.0/24'))
58+ self.assertIsNotNone(subnet)
59+ subnet = get_one(Subnet.objects.filter(cidr='192.168.122.0/24'))
60+ self.assertIsNotNone(subnet)
61+
62 def test_registers_bridge_with_no_parents_and_links(self):
63 controller = self.create_empty_controller()
64 interfaces = {

Subscribers

People subscribed via source and target branches