From 5867823bc12d094335257030f01d1b366e788881 Mon Sep 17 00:00:00 2001 From: Bernhard Suttner Date: Tue, 25 Nov 2025 16:26:10 +0100 Subject: [PATCH] Add OpenVox server support Co-Authored-by: Markus Bucher --- definitions/features/puppet_server.rb | 13 +++++++++++-- .../procedures/restore/required_packages.rb | 1 + lib/foreman_maintain/utils/backup.rb | 4 ++++ .../procedures/restore/required_packages_test.rb | 16 ++++++++++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/definitions/features/puppet_server.rb b/definitions/features/puppet_server.rb index 2ad638ec1..2d5bc19e8 100644 --- a/definitions/features/puppet_server.rb +++ b/definitions/features/puppet_server.rb @@ -3,7 +3,10 @@ class Features::PuppetServer < ForemanMaintain::Feature label :puppet_server confine do - find_package('puppet-server') || find_package('puppetserver') || find_package('puppet') + find_package('puppet-server') || + find_package('openvox-server') || + find_package('puppetserver') || + find_package('puppet') end end @@ -23,7 +26,13 @@ def services # We only check puppetserver and not puppet-server, as puppet-server # is a part of httpd and relies on httpd service to restart, therefore # not requiring a separate service to restart - find_package('puppetserver') ? [system_service('puppetserver', 30)] : [] + return [system_service('puppetserver', 30)] if find_package('puppetserver') || + find_package('openvox-server') + [] + end + + def openvox? + find_package('openvox-server') end def find_empty_cacert_request_files diff --git a/definitions/procedures/restore/required_packages.rb b/definitions/procedures/restore/required_packages.rb index f6881417a..8850fc6f5 100644 --- a/definitions/procedures/restore/required_packages.rb +++ b/definitions/procedures/restore/required_packages.rb @@ -12,6 +12,7 @@ def run backup = ForemanMaintain::Utils::Backup.new(@backup_dir) required_packages = [] required_packages << 'puppetserver' if backup.with_puppetserver? + required_packages << 'openvox-server' if backup.with_openvoxserver? if required_packages.any? with_spinner('Installing required packages') do ForemanMaintain.package_manager.install(required_packages, assumeyes: true) diff --git a/lib/foreman_maintain/utils/backup.rb b/lib/foreman_maintain/utils/backup.rb index 96faa2af4..95aa69561 100644 --- a/lib/foreman_maintain/utils/backup.rb +++ b/lib/foreman_maintain/utils/backup.rb @@ -179,6 +179,10 @@ def with_puppetserver? installed_rpms.any? { |rpm| rpm.start_with?('puppetserver-') } end + def with_openvoxserver? + installed_rpms.any? { |rpm| rpm.start_with?('openvox-server-') } + end + def source_os_version metadata.fetch('os_version', 'unknown') end diff --git a/test/definitions/procedures/restore/required_packages_test.rb b/test/definitions/procedures/restore/required_packages_test.rb index c3f236dc5..ff86c84b4 100644 --- a/test/definitions/procedures/restore/required_packages_test.rb +++ b/test/definitions/procedures/restore/required_packages_test.rb @@ -7,6 +7,22 @@ Procedures::Restore::RequiredPackages.new(:backup_dir => '.') end + it 'installs openvox-server if it was in the backup' do + ForemanMaintain::Utils::Backup.any_instance.stubs(:with_openvoxserver?).returns(true) + ForemanMaintain.package_manager.expects(:install). + with(['openvox-server'], assumeyes: true).once + result = run_procedure(subject) + assert result.success?, 'the procedure was expected to succeed' + end + + it 'doesnt install openvox-server if it wasnt in the backup' do + ForemanMaintain::Utils::Backup.any_instance.stubs(:with_openvoxserver?).returns(false) + ForemanMaintain.package_manager.expects(:install). + with(['openvox-server'], assumeyes: true).never + result = run_procedure(subject) + assert result.success?, 'the procedure was expected to succeed' + end + it 'installs puppetserver if it was in the backup' do ForemanMaintain::Utils::Backup.any_instance.stubs(:with_puppetserver?).returns(true) ForemanMaintain.package_manager.expects(:install).