sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #08249
[Merge] ~ack/maas:drop-interface-autoconf-param into maas:master
Alberto Donato has proposed merging ~ack/maas:drop-interface-autoconf-param into maas:master with ~ack/maas:interface-params-cleanups as a prerequisite.
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.
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~ack/maas/+git/maas/+merge/442590
--
Your team MAAS Maintainers is requested to review the proposed merge of ~ack/maas:drop-interface-autoconf-param into maas:master.
diff --git a/src/maasserver/api/interfaces.py b/src/maasserver/api/interfaces.py
index 7510242..c985c92 100644
--- a/src/maasserver/api/interfaces.py
+++ b/src/maasserver/api/interfaces.py
@@ -192,9 +192,6 @@ class InterfacesHandler(OperationsHandler):
@param (boolean) "accept_ra" [required=false] Accept router
advertisements. (IPv6 only)
- @param (boolean) "autoconf" [required=false] Perform stateless
- autoconfiguration. (IPv6 only)
-
@success (http-status-code) "server-success" 200
@success (json) "success-json" A JSON object containing the new
interface object.
@@ -325,9 +322,6 @@ class InterfacesHandler(OperationsHandler):
@param (boolean) "accept_ra" [required=false] Accept router
advertisements. (IPv6 only)
- @param (boolean) "autoconf" [required=false] Perform stateless
- autoconfiguration. (IPv6 only)
-
@success (http-status-code) "server-success" 200
@success (json) "success-json" A JSON object containing the new
bond interface object.
@@ -371,9 +365,6 @@ class InterfacesHandler(OperationsHandler):
@param (boolean) "accept_ra" [required=false] Accept router
advertisements. (IPv6 only)
- @param (boolean) "autoconf" [required=false] Perform stateless
- autoconfiguration. (IPv6 only)
-
@success (http-status-code) "server-success" 200
@success (json) "success-json" A JSON object containing the new
VLAN interface object.
@@ -439,9 +430,6 @@ class InterfacesHandler(OperationsHandler):
@param (boolean) "accept_ra" [required=false] Accept router
advertisements. (IPv6 only)
- @param (boolean) "autoconf" [required=false] Perform stateless
- autoconfiguration. (IPv6 only)
-
@success (http-status-code) "server-success" 200
@success (json) "success-json" A JSON object containing the new
bridge interface object.
@@ -697,9 +685,6 @@ class InterfaceHandler(OperationsHandler):
@param (string) "accept_ra" [required=false] Accept router
advertisements. (IPv6 only)
- @param (string) "autoconf" [required=false] Perform stateless
- autoconfiguration. (IPv6 only)
-
@param (boolean) "link_connected" [required=false]
(Physical interfaces) Whether or not the interface is physically
conntected to an uplink. (Default: True).
diff --git a/src/maasserver/forms/interface.py b/src/maasserver/forms/interface.py
index 46b6229..58c1d0b 100644
--- a/src/maasserver/forms/interface.py
+++ b/src/maasserver/forms/interface.py
@@ -53,7 +53,6 @@ class InterfaceForm(MAASModelForm):
# IPv6 parameters.
accept_ra = forms.NullBooleanField(required=False)
- autoconf = forms.NullBooleanField(required=False)
# Device parameters
ip_assignment = forms.MultipleChoiceField(
@@ -224,7 +223,6 @@ class InterfaceForm(MAASModelForm):
interface.params = {}
self._set_param(interface, "mtu")
self._set_param(interface, "accept_ra", netplan_key="accept-ra")
- self._set_param(interface, "autoconf")
class ControllerInterfaceForm(MAASModelForm):
diff --git a/src/maasserver/forms/tests/test_interface.py b/src/maasserver/forms/tests/test_interface.py
index 0ce7041..0abd7e1 100644
--- a/src/maasserver/forms/tests/test_interface.py
+++ b/src/maasserver/forms/tests/test_interface.py
@@ -533,7 +533,6 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
tags = [factory.make_name("tag") for _ in range(3)]
mtu = random.randint(1000, 2000)
accept_ra = factory.pick_bool()
- autoconf = factory.pick_bool()
form = PhysicalInterfaceForm(
node=node,
data={
@@ -543,13 +542,12 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
"tags": ",".join(tags),
"mtu": mtu,
"accept_ra": accept_ra,
- "autoconf": autoconf,
},
)
self.assertTrue(form.is_valid(), dict(form.errors))
interface = form.save()
self.assertEqual(
- {"mtu": mtu, "accept-ra": accept_ra, "autoconf": autoconf},
+ {"mtu": mtu, "accept-ra": accept_ra},
interface.params,
)
@@ -559,11 +557,9 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
)
mtu = random.randint(1000, 2000)
accept_ra = factory.pick_bool()
- autoconf = factory.pick_bool()
interface.params = {
"mtu": mtu,
"accept-ra": accept_ra,
- "autoconf": autoconf,
}
new_name = "eth1"
new_vlan = factory.make_VLAN(vid=33)
@@ -579,7 +575,7 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
self.assertTrue(form.is_valid(), dict(form.errors))
interface = form.save()
self.assertEqual(
- {"mtu": mtu, "accept-ra": accept_ra, "autoconf": autoconf},
+ {"mtu": mtu, "accept-ra": accept_ra},
interface.params,
)
@@ -589,21 +585,17 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
)
mtu = random.randint(1000, 2000)
accept_ra = factory.pick_bool()
- autoconf = factory.pick_bool()
interface.params = {
"mtu": mtu,
"accept-ra": accept_ra,
- "autoconf": autoconf,
}
new_mtu = random.randint(1000, 2000)
new_accept_ra = not accept_ra
- new_autoconf = not autoconf
form = PhysicalInterfaceForm(
instance=interface,
data={
"mtu": new_mtu,
"accept_ra": new_accept_ra,
- "autoconf": new_autoconf,
},
)
self.assertTrue(form.is_valid(), dict(form.errors))
@@ -612,7 +604,6 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
{
"mtu": new_mtu,
"accept-ra": new_accept_ra,
- "autoconf": new_autoconf,
},
interface.params,
)
@@ -623,15 +614,13 @@ class TestPhysicalInterfaceForm(MAASServerTestCase):
)
mtu = random.randint(1000, 2000)
accept_ra = factory.pick_bool()
- autoconf = factory.pick_bool()
interface.params = {
"mtu": mtu,
"accept-ra": accept_ra,
- "autoconf": autoconf,
}
form = PhysicalInterfaceForm(
instance=interface,
- data={"mtu": "", "accept_ra": "", "autoconf": ""},
+ data={"mtu": "", "accept_ra": ""},
)
self.assertTrue(form.is_valid(), dict(form.errors))
interface = form.save()
diff --git a/src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py b/src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py
new file mode 100644
index 0000000..c827cbc
--- /dev/null
+++ b/src/maasserver/migrations/maasserver/0304_interface_params_no_autoconf.py
@@ -0,0 +1,27 @@
+# Generated by Django 3.2.12 on 2023-05-10 08:08
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("maasserver", "0303_interface_params_cleanups"),
+ ]
+
+ operations = [
+ # drop 'autoconf' parameter
+ migrations.RunSQL(
+ "UPDATE maasserver_interface SET params = params - 'autoconf'"
+ ),
+ # convert 'accept_ra' to 'accept-ra'
+ migrations.RunSQL(
+ """
+ UPDATE maasserver_interface
+ SET params = (
+ params - 'accept_ra' ||
+ jsonb_build_object('accept-ra', (params->>'accept_ra')::bool)
+ )
+ WHERE params->>'accept_ra' IS NOT NULL
+ """
+ ),
+ ]
diff --git a/src/maasserver/models/tests/test_node.py b/src/maasserver/models/tests/test_node.py
index 4eb10d4..694844d 100644
--- a/src/maasserver/models/tests/test_node.py
+++ b/src/maasserver/models/tests/test_node.py
@@ -12575,7 +12575,6 @@ class TestNodeInterfaceClone_SimpleNetworkLayout(
iface.params = {
"mtu": random.randint(600, 1400),
"accept_ra": factory.pick_bool(),
- "autoconf": factory.pick_bool(),
}
iface.save()
extra_interface = node.current_config.interface_set.all()[1]
diff --git a/src/maasserver/tests/test_preseed_network.py b/src/maasserver/tests/test_preseed_network.py
index 2737d7b..c8e3044 100644
--- a/src/maasserver/tests/test_preseed_network.py
+++ b/src/maasserver/tests/test_preseed_network.py
@@ -342,7 +342,6 @@ class TestSingleAddrFamilyLayout(MAASServerTestCase, AssertNetworkConfigMixin):
iface.params = {
"mtu": random.randint(600, 1400),
"accept_ra": factory.pick_bool(),
- "autoconf": factory.pick_bool(),
}
iface.save()
extra_interface = node.current_config.interface_set.all()[1]
@@ -380,7 +379,6 @@ class TestSimpleNetworkLayout(MAASServerTestCase, AssertNetworkConfigMixin):
iface.params = {
"mtu": random.randint(600, 1400),
"accept_ra": factory.pick_bool(),
- "autoconf": factory.pick_bool(),
}
iface.save()
extra_interface = node.current_config.interface_set.all()[1]
Follow ups