From 0ae0add87868c7312372a82df26486fb1f015cda Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Wed, 24 Mar 2021 11:53:56 +0100 Subject: [PATCH] Add a unit test for unsupported secure boot Follow-up to https://github.com/metal3-io/baremetal-operator/pull/786 --- .../ironic/validatemanagementaccess_test.go | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pkg/provisioner/ironic/validatemanagementaccess_test.go b/pkg/provisioner/ironic/validatemanagementaccess_test.go index 6ac15ca879..b3a5510f6a 100644 --- a/pkg/provisioner/ironic/validatemanagementaccess_test.go +++ b/pkg/provisioner/ironic/validatemanagementaccess_test.go @@ -620,3 +620,29 @@ func TestValidateManagementAccessAddTwoHostsWithSameMAC(t *testing.T) { assert.Equal(t, "", result.ErrorMessage) assert.NotEqual(t, "", provID) } + +func TestValidateManagementAccessUnsupportedSecureBoot(t *testing.T) { + // Create a host without a bootMACAddress and with a BMC that + // requires one. + host := makeHost() + host.Spec.BootMode = metal3v1alpha1.UEFISecureBoot + host.Status.Provisioning.ID = "" // so we don't lookup by uuid + + ironic := testserver.NewIronic(t).Ready().NoNode(host.Name) + ironic.Start() + defer ironic.Stop() + + auth := clients.AuthConfig{Type: clients.NoAuth} + prov, err := newProvisionerWithSettings(host, bmc.Credentials{}, nil, + ironic.Endpoint(), auth, testserver.NewInspector(t).Endpoint(), auth, + ) + if err != nil { + t.Fatalf("could not create provisioner: %s", err) + } + + result, _, err := prov.ValidateManagementAccess(false, false) + if err != nil { + t.Fatalf("error from ValidateManagementAccess: %s", err) + } + assert.Contains(t, result.ErrorMessage, "does not support secure boot") +}