Skip to content

Commit

Permalink
Merge pull request #20768 from pdostal/pc_bootlog
Browse files Browse the repository at this point in the history
PC: Fix the console output collecting process
  • Loading branch information
asmorodskyi authored Dec 12, 2024
2 parents c331cf0 + 0636fd4 commit 1954343
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 9 deletions.
9 changes: 9 additions & 0 deletions data/publiccloud/terraform/azure.tf
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,12 @@ data "azurerm_public_ip" "openqa-publicip" {
output "public_ip" {
value = data.azurerm_public_ip.openqa-publicip.*.ip_address
}

output "instance_id" {
value = azurerm_linux_virtual_machine.openqa-vm.*.id
}

output "resource_group_name" {
value = azurerm_resource_group.openqa-group.*.name
}

9 changes: 9 additions & 0 deletions data/publiccloud/terraform/azure_cloud-netconfig.tf
Original file line number Diff line number Diff line change
Expand Up @@ -247,3 +247,12 @@ data "azurerm_public_ip" "openqa-secondary-publicip" {
output "secondary_public_ip" {
value = data.azurerm_public_ip.openqa-secondary-publicip.*.ip_address
}

output "instance_id" {
value = azurerm_linux_virtual_machine.openqa-vm.*.id
}

output "resource_group_name" {
value = azurerm_resource_group.openqa-group.*.name
}

9 changes: 9 additions & 0 deletions data/publiccloud/terraform/azure_nfstest.tf
Original file line number Diff line number Diff line change
Expand Up @@ -235,3 +235,12 @@ output "public_ip" {
output "resource_id" {
value = element(random_id.service.*.hex, 0)
}

output "instance_id" {
value = azurerm_linux_virtual_machine.openqa-vm.*.id
}

output "resource_group_name" {
value = azurerm_resource_group.openqa-group.*.name
}

17 changes: 13 additions & 4 deletions lib/publiccloud/azure.pm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ package publiccloud::azure;
use Mojo::Base 'publiccloud::provider';
use Mojo::JSON qw(decode_json encode_json);
use Term::ANSIColor 2.01 'colorstrip';
use Data::Dumper;
use testapi qw(is_serial_terminal :DEFAULT);
use mmapi 'get_current_job_id';
use utils qw(script_output_retry);
Expand Down Expand Up @@ -633,13 +632,23 @@ This method is called called after each test on failure or success to revoke the

sub cleanup {
my ($self, $args) = @_;

script_run('cd ' . get_var('PUBLIC_CLOUD_TERRAFORM_DIR', '~/terraform'));
#my $terraform_output = script_output('terraform output -json', proceed_on_failure => 1);
#my $terraform_output_json = decode_json($terraform_output);
#my $instance_id = $terraform_output_json->{instance_id}->{value}[0];
my $instance_id = $self->get_terraform_output('.instance_id.value[0]');
$instance_id =~ s/.*\/(.*)/$1/;
#my $resource_group = $terraform_output_json->{resource_group_name}->{value}[0];
my $resource_group = $self->get_terraform_output('.resource_group_name.value[0]');
script_run('cd');

select_host_console(force => 1);

$self->get_image_version() if (get_var('PUBLIC_CLOUD_BUILD'));

if (!check_var('PUBLIC_CLOUD_SLES4SAP', 1) && defined($args->{my_instance}->{instance_id})) {
my $id = $args->{my_instance}->{instance_id};
script_run("timeout 110 az vm boot-diagnostics get-boot-log --ids $id | jq -r '.' > bootlog.txt", timeout => 120);
if (!check_var('PUBLIC_CLOUD_SLES4SAP', 1) && defined($instance_id) && defined($resource_group)) {
script_run("timeout 110 az vm boot-diagnostics get-boot-log --name $instance_id --resource-group $resource_group | jq -r '.' > bootlog.txt", timeout => 120);
upload_logs("bootlog.txt", failok => 1);
}
$self->SUPER::cleanup();
Expand Down
11 changes: 7 additions & 4 deletions lib/publiccloud/ec2.pm
Original file line number Diff line number Diff line change
Expand Up @@ -210,13 +210,16 @@ sub img_proof {

sub cleanup {
my ($self, $args) = @_;
script_run('cd ~/terraform');
my $instance_id = script_output('terraform output -json | jq -r ".vm_name.value[0]"', proceed_on_failure => 1);
script_run('cd');

select_host_console(force => 1);

script_run('cd ' . get_var('PUBLIC_CLOUD_TERRAFORM_DIR', '~/terraform'));
#my $instance_id = script_output('terraform output -json | jq -r ".vm_name.value[0]"', proceed_on_failure => 1);
my $instance_id = $self->get_terraform_output('.vm_name.value[]');
script_run('cd');

if (!check_var('PUBLIC_CLOUD_SLES4SAP', 1) && defined($instance_id)) {
script_run("aws ec2 get-console-output --instance-id $instance_id | jq -r '.Output' > console.txt");
script_run("aws ec2 get-console-output --latest --color=on --no-paginate --output text --instance-id $instance_id &> console.txt");
upload_logs("console.txt", failok => 1);

script_run("aws ec2 get-console-screenshot --instance-id $instance_id | jq -r '.ImageData' | base64 --decode > console.jpg");
Expand Down
1 change: 0 additions & 1 deletion tests/publiccloud/ssh_interactive_end.pm
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ use utils;
sub run {
my ($self, $args) = @_;
select_host_console(force => 1);
$args->{my_provider}->cleanup($args) unless check_var('PUBLIC_CLOUD_SLES4SAP', 1);
}

1;

0 comments on commit 1954343

Please sign in to comment.