Merge ~ack/maas:drop-interface-autoconf-param into maas:master

Proposed by Alberto Donato
Status: Merged
Approved by: Alberto Donato
Approved revision: 370ee5bcd78286e7aa56f54ac4f78e2de5b8d4a4
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ack/maas:drop-interface-autoconf-param
Merge into: maas:master
Prerequisite: ~ack/maas:interface-params-cleanups
Diff against target: 234 lines (+30/-34)
6 files modified
src/maasserver/api/interfaces.py (+0/-15)
src/maasserver/forms/interface.py (+0/-2)
src/maasserver/forms/tests/test_interface.py (+3/-14)
src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py (+27/-0)
src/maasserver/models/tests/test_node.py (+0/-1)
src/maasserver/tests/test_preseed_network.py (+0/-2)
Reviewer Review Type Date Requested Status
Björn Tillenius Approve
MAAS Lander Approve
Alexsander de Souza Approve
Review via email: mp+442590@code.launchpad.net

Commit message

drop the "autoconf" parameter for interfaces, as it's not supported by cloud-init/netplan.

This also updates existing accept_ra parameters to accept-ra in the db.

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

UNIT TESTS
-b drop-interface-autoconf-param lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 4b1828296cb00f9b6963cb285d68ec2d903cbe02

review: Approve
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

+1

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

UNIT TESTS
-b drop-interface-autoconf-param lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 370ee5bcd78286e7aa56f54ac4f78e2de5b8d4a4

review: Approve
Revision history for this message
Björn Tillenius (bjornt) wrote :

