project-config/jenkins/scripts/check-osc-plugins.sh
Steve Martinelli 327dab1135 update osc-check-plugin script
A few new adopters to osc did not have their plugins checked for
duplicate commands (aodh, gnocchi, watcher). Check jobs were also
added to these projects, as well as other projects that were
missed.

Change-Id: I46b20dedf285d83fcd1b5ed6ee9bd1d99801a422
2016-06-30 10:44:55 -04:00

71 lines
2.6 KiB
Bash
Executable File

#!/bin/bash -xe
# 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.
# Install all known OpenStackClient projects that have plugins. Then install
# the proposed change to see if there are any conflicting commands.
# install openstackclient plugins from source to catch conflicts earlier
function install_from_source {
repo=$1
root=$(mktemp -d)
$zc --cache-dir /opt/git --workspace ${root} \
git://git.openstack.org openstack/${repo}
(cd ${root}/openstack/${repo} && $venv/bin/pip install .)
rm -rf $root
}
zc='/usr/zuul-env/bin/zuul-cloner'
# setup a virtual environment to install all the plugins
venv_name='osc_plugins'
trap "rm -rf $venv_name" EXIT
virtualenv $venv_name
venv=$(pwd)/$venv_name
# install known OpenStackClient plugins
install_from_source python-openstackclient
install_from_source python-aodhclient
install_from_source python-barbicanclient
install_from_source python-congressclient
install_from_source python-cueclient
install_from_source python-designateclient
install_from_source python-gnocchiclient
install_from_source python-heatclient
install_from_source python-ironicclient
install_from_source python-ironic-inspector-client
install_from_source python-mistralclient
install_from_source python-muranoclient
install_from_source python-saharaclient
install_from_source python-searchlightclient
install_from_source python-senlinclient
install_from_source python-tripleoclient
install_from_source python-watcherclient
install_from_source python-zaqarclient
echo "Begin freeze output from $venv virtualenv:"
echo "======================================================================"
$venv/bin/pip freeze
echo "======================================================================"
# now check the current proposed change doesn't cause a conflict
# we should already be in the project's root directory where setup.py exists
echo "Installing the proposed change in directory: $(pwd)"
$venv/bin/pip install -e .
echo "Testing development version of openstack client, version:"
$venv/bin/openstack --version
# run the python script to actually check the commands now that we're setup
$venv/bin/python /usr/local/jenkins/slave_scripts/check_osc_commands.py