From 53b5fc427c1dc1ecfe4849d3071c8de7d0e6401f Mon Sep 17 00:00:00 2001 From: Andrea Manzini Date: Tue, 14 Nov 2023 08:38:09 +0100 Subject: [PATCH] Test for firewalld container in ALP product --- schedule/alp/firewalld_container.yaml | 15 ++++++ .../firewalld-container/firewalld_client.pm | 37 ++++++++++++++ .../firewalld-container/firewalld_server.pm | 50 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 schedule/alp/firewalld_container.yaml create mode 100644 tests/microos/workloads/firewalld-container/firewalld_client.pm create mode 100644 tests/microos/workloads/firewalld-container/firewalld_server.pm diff --git a/schedule/alp/firewalld_container.yaml b/schedule/alp/firewalld_container.yaml new file mode 100644 index 000000000000..22aee0a3d91a --- /dev/null +++ b/schedule/alp/firewalld_container.yaml @@ -0,0 +1,15 @@ +--- +name: Firewalld in a Container +description: > + Install and test firewalld container +conditional_schedule: + firewalld_container: + HOSTNAME: + 'client': + - microos/workloads/firewalld-container/firewalld_client + 'server': + - microos/workloads/firewalld-container/firewalld_server +schedule: + - microos/disk_boot + - network/setup_multimachine.pm + - '{{firewalld_container}}' diff --git a/tests/microos/workloads/firewalld-container/firewalld_client.pm b/tests/microos/workloads/firewalld-container/firewalld_client.pm new file mode 100644 index 000000000000..b9e55c69c989 --- /dev/null +++ b/tests/microos/workloads/firewalld-container/firewalld_client.pm @@ -0,0 +1,37 @@ +# SUSE"s openQA tests +# +# Copyright 2023 SUSE LLC +# SPDX-License-Identifier: FSFAP +# +# Package: podman firewalld-container +# Summary: install and verify firewalld container. +# Maintainer: QE Core + +use base "consoletest"; +use warnings; +use strict; +use testapi; +use serial_terminal 'select_serial_terminal'; +use lockapi; + +sub run { + my ($self) = @_; + #select_serial_terminal; + select_console 'root-console'; + mutex_create 'barrier_setup_done'; + mutex_wait 'barrier_setup_done'; + + record_info("1 client ip a", script_output("ip a")); + #setup MM networking + barrier_wait 'FIREWALLD_SERVER_READY'; + record_info("2 client ip a", script_output("ip a")); + # server port should be reachable + # die unless server_port_reachable(); + # barrier_wait 'FIREWALLD_SERVER_PORT_CLOSED'; + # # server port should not be reachable + # die if server_port_reachable(); + # barrier_wait 'FIREWALLD_SERVER_FINISHED'; +} + +1; + diff --git a/tests/microos/workloads/firewalld-container/firewalld_server.pm b/tests/microos/workloads/firewalld-container/firewalld_server.pm new file mode 100644 index 000000000000..7ef0db94593a --- /dev/null +++ b/tests/microos/workloads/firewalld-container/firewalld_server.pm @@ -0,0 +1,50 @@ +# SUSE"s openQA tests +# +# Copyright 2023 SUSE LLC +# SPDX-License-Identifier: FSFAP +# +# Package: podman firewalld-container +# Summary: install and verify firewalld container. +# Maintainer: QE Core + +use base "consoletest"; +use warnings; +use strict; +use testapi; +use serial_terminal 'select_serial_terminal'; +use lockapi; + +sub run { + my ($self) = @_; + mutex_create 'barrier_setup_done'; + mutex_lock 'barrier_setup_done'; + barrier_create($_, 2) for qw(FIREWALLD_SERVER_READY FIREWALLD_SERVER_PORT_CLOSED FIREWALLD_SERVER_FINISHED); + mutex_unlock 'barrier_setup_done'; + #select_serial_terminal; + select_console 'root-console'; + my $hostname = get_var('HOSTNAME'); + record_info("1 server ip a", script_output("ip a")); + # install software + barrier_wait 'FIREWALLD_SERVER_READY'; + # setup MM networking + # close port on firewall, client will test port + # barrier_wait 'FIREWALLD_SERVER_PORT_CLOSED'; + # end operations, cleanup + # barrier_wait 'FIREWALLD_SERVER_FINISHED'; + record_info("2 server ip a", script_output("ip a")); +} + +sub post_run_hook { + cleanup(); +} + +sub post_fail_hook { + cleanup(); +} + +sub cleanup { + barrier_destroy($_) for qw(FIREWALLD_SERVER_READY FIREWALLD_SERVER_PORT_CLOSED FIREWALLD_SERVER_FINISHED); +} + +1; +