Merge ~ltrager/maas:lp1916073 into maas:master

Proposed by Lee Trager
Status: Merged
Approved by: Lee Trager
Approved revision: 6db4fd449167829ceb138db329ba645a22f86963
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ltrager/maas:lp1916073
Merge into: maas:master
Diff against target: 68 lines (+31/-2)
2 files modified
src/metadataserver/tests/test_vendor_data.py (+26/-1)
src/metadataserver/vendor_data.py (+5/-1)
Reviewer Review Type Date Requested Status
Lee Trager (community) Approve
MAAS Lander unittests Pending
Review via email: mp+398380@code.launchpad.net

Commit message

LP: #1916073 - Include qemu-efi-aarch64 when install_kvm=True on ARM64

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

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/metadataserver/tests/test_vendor_data.py b/src/metadataserver/tests/test_vendor_data.py
index c99c6f0..3b5e328 100644
--- a/src/metadataserver/tests/test_vendor_data.py
+++ b/src/metadataserver/tests/test_vendor_data.py
@@ -1,4 +1,4 @@
1# Copyright 2016-2019 Canonical Ltd. This software is licensed under the1# Copyright 2016-2021 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""Tests for `metadataserver.vendor_data`."""4"""Tests for `metadataserver.vendor_data`."""
@@ -296,6 +296,7 @@ class TestGenerateRackControllerConfiguration(MAASServerTestCase):
296 self.assertThat(config, Contains("libvirt-daemon-system"))296 self.assertThat(config, Contains("libvirt-daemon-system"))
297 self.assertThat(config, Contains("ForceCommand"))297 self.assertThat(config, Contains("ForceCommand"))
298 self.assertThat(config, Contains("libvirt-clients"))298 self.assertThat(config, Contains("libvirt-clients"))
299 self.assertThat(config, Not(Contains("qemu-efi-aarch64")))
299 # Check that a password was saved for the pod-to-be.300 # Check that a password was saved for the pod-to-be.
300 virsh_password_meta = NodeMetadata.objects.filter(301 virsh_password_meta = NodeMetadata.objects.filter(
301 node=node, key="virsh_password"302 node=node, key="virsh_password"
@@ -330,6 +331,30 @@ class TestGenerateRackControllerConfiguration(MAASServerTestCase):
330 config["runcmd"], Contains(["chmod", "+x", "/etc/rc.local"])331 config["runcmd"], Contains(["chmod", "+x", "/etc/rc.local"])
331 )332 )
332 self.assertThat(config["runcmd"], Contains(["/etc/rc.local"]))333 self.assertThat(config["runcmd"], Contains(["/etc/rc.local"]))
334 self.assertThat(config, Not(Contains("qemu-efi-aarch64")))
335
336 def test_yields_configuration_when_arm64_kvm(self):
337 node = factory.make_Node(
338 status=NODE_STATUS.DEPLOYING,
339 osystem="ubuntu",
340 netboot=False,
341 architecture="arm64/generic",
342 )
343 node.install_kvm = True
344 configuration = get_vendor_data(node, None)
345 config = str(dict(configuration))
346 self.assertThat(config, Contains("virsh"))
347 self.assertThat(config, Contains("ssh_pwauth"))
348 self.assertThat(config, Contains("rbash"))
349 self.assertThat(config, Contains("libvirt-daemon-system"))
350 self.assertThat(config, Contains("ForceCommand"))
351 self.assertThat(config, Contains("libvirt-clients"))
352 self.assertThat(config, Contains("qemu-efi-aarch64"))
353 # Check that a password was saved for the pod-to-be.
354 virsh_password_meta = NodeMetadata.objects.filter(
355 node=node, key="virsh_password"
356 ).first()
357 self.assertThat(virsh_password_meta.value, HasLength(32))
333358
334359
335class TestGenerateEphemeralNetplanLockRemoval(MAASServerTestCase):360class TestGenerateEphemeralNetplanLockRemoval(MAASServerTestCase):
diff --git a/src/metadataserver/vendor_data.py b/src/metadataserver/vendor_data.py
index e0b5a42..4da5c8c 100644
--- a/src/metadataserver/vendor_data.py
+++ b/src/metadataserver/vendor_data.py
@@ -1,4 +1,4 @@
1# Copyright 2016-2019 Canonical Ltd. This software is licensed under the1# Copyright 2016-2021 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4"""vendor-data for cloud-init's use."""4"""vendor-data for cloud-init's use."""
@@ -247,6 +247,10 @@ def generate_kvm_pod_configuration(node):
247 },247 },
248 ]248 ]
249 packages = ["libvirt-daemon-system", "libvirt-clients"]249 packages = ["libvirt-daemon-system", "libvirt-clients"]
250 # libvirt emulates UEFI on ARM64 however qemu-efi-aarch64 is only
251 # a suggestion on ARM64 so cloud-init doesn't install it.
252 if node.split_arch()[0] == "arm64":
253 packages.append("qemu-efi-aarch64")
250 yield "packages", packages254 yield "packages", packages
251255
252256

Subscribers

People subscribed via source and target branches