Adding intial support for multi-node devstack jobs, by using the nodepool's subnode feature. TODO: remove extra set -x TODO: Use the feature grid TODO: improve logging Change-Id: I37fb0924be1676be1a1e301094b6e5a4cd348969
71 lines
2.5 KiB
Bash
Executable File
71 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 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 -x
|
|
GIT_BASE=${GIT_BASE:-https://git.openstack.org}
|
|
GIT_BRANCH=${GIT_BRANCH:-master}
|
|
|
|
source $WORKSPACE/devstack-gate/functions.sh
|
|
|
|
export BASE=/opt/stack
|
|
|
|
# Make a directory to store logs
|
|
rm -rf $WORKSPACE/logs
|
|
mkdir -p $WORKSPACE/logs
|
|
|
|
echo "Available disk space on this host:"
|
|
indent df -h
|
|
|
|
echo "Setting up the host"
|
|
echo "... this takes a few seconds (logs at logs/node_ip/devstack-gate-setup-host.txt.gz)"
|
|
tsfilter setup_host &> $WORKSPACE/logs/devstack-gate-setup-host.txt
|
|
|
|
if [[ -n "$DEVSTACK_GATE_GRENADE" ]]; then
|
|
echo "Setting up the new (migrate to) workspace"
|
|
echo "... this takes 3 - 5 minutes (logs at logs/node_ip/devstack-gate-setup-workspace-new.txt.gz)"
|
|
tsfilter setup_workspace "$GRENADE_NEW_BRANCH" "$BASE/new" copycache &> \
|
|
$WORKSPACE/logs/devstack-gate-setup-workspace-new.txt
|
|
echo "Setting up the old (migrate from) workspace ..."
|
|
echo "... this takes 3 - 5 minutes (logs at logs/node_ip/devstack-gate-setup-workspace-old.txt.gz)"
|
|
tsfilter setup_workspace "$GRENADE_OLD_BRANCH" "$BASE/old" &> \
|
|
$WORKSPACE/logs/devstack-gate-setup-workspace-old.txt
|
|
else
|
|
echo "Setting up the workspace"
|
|
echo "... this takes 3 - 5 minutes (logs at logs/node_ip/devstack-gate-setup-workspace-new.txt.gz)"
|
|
tsfilter setup_workspace "$OVERRIDE_ZUUL_BRANCH" "$BASE/new" &> \
|
|
$WORKSPACE/logs/devstack-gate-setup-workspace-new.txt
|
|
fi
|
|
|
|
mkdir -p $BASE/new/.ssh
|
|
sudo cp /etc/nodepool/id_rsa.pub $BASE/new/.ssh/authorized_keys
|
|
sudo chmod 600 $BASE/new/.ssh/authorized_keys
|
|
|
|
# relocate and symlink logs into $BASE to save space on the root filesystem
|
|
if [ -d "$WORKSPACE/logs" -a \! -e "$BASE/logs" ]; then
|
|
sudo mv $WORKSPACE/logs $BASE/
|
|
ln -s $BASE/logs $WORKSPACE/
|
|
fi
|
|
|
|
# Run pre test hook if we have one
|
|
if function_exists "pre_test_hook"; then
|
|
echo "Running pre_test_hook"
|
|
xtrace=$(set +o | grep xtrace)
|
|
set -o xtrace
|
|
tsfilter pre_test_hook | tee $WORKSPACE/devstack-gate-pre-test-hook.txt
|
|
sudo mv $WORKSPACE/devstack-gate-pre-test-hook.txt $BASE/logs/
|
|
$xtrace
|
|
fi
|