system-config/testinfra/test_mirror-update.py
Ian Wienand 855efc9010 Enable mirroring of 9-stream
This is a re-implementation of
I195ebee548071b0b89bd5bf64b251595271178ca that puts 9-stream in a
separate AFS volume

(Note the automated volume name "mirror.centos-stream" comes just
short of the limit)

Change-Id: I483c2982a6931e7d6fc97ab82f7750b72d2ef265
2021-11-15 17:54:54 +11:00

117 lines
3.5 KiB
Python

# 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-update01.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',
'centos-stream',
'epel',
'fedora',
'openeuler',
'opensuse',
'yum-puppetlabs']:
f = host.file('/usr/local/bin/%s-mirror-update' % script)
assert 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.keytab',
'/etc/centos-stream.keytab',
'/etc/epel.keytab',
'/etc/fedora.keytab',
'/etc/openeuler.keytab',
'/etc/opensuse.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_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-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