From 05de3cbbc6c09114b1cd98dc070114345c2c9c28 Mon Sep 17 00:00:00 2001 From: Wang Jun Date: Mon, 19 Aug 2024 11:58:43 +0800 Subject: [PATCH] Add timeout for script_run "test -e $inventory" --- lib/qesapdeployment.pm | 6 +++++- t/09_qesapdeployment.t | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/qesapdeployment.pm b/lib/qesapdeployment.pm index f690e6de2410..dca3a9cfd757 100644 --- a/lib/qesapdeployment.pm +++ b/lib/qesapdeployment.pm @@ -1273,7 +1273,11 @@ sub qesap_cluster_log_cmds { sub qesap_cluster_logs { my $provider = get_required_var('PUBLIC_CLOUD_PROVIDER'); my $inventory = qesap_get_inventory(provider => $provider); - if (script_run("test -e $inventory") == 0) + + # ETX is the same as pressing Ctrl-C on a terminal, + # make sure the serial terminal is NOT blocked + type_string('', terminate_with => 'ETX'); + if (script_run("test -e $inventory", 60) == 0) { foreach my $host ('hana[0]', 'hana[1]') { foreach my $cmd (qesap_cluster_log_cmds()) { diff --git a/t/09_qesapdeployment.t b/t/09_qesapdeployment.t index 2bfcb5abbafa..7c5010d02965 100644 --- a/t/09_qesapdeployment.t +++ b/t/09_qesapdeployment.t @@ -595,6 +595,7 @@ subtest '[qesap_cluster_logs]' => sub { return 'BOUBLE BOUBLE BOUBLE'; }); $qesap->redefine(qesap_get_inventory => sub { return '/BERMUDAS/TRIANGLE'; }); $qesap->redefine(script_run => sub { return 0; }); + $qesap->redefine(type_string => sub { return; }); $qesap->redefine(upload_logs => sub { push @save_file_calls, $_[0]; return; }); $qesap->redefine(qesap_cluster_log_cmds => sub { return ({Cmd => 'crm status', Output => 'crm_status.txt'}); }); $qesap->redefine(qesap_upload_crm_report => sub { my (%args) = @_; push @crm_report_calls, $args{host}; return 0; }); @@ -628,6 +629,7 @@ subtest '[qesap_cluster_logs] multi log command' => sub { return 'BOUBLE BOUBLE BOUBLE'; }); $qesap->redefine(qesap_get_inventory => sub { return '/BERMUDAS/TRIANGLE'; }); $qesap->redefine(script_run => sub { return 0; }); + $qesap->redefine(type_string => sub { return; }); $qesap->redefine(upload_logs => sub { return; }); $qesap->redefine(qesap_cluster_log_cmds => sub { return ({Cmd => 'crm status', Output => 'crm_status.txt', Logs => ['ignore_me.txt', 'ignore_me_too.txt']}); }); $qesap->redefine(qesap_upload_crm_report => sub { return 0; });