Simplify Building Trove Guest Images
Enable Trove guest images to be build without going through the whole redstack install, and redstack kick-start workflow. Also seperated out the upload-to-glance pieces to enable this. You can now simply build a mysql image using: redstack build-image mysql Partially implements blueprint: tempest-guest-tests Change-Id: I671e22c19e1e11df677959e8f158f26c7da055c8
This commit is contained in:
@@ -12,10 +12,10 @@ source $_LIB/die
|
||||
[ -n "$TMP_HOOKS_PATH." ] || die "Temp hook path not set"
|
||||
|
||||
[ -n "${GUEST_USERNAME}" ] || die "GUEST_USERNAME needs to be set to the user for the guest image"
|
||||
[ -n "${HOST_USERNAME}" ] || die "HOST_USERNAME needs to be set to the user for the host instance"
|
||||
[ -n "${HOST_SCP_USERNAME}" ] || die "HOST_SCP_USERNAME needs to be set to the user for the host instance"
|
||||
[ -n "${NETWORK_GATEWAY}" ] || die "NETWORK_GATEWAY needs to be set to the user for the host instance"
|
||||
[ -n "${ESCAPED_PATH_TROVE}" ] || die "ESCAPED_PATH_TROVE needs to be set to the path to the trove directory on the redstack host"
|
||||
[ -n "${REDSTACK_SCRIPTS}" ] || die "REDSTACK_SCRIPTS needs to be set to the trove-integration scripts dir"
|
||||
[ -n "${ESCAPED_GUEST_LOGDIR}" ] || die "ESCAPED_GUEST_LOGDIR must be set to the escaped guest log dir"
|
||||
|
||||
sed "s/GUEST_USERNAME/${GUEST_USERNAME}/g;s/GUEST_LOGDIR/${ESCAPED_GUEST_LOGDIR}/g;s/HOST_USERNAME/${HOST_USERNAME}/g;s/NETWORK_GATEWAY/${NETWORK_GATEWAY}/g;s/PATH_TROVE/${ESCAPED_PATH_TROVE}/g" ${REDSTACK_SCRIPTS}/files/trove-guest.systemd.conf > ${TMP_HOOKS_PATH}/trove-guest.service
|
||||
sed "s/GUEST_USERNAME/${GUEST_USERNAME}/g;s/GUEST_LOGDIR/${ESCAPED_GUEST_LOGDIR}/g;s/HOST_SCP_USERNAME/${HOST_SCP_USERNAME}/g;s/NETWORK_GATEWAY/${NETWORK_GATEWAY}/g;s/PATH_TROVE/${ESCAPED_PATH_TROVE}/g" ${REDSTACK_SCRIPTS}/files/trove-guest.systemd.conf > ${TMP_HOOKS_PATH}/trove-guest.service
|
||||
|
||||
@@ -12,10 +12,10 @@ source $_LIB/die
|
||||
[ -n "$TMP_HOOKS_PATH." ] || die "Temp hook path not set"
|
||||
|
||||
[ -n "${GUEST_USERNAME}" ] || die "GUEST_USERNAME needs to be set to the user for the guest image"
|
||||
[ -n "${HOST_USERNAME}" ] || die "HOST_USERNAME needs to be set to the user for the host instance"
|
||||
[ -n "${HOST_SCP_USERNAME}" ] || die "HOST_SCP_USERNAME needs to be set to the user for the host instance"
|
||||
[ -n "${NETWORK_GATEWAY}" ] || die "NETWORK_GATEWAY needs to be set to the user for the host instance"
|
||||
[ -n "${ESCAPED_PATH_TROVE}" ] || die "ESCAPED_PATH_TROVE needs to be set to the path to the trove directory on the redstack host"
|
||||
[ -n "${REDSTACK_SCRIPTS}" ] || die "REDSTACK_SCRIPTS needs to be set to the trove-integration scripts dir"
|
||||
[ -n "${ESCAPED_GUEST_LOGDIR}" ] || die "ESCAPED_GUEST_LOGDIR must be set to the escaped guest log dir"
|
||||
|
||||
sed "s/GUEST_USERNAME/${GUEST_USERNAME}/g;s/GUEST_LOGDIR/${ESCAPED_GUEST_LOGDIR}/g;s/HOST_USERNAME/${HOST_USERNAME}/g;s/NETWORK_GATEWAY/${NETWORK_GATEWAY}/g;s/PATH_TROVE/${ESCAPED_PATH_TROVE}/g" ${REDSTACK_SCRIPTS}/files/trove-guest.upstart.conf > ${TMP_HOOKS_PATH}/trove-guest.conf
|
||||
sed "s/GUEST_USERNAME/${GUEST_USERNAME}/g;s/GUEST_LOGDIR/${ESCAPED_GUEST_LOGDIR}/g;s/HOST_SCP_USERNAME/${HOST_SCP_USERNAME}/g;s/NETWORK_GATEWAY/${NETWORK_GATEWAY}/g;s/PATH_TROVE/${ESCAPED_PATH_TROVE}/g" ${REDSTACK_SCRIPTS}/files/trove-guest.upstart.conf > ${TMP_HOOKS_PATH}/trove-guest.conf
|
||||
|
||||
1
scripts/files/keys/authorized_keys
Normal file
1
scripts/files/keys/authorized_keys
Normal file
@@ -0,0 +1 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmQeA/uyEyFf9DsmwR+OztWb7Hb/uTC+R3xG1QgBvRwhSbpBnyBESGMZZ07bIw5Ib7BUSDzwoeryUqNAhAhir2KLeIYODS39UmTwOIl+rIvhlTxhsIoQHV90pewD2qw0T8KgVMPUDsQ0Bd98E6e5dbxciZp67ihVD0r7srhdSRo8PIc56hJWrD52j5FeiIGEmLXHXiZLOyma1M7j/EmiV81wHAzgql6sihWSZHm3xPZZ712JtXbmHhe3RLFIK13u9PSb3XbuEIdGwkZdzP+vYNE0CsYqwjXjVRrY/APsiEkbSNVzHI5p2W1L7ZMtSOMUqZ1Ve+sytVb+YcIJ9L8y07 trove@devstack
|
||||
27
scripts/files/keys/id_rsa
Normal file
27
scripts/files/keys/id_rsa
Normal file
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEA5kHgP7shMhX/Q7JsEfjs7Vm+x2/7kwvkd8RtUIAb0cIUm6QZ
|
||||
8gREhjGWdO2yMOSG+wVEg88KHq8lKjQIQIYq9ii3iGDg0t/VJk8DiJfqyL4ZU8Yb
|
||||
CKEB1fdKXsA9qsNE/CoFTD1A7ENAXffBOnuXW8XImaeu4oVQ9K+7K4XUkaPDyHOe
|
||||
oSVqw+do+RXoiBhJi1x14mSzspmtTO4/xJolfNcBwM4KperIoVkmR5t8T2We9dib
|
||||
V25h4Xt0SxSCtd7vT0m9127hCHRsJGXcz/r2DRNArGKsI141Ua2PwD7IhJG0jVcx
|
||||
yOadltS+2TLUjjFKmdVXvrMrVW/mHCCfS/MtOwIDAQABAoIBAQCTAQHbjmwuHu8e
|
||||
2F24x7Tz//UWPT9fbRtK/6RO3ctlCsS/bXCHHARnrGcDdfHq1yv6PS21/UvXtThE
|
||||
Dn4qO75X9DzgnAFNgEwELjPyVBM4YG2pF3SQ+MJESaI4hgGY8Rws5eMF/qFhdbo1
|
||||
hATggqFqnQZqWy0DP9wkq8ESk1nYNICehj0d6Mo5uW190TDMD6QrfHg4rDYbgITf
|
||||
SCmsRdybCASlgOHCrYgjweG9czNoFimhaG8WwP59yfCX0A1TrDJ0toryyopupIre
|
||||
A+5HHBM2Dk3KylrtVBAPRsM9eGUo4bmz8p6hRkuw7mr321d416MHdIXcHK38EWR0
|
||||
ZvUWM8QJAoGBAPlPe3ggR9xhEbQJQkOohnZ1hkogE/uxZrcRiUI3pnDNcCXy9Ogt
|
||||
SYfwxYnHLa5kuynbmCCzSLOtq2DN9QwJ5o+zgRjX9T8DAWub6KFdEnTHhq/ZLF/w
|
||||
PWPg3Oe8dYDEEcrPLvN25aetY2LrWKsRPFL8//WLJc1+LFRG6Vc1ATftAoGBAOxv
|
||||
hGxNGrcD5c8g0ZcyeKVbCCRGfp0+mwonnQ25mDyIXNH+PEHa7SPs5dVexA5r0/Ky
|
||||
lM/jQgs756EvslwA2oukqVz7ehDhJI4RE92OPjpYrAu7HF6eN/fAhUMghs/vAZ6c
|
||||
YCM6i9emHYHM4mU6H/yLIr+0e2JNf+479bB5hQTHAoGBAOGnFUQXQ7OukE16C+Yd
|
||||
RQc3PIMfIbcwTJ3qW2f54sY6zAUtMIptYx6NyN35z9kHB3jNb5Y5b9ZhnLqT7/Yj
|
||||
h/INMQ4BedK8r65sgVR8X1YfukKzuLxlP8uFHa0KIPiZftkoSYDH3vmzsD86cRj1
|
||||
ErqykCH4/hBO4WSugkkSirXJAoGARXvQcvOF8lsW4nRGpCSVCCNklSSSeSu47JcP
|
||||
tMTiVIfOn3gTxVbNck1gjgA3pfVSaHTK/v1On3aPb/NQe3FUyM0vaMAO8372+zlR
|
||||
mT8AUq1Ugm4OvE/LKuhNQZkBhYI7+50BM9k0179d1JOdxRn75IAPSj+EMzOLcTv1
|
||||
zFMqIGkCgYBm5xT3Gu8fJh/8ztelzrDkGga6UpYKKYjHGFHpaqmDn9sjjCu8X2pG
|
||||
JUGgyUVj1NkJAtHMS45Ud3upQwxpy2aNmMaQbwzHybvX7EYZHHVuCwsSzaXRtwj2
|
||||
Q6mG1Ghi0UQ76SPKQr0Vu8Uu+0CAzYAK4IEKeH6BCRjrzHggSpdNzQ==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
1
scripts/files/keys/id_rsa.pub
Normal file
1
scripts/files/keys/id_rsa.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmQeA/uyEyFf9DsmwR+OztWb7Hb/uTC+R3xG1QgBvRwhSbpBnyBESGMZZ07bIw5Ib7BUSDzwoeryUqNAhAhir2KLeIYODS39UmTwOIl+rIvhlTxhsIoQHV90pewD2qw0T8KgVMPUDsQ0Bd98E6e5dbxciZp67ihVD0r7srhdSRo8PIc56hJWrD52j5FeiIGEmLXHXiZLOyma1M7j/EmiV81wHAzgql6sihWSZHm3xPZZ712JtXbmHhe3RLFIK13u9PSb3XbuEIdGwkZdzP+vYNE0CsYqwjXjVRrY/APsiEkbSNVzHI5p2W1L7ZMtSOMUqZ1Ve+sytVb+YcIJ9L8y07 trove@devstack
|
||||
@@ -12,11 +12,11 @@ ExecStartPre=mkdir -p GUEST_LOGDIR ; chown GUEST_USERNAME:root GUEST_LOGDIR
|
||||
|
||||
# If ~/trove-installed does not exist, copy the trove source from
|
||||
# the user's development environment, then touch the sentinel file
|
||||
ExecStartPre=/bin/bash "test -f /home/GUEST_USERNAME/trove-installed || sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_USERNAME@NETWORK_GATEWAY:PATH_TROVE/ /home/GUEST_USERNAME/trove && touch /home/GUEST_USERNAME/trove-installed"
|
||||
ExecStartPre=/bin/bash "test -f /home/GUEST_USERNAME/trove-installed || sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_SCP_USERNAME@NETWORK_GATEWAY:PATH_TROVE/ /home/GUEST_USERNAME/trove && touch /home/GUEST_USERNAME/trove-installed"
|
||||
|
||||
# If /etc/trove does not exist, create it and then copy the trove-guestagent.conf
|
||||
# from /etc/trove on the user's development environment,
|
||||
ExecStartPre=/bin/bash "test -d /etc/trove || sudo mkdir -p /etc/trove && sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_USERNAME@NETWORK_GATEWAY:/etc/trove/trove-guestagent.conf ~GUEST_USERNAME/ && mv ~GUEST_USERNAME/trove-guestagent.conf /etc/trove/trove-guestagent.conf"
|
||||
ExecStartPre=/bin/bash "test -d /etc/trove || sudo mkdir -p /etc/trove && sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_SCP_USERNAME@NETWORK_GATEWAY:/etc/trove/trove-guestagent.conf ~GUEST_USERNAME/ && mv ~GUEST_USERNAME/trove-guestagent.conf /etc/trove/trove-guestagent.conf"
|
||||
|
||||
ExecStart=/home/GUEST_USERNAME/trove/bin/trove-guestagent --config-file=/etc/guest_info --config-file=/etc/trove/trove-guestagent.conf
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ pre-start script
|
||||
# If /etc/trove does not exist, copy the trove source and the
|
||||
# guest agent config from the user's development environment
|
||||
if [ ! -d /etc/trove ]; then
|
||||
sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_USERNAME@NETWORK_GATEWAY:PATH_TROVE/ /home/GUEST_USERNAME/trove
|
||||
sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_SCP_USERNAME@NETWORK_GATEWAY:PATH_TROVE/ /home/GUEST_USERNAME/trove
|
||||
mkdir -p /etc/trove
|
||||
sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_USERNAME@NETWORK_GATEWAY:/etc/trove/trove-guestagent.conf ~GUEST_USERNAME/
|
||||
sudo -u GUEST_USERNAME rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -avz --exclude='.*' HOST_SCP_USERNAME@NETWORK_GATEWAY:/etc/trove/trove-guestagent.conf ~GUEST_USERNAME/
|
||||
mv ~GUEST_USERNAME/trove-guestagent.conf /etc/trove/trove-guestagent.conf
|
||||
fi
|
||||
|
||||
|
||||
@@ -10,11 +10,12 @@ function build_vm() {
|
||||
readonly HOMEDIR=$1
|
||||
readonly HOST_USERNAME=$2
|
||||
GUEST_USERNAME=${GUEST_USERNAME:-$2}
|
||||
HOST_SCP_USERNAME=${HOST_SCP_USERNAME:-$2}
|
||||
VM=$3
|
||||
DISTRO=$4
|
||||
SERVICE_TYPE=$5
|
||||
|
||||
readonly SSH_DIR=${HOMEDIR}/.ssh
|
||||
readonly SSH_DIR=${KEY_DIR:-${HOMEDIR}/.ssh}
|
||||
manage_ssh_keys
|
||||
|
||||
if [ $DISTRO == 'ubuntu' ]; then
|
||||
@@ -26,6 +27,7 @@ function build_vm() {
|
||||
EXTRA_ELEMENTS=selinux-permissive
|
||||
fi
|
||||
export HOST_USERNAME
|
||||
export HOST_SCP_USERNAME
|
||||
export GUEST_USERNAME
|
||||
export NETWORK_GATEWAY
|
||||
export REDSTACK_SCRIPTS
|
||||
@@ -39,7 +41,7 @@ function build_vm() {
|
||||
${PATH_DISKIMAGEBUILDER}/bin/disk-image-create -a amd64 -o "${VM}" -x ${DISTRO} ${EXTRA_ELEMENTS} vm heat-cfntools ${DISTRO}-guest ${DISTRO}-${SERVICE_TYPE}
|
||||
}
|
||||
|
||||
function cmd_build_image() {
|
||||
function build_guest_image() {
|
||||
exclaim "Building an image for use with development and integration tests."
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
@@ -78,12 +80,6 @@ function cmd_build_image() {
|
||||
else
|
||||
exclaim "Found image in $VM_PATH using the qcow2 image found here..."
|
||||
fi
|
||||
|
||||
QCOW_IMAGE=`find $VM_PATH -name '*.qcow2'`
|
||||
TROVE_TOKEN=`retrieve_token trove $SERVICE_PASSWORD $SERVICE_TENANT`
|
||||
|
||||
# Now upload it
|
||||
upload_image_to_glance "${IMAGENAME}" ovf qcow2 $TROVE_TOKEN $QCOW_IMAGE $SERVICE_TYPE
|
||||
}
|
||||
|
||||
function clean_instances() {
|
||||
@@ -107,7 +103,7 @@ function manage_ssh_keys() {
|
||||
add_host_key_to_authorizedkeys
|
||||
}
|
||||
|
||||
generate_empty_passphrase_ssh_key () {
|
||||
function generate_empty_passphrase_ssh_key () {
|
||||
echo "generating a empty passphrase DEV ONLY rsa key"
|
||||
expect -c "
|
||||
spawn sudo -Hiu ${HOST_USERNAME} /usr/bin/ssh-keygen -f ${SSH_DIR}/id_rsa -q
|
||||
@@ -118,7 +114,7 @@ send \n
|
||||
expect eof"
|
||||
}
|
||||
|
||||
add_host_key_to_authorizedkeys () {
|
||||
function add_host_key_to_authorizedkeys () {
|
||||
# test to see if the host key is already in its own authorized_keys file - if not then add it. This is then later copied
|
||||
# to the guest image
|
||||
is_in_keyfile=`cat ${SSH_DIR}/id_rsa.pub | grep -f - ${SSH_DIR}/authorized_keys | wc -l`
|
||||
|
||||
3
scripts/image-projects-list
Normal file
3
scripts/image-projects-list
Normal file
@@ -0,0 +1,3 @@
|
||||
diskimage-builder
|
||||
tripleo-image-elements
|
||||
trove
|
||||
@@ -3,11 +3,8 @@ nova
|
||||
glance
|
||||
horizon
|
||||
swift
|
||||
trove
|
||||
neutron
|
||||
heat
|
||||
diskimage-builder
|
||||
tripleo-image-elements
|
||||
python-keystoneclient
|
||||
python-novaclient
|
||||
python-troveclient
|
||||
|
||||
@@ -38,7 +38,7 @@ fi
|
||||
# Public facing bits
|
||||
SERVICE_PROTOCOL=${SERVICE_PROTOCOL:-http}
|
||||
SERVICE_TENANT=${SERVICE_TENANT:-service}
|
||||
NETWORK_GATEWAY=${NETWORK_GATEWAY:-$SERVICE_HOST}
|
||||
NETWORK_GATEWAY=${NETWORK_GATEWAY:-$BRIDGE_IP}
|
||||
NETWORK_INTERFACE=${NETWORK_INTERFACE:-eth0}
|
||||
NETWORK_SUBNET=${NETWORK_SUBNET:-10.0.0.0/24}
|
||||
KEYSTONE_AUTH_HOST=${KEYSTONE_AUTH_HOST:-$SERVICE_HOST}
|
||||
@@ -169,7 +169,8 @@ function install_devstack_code() {
|
||||
fi
|
||||
# Clones all of the code to where devstack expects it to be
|
||||
pushd $PATH_DEVSTACK_OUTPUT
|
||||
cmd_clone_projects
|
||||
cmd_clone_projects do_not_force_update $REDSTACK_SCRIPTS/projects-list \
|
||||
$REDSTACK_SCRIPTS/image-projects-list
|
||||
popd
|
||||
}
|
||||
|
||||
@@ -329,7 +330,6 @@ function upload_image_to_glance() {
|
||||
# Unused since support of multiple datastores added.
|
||||
# Still need for another datastores in future
|
||||
DATASTORE_TYPE=$6
|
||||
source $PATH_DEVSTACK_SRC/openrc admin admin
|
||||
GLANCE_IMAGEID=`get_glance_id glance image-create \
|
||||
--name="$IMAGE_NAME" --is-public=True \
|
||||
--container-format=$CONTAINER_FORMAT --disk-format=$DISK_FORMAT \
|
||||
@@ -439,8 +439,41 @@ function cmd_test_init() {
|
||||
|
||||
exclaim "Creating Test Flavors."
|
||||
add_test_flavors
|
||||
|
||||
if [[ -n $KEY_DIR ]]; then
|
||||
exclaim "Installing the SSH key from $KEY_DIR to the test environment."
|
||||
mkdir -p $USERHOME/.ssh
|
||||
install -b --mode 0400 $KEY_DIR/id_rsa $USERHOME/.ssh
|
||||
cat $KEY_DIR/authorized_keys >> $USERHOME/.ssh/authorized_keys
|
||||
fi
|
||||
}
|
||||
|
||||
function cmd_build_image() {
|
||||
IMAGE_DATASTORE_TYPE=${1:-'mysql'}
|
||||
ESCAPED_PATH_TROVE=${2:-'\/opt\/stack\/trove'}
|
||||
HOST_SCP_USERNAME=${3:-'ubuntu'}
|
||||
GUEST_USERNAME=${4:-'ubuntu'}
|
||||
|
||||
exclaim "Ensuring we have all packages needed to build image."
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y install qemu
|
||||
cmd_clone_projects do_not_force_update $REDSTACK_SCRIPTS/image-projects-list
|
||||
|
||||
exclaim "Use tripleo-diskimagebuilder to actually build the Trove Guest Agent Image."
|
||||
build_guest_image $IMAGE_DATASTORE_TYPE
|
||||
}
|
||||
|
||||
function cmd_build_and_upload_image() {
|
||||
exclaim "First build the image"
|
||||
cmd_build_image $1 $ESCAPED_PATH_TROVE `whoami` `whoami`
|
||||
|
||||
exclaim "Now upload it to Glance"
|
||||
QCOW_IMAGE=`find $VM_PATH -name '*.qcow2'`
|
||||
TROVE_TOKEN=`retrieve_token trove $SERVICE_PASSWORD $SERVICE_TENANT`
|
||||
upload_image_to_glance "${IMAGENAME}" ovf qcow2 $TROVE_TOKEN $QCOW_IMAGE $SERVICE_TYPE
|
||||
}
|
||||
|
||||
|
||||
function cmd_initialize() {
|
||||
exclaim '(Re)Initializing Trove...'
|
||||
pushd $PATH_DEVSTACK_SRC
|
||||
@@ -656,7 +689,7 @@ function cmd_run_ci() {
|
||||
cmd_install
|
||||
cmd_test_init
|
||||
# The arg will be the image type
|
||||
cmd_build_image $1
|
||||
cmd_build_and_upload_image $1
|
||||
|
||||
# Test in fake mode.
|
||||
exclaim "Testing in fake mode."
|
||||
@@ -687,13 +720,9 @@ function cmd_clear() {
|
||||
}
|
||||
|
||||
function cmd_kick_start() {
|
||||
source $PATH_DEVSTACK_SRC/openrc admin admin
|
||||
cmd_test_init
|
||||
cmd_build_image $1
|
||||
}
|
||||
|
||||
function cmd_post_devstack() {
|
||||
cmd_test_init
|
||||
cmd_build_image $1
|
||||
cmd_build_and_upload_image $1
|
||||
}
|
||||
|
||||
function cmd_reset_task() {
|
||||
@@ -702,12 +731,13 @@ function cmd_reset_task() {
|
||||
|
||||
function cmd_clone_projects() {
|
||||
UPDATE_PROJECTS=$1
|
||||
for project in $(cat $REDSTACK_SCRIPTS/projects-list); do
|
||||
PROJECT_LIST_FILES=${@:2}
|
||||
for project in $(cat $PROJECT_LIST_FILES); do
|
||||
if [ ! -d $PATH_DEVSTACK_OUTPUT/$project ]; then
|
||||
echo "Creating a new clone of $project..."
|
||||
git_clone $OPENSTACK_GITSOURCE/"$project".git ${PATH_DEVSTACK_OUTPUT}/$project master
|
||||
else
|
||||
if [ -z $UPDATE_PROJECTS ]; then
|
||||
if [ $UPDATE_PROJECTS != "force_update" ]; then
|
||||
echo "$project was already cloned or exists in a shared folder. Ignoring..."
|
||||
else
|
||||
echo "$project was already cloned. Pulling changes to update."
|
||||
@@ -746,14 +776,13 @@ function print_usage() {
|
||||
--setup environment--
|
||||
install - Install all the required dependencies and bring up tr-api and tr-tmgr
|
||||
test-init - Configure the test configuration files and add keystone test users
|
||||
build-image - Builds the vm image and adds it to glance
|
||||
build-image - Builds the vm image for the trove guest
|
||||
initialize - Reinitialize the trove database, users, services, and test config
|
||||
post-devstack - Configures testing environment, builds image and uploads to glance
|
||||
|
||||
--helper for environment--
|
||||
kick-start - kick start the setup of trove.
|
||||
(redstack test-init/build-image in one step)
|
||||
[mysql no-clean] no clean avoids rebuilding pacakges from scratch
|
||||
[mysql no-clean] no clean avoids rebuilding packages from scratch
|
||||
|
||||
--trove dependency services--
|
||||
start-deps - Start or resume daemons Trove depends on.
|
||||
@@ -794,7 +823,6 @@ function run_command() {
|
||||
"test-init" ) cmd_test_init;;
|
||||
"build-image" ) shift; cmd_build_image $@;;
|
||||
"initialize" ) cmd_initialize;;
|
||||
"post-devstack" ) shift; cmd_post_devstack $@;;
|
||||
"unit-tests" ) cmd_unit_tests;;
|
||||
"start-deps" ) cmd_start_deps;;
|
||||
"stop-deps" ) cmd_stop_deps;;
|
||||
@@ -815,7 +843,9 @@ function run_command() {
|
||||
"kick-start" ) shift; cmd_kick_start $@;;
|
||||
"run-fake" ) shift; cmd_run_fake $@;;
|
||||
"start-fake" ) shift; cmd_start_fake $@;;
|
||||
"update-projects" ) cmd_clone_projects force_update;;
|
||||
"update-projects" ) cmd_clone_projects force_update \
|
||||
$REDSTACK_SCRIPTS/projects-list \
|
||||
$REDSTACK_SCRIPTS/image-projects-list;;
|
||||
"reset-task" ) shift; cmd_reset_task $@;;
|
||||
"wipe-queues" ) shift; cmd_wipe_queues $@;;
|
||||
"example-tests" ) shift; cmd_example_tests $@;;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Paths inside the VM.
|
||||
[ -z $SERVICE_HOST ] && SERVICE_HOST=`get_default_host_ip`
|
||||
[ -z $DEST ] && DEST=/opt/stack
|
||||
[ -z $NETWORK_GATEWAY ] && NETWORK_GATEWAY=$SERVICE_HOST
|
||||
[ -z $BRIDGE_IP ] && BRIDGE_IP=10.0.0.1
|
||||
[ -z $PATH_DEVSTACK_SRC ] && PATH_DEVSTACK_SRC=~/devstack
|
||||
[ -z $TROVE_CONF_DIR ] && TROVE_CONF_DIR=/etc/trove
|
||||
|
||||
|
||||
Reference in New Issue
Block a user