add convenience tools
The following are some convenience tools that I created during grenade refactor which might make sense in the tree. These make working on grenade much easier. cache_git.sh builds a local git mirror so you can set GIT_BASE=/opt/git and iterate faster. run_resource.sh <project> <phase> - lets you run resource test scripts the way we'll run them in grenade for iterative development. Both scripts include help with '-h' on their usage. Change-Id: I997c3bfee09dab93ecaa52dd9b86d7811c63bfa3
This commit is contained in:
parent
e78a3357a6
commit
c2d096c4f7
81
cache_git.sh
Executable file
81
cache_git.sh
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright 2015 Hewlett-Packard Development Company, L.P.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
GIT_DIR=/opt/git
|
||||||
|
|
||||||
|
PROJECTS=""
|
||||||
|
PROJECTS+="openstack/requirements "
|
||||||
|
PROJECTS+="openstack/keystone "
|
||||||
|
PROJECTS+="openstack/nova "
|
||||||
|
PROJECTS+="openstack/glance "
|
||||||
|
PROJECTS+="openstack/cinder "
|
||||||
|
PROJECTS+="openstack/keystone "
|
||||||
|
PROJECTS+="openstack/swift "
|
||||||
|
PROJECTS+="openstack/tempest "
|
||||||
|
PROJECTS+="openstack/neutron "
|
||||||
|
PROJECTS+="openstack/ironic "
|
||||||
|
PROJECTS+="openstack/ceilometer "
|
||||||
|
PROJECTS+="openstack/horizon "
|
||||||
|
PROJECTS+="openstack-dev/devstack "
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
cat - <<EOF
|
||||||
|
Usage: cache_git.sh [-d dir]
|
||||||
|
|
||||||
|
Builds a local git cache of OpenStack projects for use with grenade
|
||||||
|
testing. After running this set GIT_BASE in localrc to the value of
|
||||||
|
DIRECTORY.
|
||||||
|
|
||||||
|
-d DIRECTORY: defaults to /opt/git
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Process command-line args
|
||||||
|
while getopts hd: opt; do
|
||||||
|
case $opt in
|
||||||
|
d)
|
||||||
|
GIT_DIR=$OPTARG
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
function git_update_mirror {
|
||||||
|
local project=$1
|
||||||
|
local dir=$GIT_DIR/$project.git
|
||||||
|
if [[ ! -d $(dirname $dir) ]]; then
|
||||||
|
echo "Creating $(dirname $dir)"
|
||||||
|
sudo mkdir -p $(dirname $dir)
|
||||||
|
sudo chown -R `whoami` $(dirname $dir)
|
||||||
|
fi
|
||||||
|
if [[ ! -d $dir ]]; then
|
||||||
|
echo "Creating initial git mirror for $project"
|
||||||
|
git clone --mirror https://github.com/$project $dir
|
||||||
|
else
|
||||||
|
echo "Updating git mirror for $project"
|
||||||
|
git --git-dir ${dir} fetch 2>/dev/null
|
||||||
|
echo " head is now: $(git --git-dir ${dir} log --oneline -1)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
for project in $PROJECTS; do
|
||||||
|
git_update_mirror $project
|
||||||
|
done
|
75
run_resource.sh
Executable file
75
run_resource.sh
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright 2015 Hewlett-Packard Development Company, L.P.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
DEVSTACK_DIR=""
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
cat - <<EOF
|
||||||
|
Usage: run_resource.sh [-d devstackdir] <project> <phase>
|
||||||
|
|
||||||
|
Runs the resource test scripts for the project. This is done
|
||||||
|
automatically during grenade runs, however when developing new
|
||||||
|
resource scripts, it's extremely helpful to iterate with this tool.
|
||||||
|
|
||||||
|
This tool can also be used to build same resources with only a
|
||||||
|
devstack tree. In that case run this script from your devstack tree
|
||||||
|
with the -d option.
|
||||||
|
|
||||||
|
../grenade/run_resource.sh -d . nova create
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Process command-line args
|
||||||
|
while getopts hd: opt; do
|
||||||
|
case $opt in
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
DEVSTACK_DIR=$OPTARG
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
export GRENADE_DIR=${GRENADE_DIR:-$(cd $(dirname "$0") && pwd)}
|
||||||
|
TARGET_DEVSTACK_DIR=$DEVSTACK_DIR
|
||||||
|
source $GRENADE_DIR/grenaderc
|
||||||
|
export TOP_DIR=${DEVSTACK_DIR:-$BASE_DEVSTACK_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
PROJECT=$1
|
||||||
|
PHASE=$2
|
||||||
|
|
||||||
|
# These are required elements
|
||||||
|
if [[ -z "$PROJECT" || -z "$PHASE" ]]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
FILE=$(ls -d $GRENADE_DIR/projects/*_$PROJECT/)
|
||||||
|
|
||||||
|
if [[ -e $FILE/resources.sh ]]; then
|
||||||
|
set -o xtrace
|
||||||
|
$FILE/resources.sh $PHASE
|
||||||
|
else
|
||||||
|
echo "Couldn't find $PROJECT"
|
||||||
|
exit
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user