# Copyright 2019 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. testinfra_hosts = ['mirror-update99.opendev.org'] # Manually calculated from the "secret" value in the test host vars KEYTAB_SHA256 = '88d4ac38ad3da024913843d8917d5be89ceac4abef7b977718f2c3f1db3ccde4' def test_tools(host): f = host.file('/usr/bin/k5start') assert f.exists f = host.file('/usr/bin/rsync') assert f.exists f = host.file('/usr/bin/vos') assert f.exists def test_rsync_scripts(host): for script in ['centos-stream', 'epel', 'fedora', 'openeuler', 'yum-puppetlabs']: f = host.file('/usr/local/bin/%s-mirror-update' % script) assert f.exists def test_rsync_scripts_removed(host): for script in ['opensuse', 'centos']: f = host.file('/usr/local/bin/%s-mirror-update' % script) assert not f.exists def test_publisher_script(host): f = host.file('/usr/local/bin/publish-mirror-logs') assert f.exists def test_keytabs(host): for keytab in ['/etc/afsadmin.keytab', '/etc/logs.keytab', '/etc/centos-stream.keytab', '/etc/epel.keytab', '/etc/fedora.keytab', '/etc/openeuler.keytab', '/etc/yum-puppetlabs.keytab', '/etc/reprepro.keytab']: f = host.file(keytab) assert f.exists assert f.sha256sum == KEYTAB_SHA256 assert f.mode == 0o400 def test_keytabs_removed(host): for keytab in ['/etc/opensuse.keytab', '/etc/centos.keytab']: f = host.file(keytab) assert not f.exists def test_afs_release_script(host): f = host.file('/opt/afs-release/release-volumes.py') assert f.exists def test_afs_release_script_run(host): # This will just run the command in a no-op mode to make sure deps # are installed, etc. cmd = host.run('/opt/afs-release/release-volumes.py ' '--debug --skip-release') assert cmd.succeeded def test_afsmon_installed(host): f = host.file('/usr/local/bin/afsmon') assert f.exists f = host.file('/etc/afsmon.cfg') assert f.exists # reprepro def test_repro_general_conf(host): package = host.package('reprepro') assert package.is_installed f = host.file('/etc/reprepro') assert f.exists assert f.is_directory f = host.file('/var/log/reprepro') assert f.exists assert f.is_directory f = host.file('/usr/local/bin/reprepro-mirror-update') assert f.exists f = host.file('/etc/logrotate.d/reprepro') assert f.exists def test_reprepro_configs(host): dirs = ('apt-puppetlabs', 'debian', 'debian-security', 'debian-ceph-octopus', 'debian-ceph-nautilus', 'debian-ceph-quincy', 'debian-ceph-reef', 'debian-docker-xenial', 'debian-docker-bionic', 'debian-docker-focal', 'ubuntu', 'ubuntu-cloud-archive', 'ubuntu-ports') for d in dirs: for config in ('distributions', 'options', 'updates'): f = host.file('/etc/reprepro/%s/%s' % (d, config)) assert f.exists