← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~igor-brovtsin/maas:lp-1994945-3.2 into maas:3.2

 

Igor Brovtsin has proposed merging ~igor-brovtsin/maas:lp-1994945-3.2 into maas:3.2.

Commit message:
fix(LP#1994945): don't try to set default value when no values are present

Requested reviews:
  MAAS Lander (maas-lander): unittests
  MAAS Maintainers (maas-maintainers)

For more details, see:
https://code.launchpad.net/~igor-brovtsin/maas/+git/maas/+merge/434784

This MP backports a fix for an issue preventing users from allocating machines when at least one virsh host is uninitialized
-- 
Your team MAAS Committers is subscribed to branch maas:3.2.
diff --git a/src/maasserver/forms/pods.py b/src/maasserver/forms/pods.py
index f89f763..0bbb932 100644
--- a/src/maasserver/forms/pods.py
+++ b/src/maasserver/forms/pods.py
@@ -421,7 +421,9 @@ class ComposeMachineForm(forms.Form):
             choices=[(arch, arch) for arch in self.pod.architectures],
             required=False,
         )
-        self.initial["architecture"] = self.pod.architectures[0]
+        if self.pod.architectures:
+            self.initial["architecture"] = self.pod.architectures[0]
+
         if self.pod.hints.cpu_speed > 0:
             self.fields["cpu_speed"] = IntegerField(
                 min_value=300,
diff --git a/src/maasserver/forms/tests/test_pods.py b/src/maasserver/forms/tests/test_pods.py
index 7da9452..430e9a3 100644
--- a/src/maasserver/forms/tests/test_pods.py
+++ b/src/maasserver/forms/tests/test_pods.py
@@ -620,6 +620,17 @@ class TestComposeMachineForm(MAASTransactionServerTestCase):
             ),
         )
 
+    def test_sets_up_fields_based_on_pod_no_architectures(self):
+        request = MagicMock()
+        pod = make_pod_with_hints()
+        pod.architectures = []
+        form = ComposeMachineForm(request=request, pod=pod)
+        self.assertFalse(form.fields["architecture"].required)
+        self.assertEqual(
+            pod.architectures, form.fields["architecture"].choices
+        )
+        self.assertNotIn("architecture", form.initial)
+
     def test_sets_up_fields_based_on_pod_no_max_cpu_speed(self):
         request = MagicMock()
         pod = make_pod_with_hints()