Create automated job for sample configuration files

The keystone team updates the sample configuration file in it's
own patch, so to not stomp on other patches.

We've had to update the configuration files manually, but we
should create an automated job. Since it's just running
tox -e genconfig and checking diff output.

Change-Id: I0e294b857d9bbf73e7f9c0d0bdee61648fb999bd
This commit is contained in:
Steve Martinelli 2015-04-26 16:41:55 -04:00
parent b2523895ca
commit 2fb336967c
3 changed files with 88 additions and 0 deletions

View File

@ -33,3 +33,17 @@
- test-results
- devstack-logs
- console-log
- job:
name: keystone-propose-config-updates
node: proposal
builders:
- revoke-sudo
- link-logs
- net-info
- gerrit-git-prep
- shell: /usr/local/jenkins/slave_scripts/propose_updated_config_file.sh openstack/keystone master
publishers:
- console-log

View File

@ -0,0 +1,73 @@
#!/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.
source /usr/local/jenkins/slave_scripts/common.sh
PROJECT=$1
BRANCH=$2
INITIAL_COMMIT_MSG="Updating sample configuration file"
USERNAME="proposal-bot"
SUCCESS=0
setup_git
change_id=""
# See if there is an open change, if so, get the change id for the
# existing change for use in the commit message.
change_info=$(ssh -p 29418 $USERNAME@review.openstack.org gerrit query --current-patch-set status:open project:$PROJECT owner:$USERNAME branch:$BRANCH)
previous=$(echo "$change_info" | grep "^ number:" | awk '{print $2}')
if [ "x${previous}" != "x" ] ; then
change_id=$(echo "$change_info" | grep "^change" | awk '{print $2}')
# read return a non zero value when it reaches EOF. Because we use a
# heredoc here it will always reach EOF and return a nonzero value.
# Disable -e temporarily to get around the read.
# The reason we use read is to allow for multiline variable content
# and variable interpolation. Simply double quoting a string across
# multiple lines removes the newlines.
set +e
read -d '' COMMIT_MSG <<EOF
$INITIAL_COMMIT_MSG
Change-Id: $change_id
EOF
set -e
else
COMMIT_MSG=$INITIAL_COMMIT_MSG
fi
echo "Setting commit message to: $COMMIT_MSG"
tox -e genconfig
RET=$?
if [ "$RET" -ne "0" ] ; then
SUCCESS=1
echo "Error in generating sample config for $PROJECT"
exit 1
fi
if ! git diff --stat --exit-code HEAD ; then
# Commit and review
echo "changes in config file found for $PROJECT"
git_args="-a -F-"
git commit $git_args <<EOF
$COMMIT_MSG
EOF
TOPIC="openstack/$PROJECT/genconf"
OUTPUT=$(git review -t $TOPIC)
RET=$?
[[ "$RET" -eq "0" || "$OUTPUT" =~ "no new changes" || "$OUTPUT" =~ "no changes made" ]]
SUCCESS=$?
fi
exit $SUCCESS

View File

@ -1972,6 +1972,7 @@ projects:
- gate-swift-dsvm-functional
post:
- keystone-coverage
- keystone-propose-config-updates
experimental:
- gate-grenade-dsvm-forward
- gate-keystone-python34