I think this is OK. Looking closer at the history, the autoconf parameter was added before netplan existed and was most likely valid for ENI configuration. But up to this date, it seems like netplan doesn't have support for autoconf, so it hasn't have had any effect in many years.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/api/interfaces.py b/src/maasserver/api/interfaces.py
2index 7510242..c985c92 100644
3--- a/src/maasserver/api/interfaces.py
4+++ b/src/maasserver/api/interfaces.py
5@@ -192,9 +192,6 @@ class InterfacesHandler(OperationsHandler):
6 @param (boolean) "accept_ra" [required=false] Accept router
7 advertisements. (IPv6 only)
8
9- @param (boolean) "autoconf" [required=false] Perform stateless
10- autoconfiguration. (IPv6 only)
11-
12 @success (http-status-code) "server-success" 200
13 @success (json) "success-json" A JSON object containing the new
14 interface object.
15@@ -325,9 +322,6 @@ class InterfacesHandler(OperationsHandler):
16 @param (boolean) "accept_ra" [required=false] Accept router
17 advertisements. (IPv6 only)
18
19- @param (boolean) "autoconf" [required=false] Perform stateless
20- autoconfiguration. (IPv6 only)
21-
22 @success (http-status-code) "server-success" 200
23 @success (json) "success-json" A JSON object containing the new
24 bond interface object.
25@@ -371,9 +365,6 @@ class InterfacesHandler(OperationsHandler):
26 @param (boolean) "accept_ra" [required=false] Accept router
27 advertisements. (IPv6 only)
28
29- @param (boolean) "autoconf" [required=false] Perform stateless
30- autoconfiguration. (IPv6 only)
31-
32 @success (http-status-code) "server-success" 200
33 @success (json) "success-json" A JSON object containing the new
34 VLAN interface object.
35@@ -439,9 +430,6 @@ class InterfacesHandler(OperationsHandler):
36 @param (boolean) "accept_ra" [required=false] Accept router
37 advertisements. (IPv6 only)
38
39- @param (boolean) "autoconf" [required=false] Perform stateless
40- autoconfiguration. (IPv6 only)
41-
42 @success (http-status-code) "server-success" 200
43 @success (json) "success-json" A JSON object containing the new
44 bridge interface object.
45@@ -697,9 +685,6 @@ class InterfaceHandler(OperationsHandler):
46 @param (string) "accept_ra" [required=false] Accept router
47 advertisements. (IPv6 only)
48
49- @param (string) "autoconf" [required=false] Perform stateless
50- autoconfiguration. (IPv6 only)
51-
52 @param (boolean) "link_connected" [required=false]
53 (Physical interfaces) Whether or not the interface is physically
54 conntected to an uplink. (Default: True).
55diff --git a/src/maasserver/forms/interface.py b/src/maasserver/forms/interface.py
56index 46b6229..58c1d0b 100644
57--- a/src/maasserver/forms/interface.py
58+++ b/src/maasserver/forms/interface.py
59@@ -53,7 +53,6 @@ class InterfaceForm(MAASModelForm):
60
61 # IPv6 parameters.
62 accept_ra = forms.NullBooleanField(required=False)
63- autoconf = forms.NullBooleanField(required=False)
64
65 # Device parameters
66 ip_assignment = forms.MultipleChoiceField(
67@@ -224,7 +223,6 @@ class InterfaceForm(MAASModelForm):
68 interface.params = {}
69 self._set_param(interface, "mtu")
70 self._set_param(interface, "accept_ra", netplan_key="accept-ra")
71- self._set_param(interface, "autoconf")
72
73
74 class ControllerInterfaceForm(MAASModelForm):
75diff --git a/src/maasserver/forms/tests/test_interface.py b/src/maasserver/forms/tests/test_interface.py
76index 0ce7041..0abd7e1 100644
77--- a/src/maasserver/forms/tests/test_interface.py
78+++ b/src/maasserver/forms/tests/test_interface.py
79@@ -533,7 +533,6 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
80 tags = [factory.make_name("tag") for _ in range(3)]
81 mtu = random.randint(1000, 2000)
82 accept_ra = factory.pick_bool()
83- autoconf = factory.pick_bool()
84 form = PhysicalInterfaceForm(
85 node=node,
86 data={
87@@ -543,13 +542,12 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
88 "tags": ",".join(tags),
89 "mtu": mtu,
90 "accept_ra": accept_ra,
91- "autoconf": autoconf,
92 },
93 )
94 self.assertTrue(form.is_valid(), dict(form.errors))
95 interface = form.save()
96 self.assertEqual(
97- {"mtu": mtu, "accept-ra": accept_ra, "autoconf": autoconf},
98+ {"mtu": mtu, "accept-ra": accept_ra},
99 interface.params,
100 )
101
102@@ -559,11 +557,9 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
103 )
104 mtu = random.randint(1000, 2000)
105 accept_ra = factory.pick_bool()
106- autoconf = factory.pick_bool()
107 interface.params = {
108 "mtu": mtu,
109 "accept-ra": accept_ra,
110- "autoconf": autoconf,
111 }
112 new_name = "eth1"
113 new_vlan = factory.make_VLAN(vid=33)
114@@ -579,7 +575,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
115 self.assertTrue(form.is_valid(), dict(form.errors))
116 interface = form.save()
117 self.assertEqual(
118- {"mtu": mtu, "accept-ra": accept_ra, "autoconf": autoconf},
119+ {"mtu": mtu, "accept-ra": accept_ra},
120 interface.params,
121 )
122
123@@ -589,21 +585,17 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
124 )
125 mtu = random.randint(1000, 2000)
126 accept_ra = factory.pick_bool()
127- autoconf = factory.pick_bool()
128 interface.params = {
129 "mtu": mtu,
130 "accept-ra": accept_ra,
131- "autoconf": autoconf,
132 }
133 new_mtu = random.randint(1000, 2000)
134 new_accept_ra = not accept_ra
135- new_autoconf = not autoconf
136 form = PhysicalInterfaceForm(
137 instance=interface,
138 data={
139 "mtu": new_mtu,
140 "accept_ra": new_accept_ra,
141- "autoconf": new_autoconf,
142 },
143 )
144 self.assertTrue(form.is_valid(), dict(form.errors))
145@@ -612,7 +604,6 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
146 {
147 "mtu": new_mtu,
148 "accept-ra": new_accept_ra,
149- "autoconf": new_autoconf,
150 },
151 interface.params,
152 )
153@@ -623,15 +614,13 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
154 )
155 mtu = random.randint(1000, 2000)
156 accept_ra = factory.pick_bool()
157- autoconf = factory.pick_bool()
158 interface.params = {
159 "mtu": mtu,
160 "accept-ra": accept_ra,
161- "autoconf": autoconf,
162 }
163 form = PhysicalInterfaceForm(
164 instance=interface,
165- data={"mtu": "", "accept_ra": "", "autoconf": ""},
166+ data={"mtu": "", "accept_ra": ""},
167 )
168 self.assertTrue(form.is_valid(), dict(form.errors))
169 interface = form.save()
170diff --git a/src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py b/src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py
171new file mode 100644
172index 0000000..c827cbc
173--- /dev/null
174+++ b/src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py
175@@ -0,0 +1,27 @@
176+# Generated by Django 3.2.12 on 2023-05-10 08:08
177+
178+from django.db import migrations
179+
180+
181+class Migration(migrations.Migration):
182+ dependencies = [
183+ ("maasserver", "0303_interface_params_cleanups"),
184+ ]
185+
186+ operations = [
187+ # drop 'autoconf' parameter
188+ migrations.RunSQL(
189+ "UPDATE maasserver_interface SET params = params - 'autoconf'"
190+ ),
191+ # convert 'accept_ra' to 'accept-ra'
192+ migrations.RunSQL(
193+ """
194+ UPDATE maasserver_interface
195+ SET params = (
196+ params - 'accept_ra' ||
197+ jsonb_build_object('accept-ra', (params->>'accept_ra')::bool)
198+ )
199+ WHERE params->>'accept_ra' IS NOT NULL
200+ """
201+ ),
202+ ]
203diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
204index 4eb10d4..694844d 100644
205--- a/src/maasserver/models/tests/test_node.py
206+++ b/src/maasserver/models/tests/test_node.py
207@@ -12575,7 +12575,6 @@ class TestNodeInterfaceClone_SimpleNetworkLayout(
208 iface.params = {
209 "mtu": random.randint(600, 1400),
210 "accept_ra": factory.pick_bool(),
211- "autoconf": factory.pick_bool(),
212 }
213 iface.save()
214 extra_interface = node.current_config.interface_set.all()[1]
215diff --git a/src/maasserver/tests/test_preseed_network.py b/src/maasserver/tests/test_preseed_network.py
216index 2737d7b..c8e3044 100644
217--- a/src/maasserver/tests/test_preseed_network.py
218+++ b/src/maasserver/tests/test_preseed_network.py
219@@ -342,7 +342,6 @@ class TestSingleAddrFamilyLayout(MAASServerTestCase, AssertNetworkConfigMixin):
220 iface.params = {
221 "mtu": random.randint(600, 1400),
222 "accept_ra": factory.pick_bool(),
223- "autoconf": factory.pick_bool(),
224 }
225 iface.save()
226 extra_interface = node.current_config.interface_set.all()[1]
227@@ -380,7 +379,6 @@ class TestSimpleNetworkLayout(MAASServerTestCase, AssertNetworkConfigMixin):
228 iface.params = {
229 "mtu": random.randint(600, 1400),
230 "accept_ra": factory.pick_bool(),
231- "autoconf": factory.pick_bool(),
232 }
233 iface.save()
234 extra_interface = node.current_config.interface_set.all()[1]

Subscribers

People subscribed via source and target branches