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