From c2d096c4f7b983293e23779d8632085ff3cbf168 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Wed, 15 Apr 2015 17:26:46 -0400 Subject: [PATCH] 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 - 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 --- cache_git.sh | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ run_resource.sh | 75 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100755 cache_git.sh create mode 100755 run_resource.sh diff --git a/cache_git.sh b/cache_git.sh new file mode 100755 index 00000000..4dc6e3bb --- /dev/null +++ b/cache_git.sh @@ -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 - </dev/null + echo " head is now: $(git --git-dir ${dir} log --oneline -1)" + fi +} + +for project in $PROJECTS; do + git_update_mirror $project +done diff --git a/run_resource.sh b/run_resource.sh new file mode 100755 index 00000000..64dccb84 --- /dev/null +++ b/run_resource.sh @@ -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 - < + +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