|
|
# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.
from sos_tests import StageOneReportTest, redhat_only, ubuntu_only
# known values in our CI test images
FOREMAN_DB_PASSWORD = r'S0Sdb=p@ssw0rd!'
FOREMAN_ADMIN_PASSWORD = r'S0S@dmin\\p@ssw0rd!'
CANDLEPIN_DB_PASSWORD = r'S0SKatello%sp@ssw0rd!'
FOREMAN_PASSWORDS = [
FOREMAN_DB_PASSWORD,
FOREMAN_ADMIN_PASSWORD,
CANDLEPIN_DB_PASSWORD
]
class ForemanBasicTest(StageOneReportTest):
"""Ensure that a basic execution runs as expected with all TFM related
plugins. For the Red Hat tests, it assumes Foreman has been deployed on a
Katello system. On Debian systems, these tests are skipped.
:avocado: tags=foreman
"""
sos_cmd = '-v'
arch = ['x86_64']
def test_tfm_plugins_ran(self):
self.assertPluginIncluded([
'apache',
'foreman',
'foreman_installer',
'foreman_proxy',
'postgresql',
'puppet',
'ruby'
])
@redhat_only
def test_candlepin_plugin_ran(self):
self.assertPluginIncluded('candlepin')
def test_foreman_keys_skipped(self):
self.assertFileGlobNotInArchive("/etc/foreman*/*key.pem")
def test_foreman_database_sizes_collected(self):
self.assertFileCollected(
'sos_commands/foreman/foreman_db_tables_sizes'
)
def test_foreman_installer_dirs_collected(self):
self.assertFileGlobInArchive("/etc/foreman-installer/*")
self.assertFileGlobInArchive("/var/log/foreman-installer/*")
def test_foreman_production_log_collected(self):
self.assertFileCollected('/var/log/foreman/production.log')
def test_foreman_database_dump_collected(self):
self.assertFileCollected('sos_commands/foreman/foreman_settings_table')
def test_foreman_tasks_csv_collected(self):
self.assertFileCollected('sos_commands/foreman/foreman_tasks_tasks')
def test_proxyfeatures_not_collected(self):
self.assertFileGlobNotInArchive(
"sos_commands/foreman/smart_proxies_features/*"
)
def test_foreman_config_postproc_worked(self):
self.assertFileNotHasContent(
'/etc/foreman/database.yml',
FOREMAN_DB_PASSWORD
)
def test_foreman_password_postproc_worked(self):
for _check in ['/var/log/foreman-installer/foreman.log',
'/etc/foreman-installer/scenarios.d/'
'foreman-answers.yaml']:
for passwd in FOREMAN_PASSWORDS:
self.assertFileNotHasContent(_check, passwd)
@redhat_only
def test_candlepin_table_sizes_collected(self):
self.assertFileCollected(
'sos_commands/candlepin/candlepin_db_tables_sizes'
)
@redhat_only
def test_katello_password_postproc_worked(self):
for _check in ['/var/log/foreman-installer/katello.log',
'/etc/foreman-installer/scenarios.d/'
'katello-answers.yaml']:
for passwd in FOREMAN_PASSWORDS:
self.assertFileNotHasContent(_check, passwd)
@redhat_only
def test_foreman_httpd_collected(self):
self.assertFileGlobInArchive("/var/log/httpd*/foreman-ssl_*_ssl*log*")
@ubuntu_only
def test_foreman_apache_collected(self):
self.assertFileGlobInArchive("/var/log/apache2/foreman-ssl_*_ssl*log*")
def test_ruby_gems_collected(self):
self.assertFileCollected('sos_commands/ruby/gem_list')
class ForemanWithOptionsTest(StageOneReportTest):
"""Enable Foreman/Katello/Candlepin specific options and ensure they are
working
:avocado: tags=foreman
"""
sos_cmd = '-v -k foreman.proxyfeatures=on'
arch = ['x86_64']
@redhat_only
def test_proxyfeatures_collected(self):
self.assertFileGlobInArchive(
"sos_commands/foreman/smart_proxies_features/*"
)
class ForemanInstallerTest(StageOneReportTest):
"""Check whether foreman-installer related data are properly collected
independently on main foreman plugin.
:avocado: tags=foreman
"""
sos_cmd = '-v -o foreman_installer'
arch = ['x86_64']
def test_foreman_installer_etc_collected(self):
self.assertFileCollected("/etc/foreman-installer/scenarios.d")
class ForemanProxyTest(StageOneReportTest):
"""Check whether foreman-proxy related data are properly collected
independently on main foreman plugin.
:avocado: tags=foreman
"""
sos_cmd = '-v -o foreman_proxy'
arch = ['x86_64']
def test_foreman_proxy_settings_collected(self):
self.assertFileCollected("/etc/foreman-proxy/settings.yml")
|