From 733a40917a9ec9df1e5ed55a8e6adfa8a27465f7 Mon Sep 17 00:00:00 2001 From: Bill Anastasiadis Date: Wed, 13 Dec 2023 11:54:11 +0100 Subject: [PATCH] Add func to retrieve native fencing type --- lib/qesapdeployment.pm | 17 +++++++++++++++++ t/09_qesapdeployment.t | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/lib/qesapdeployment.pm b/lib/qesapdeployment.pm index d7b9065e8522..14e47585fac0 100644 --- a/lib/qesapdeployment.pm +++ b/lib/qesapdeployment.pm @@ -97,6 +97,7 @@ our @EXPORT = qw( qesap_az_get_active_peerings qesap_az_clean_old_peerings qesap_az_setup_native_fencing_permissions + qesap_az_get_native_fencing_type qesap_az_enable_system_assigned_identity qesap_az_assign_role qesap_az_get_tenant_id @@ -1864,6 +1865,22 @@ sub qesap_az_clean_old_peerings { } } +=head2 qesap_az_get_native_fencing_type + + qesap_az_get_native_fencing_type(); + + Gets the native fencing type (spn/msi) + +=cut + +sub qesap_az_get_native_fencing_type { + my $type = get_var('AZURE_FENCE_AGENT_CONFIGURATION', get_var('QESAP_AZURE_FENCE_AGENT_CONFIGURATION', 'msi')); + unless ($type eq 'msi' || $type eq 'spn') { + die "Invalid type: $type. Must be 'msi' or 'spn'."; + } + return $type; +} + =head2 qesap_az_setup_native_fencing_permissions qesap_az_setup_native_fencing_permissions(vmname=>$vm_name, diff --git a/t/09_qesapdeployment.t b/t/09_qesapdeployment.t index 9d4627741fd4..f2f17845afd3 100644 --- a/t/09_qesapdeployment.t +++ b/t/09_qesapdeployment.t @@ -966,4 +966,25 @@ subtest '[qesap_is_job_finished]' => sub { ok($results[2] == 0, "Consider 'running' if the openqa job status response is 'running'"); }; +subtest '[qesap_az_get_native_fencing_type]' => sub { + my $res_empty = qesap_az_get_native_fencing_type(); + ok($res_empty eq 'msi', "Return 'msi' if openqa var is empty"); +}; + +subtest '[qesap_az_get_native_fencing_type] wrong value for openqa variable' => sub { + my $qesap = Test::MockModule->new('qesapdeployment', no_auto => 1); + $qesap->redefine(get_var => sub { return 'AEGEAN'; }); + dies_ok { qesap_az_get_native_fencing_type(); } 'Expected die if value is unexpected'; +}; + +subtest '[qesap_az_get_native_fencing_type] correct variable' => sub { + my $qesap = Test::MockModule->new('qesapdeployment', no_auto => 1); + $qesap->redefine(get_var => sub { return 'msi'; }); + my $res_msi = qesap_az_get_native_fencing_type(); + $qesap->redefine(get_var => sub { return 'spn'; }); + my $res_spn = qesap_az_get_native_fencing_type(); + ok($res_msi eq 'msi', "Return 'msi' if openqa var is 'msi'"); + ok($res_spn eq 'spn', "Return 'spn' if openqa var is 'spn'"); +}; + done_testing;