78d37afccc
The apparmor systemd unit file simply calls an old SysV init script to load AppArmor profiles. The init script exits and systemd has no idea if it's still running or not. This causes Ansible to start the apparmor unit each time the playbook runs, which breaks the idempotency checks. This patch checks the apparmor_status output directly to see what the status of AppArmor actually is. If the module is loaded, then we should not try to start AppArmor with the unit file again. This patch also includes the updates from the openstack-ansible-tests repository that were included in https://review.openstack.org/#/c/488489/ so that the gate can be unblocked. Partial-Bug: 1710675 Change-Id: If253714d0ca4b5a3d324255751e6f6615ca75dde
73 lines
2.3 KiB
Bash
Executable File
73 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright 2015, Rackspace US, 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.
|
|
#
|
|
# Note:
|
|
# This file is maintained in the openstack-ansible-tests repository.
|
|
# https://git.openstack.org/cgit/openstack/openstack-ansible-tests/tree/run_tests.sh
|
|
# If you need to modify this file, update the one in the openstack-ansible-tests
|
|
# repository and then update this file as well. The purpose of this file is to
|
|
# prepare the host and then execute all the tox tests.
|
|
#
|
|
|
|
## Shell Opts ----------------------------------------------------------------
|
|
set -xeu
|
|
|
|
## Vars ----------------------------------------------------------------------
|
|
|
|
export WORKING_DIR=${WORKING_DIR:-$(pwd)}
|
|
|
|
## Main ----------------------------------------------------------------------
|
|
|
|
source /etc/os-release || source /usr/lib/os-release
|
|
|
|
install_pkg_deps() {
|
|
pkg_deps="git"
|
|
|
|
# Prefer dnf over yum for CentOS.
|
|
which dnf &>/dev/null && RHT_PKG_MGR='dnf' || RHT_PKG_MGR='yum'
|
|
|
|
case ${ID,,} in
|
|
*suse*) pkg_mgr_cmd="zypper -n in" ;;
|
|
centos|rhel) pkg_mgr_cmd="${RHT_PKG_MGR} install -y" ;;
|
|
fedora) pkg_mgr_cmd="dnf -y install" ;;
|
|
ubuntu|debian) pkg_mgr_cmd="apt-get install -y" ;;
|
|
*) echo "unsupported distribution: ${ID,,}"; exit 1 ;;
|
|
esac
|
|
|
|
eval sudo $pkg_mgr_cmd $pkg_deps
|
|
}
|
|
|
|
git_clone_repo() {
|
|
if [[ ! -d tests/common ]]; then
|
|
# The tests repo doesn't need a clone, we can just
|
|
# symlink it.
|
|
if [[ "$(basename ${WORKING_DIR})" == "openstack-ansible-tests" ]]; then
|
|
ln -s ${WORKING_DIR} ${WORKING_DIR}/tests/common
|
|
else
|
|
git clone \
|
|
https://git.openstack.org/openstack/openstack-ansible-tests \
|
|
tests/common
|
|
fi
|
|
fi
|
|
}
|
|
|
|
install_pkg_deps
|
|
|
|
git_clone_repo
|
|
|
|
# start executing the main test script
|
|
source tests/common/run_tests_common.sh
|
|
|