[NOT-FOR-REVIEW] Dummy WIP review for trying new experimental job
Change-Id: I88d45015338ef55713b32de196f9071c8fc2031b
This commit is contained in:
parent
5abc83ead1
commit
55e698b155
|
@ -1,28 +0,0 @@
|
||||||
====================
|
|
||||||
Devstack Integration
|
|
||||||
====================
|
|
||||||
|
|
||||||
This directory contains the files necessary to integrate Magnum with devstack.
|
|
||||||
|
|
||||||
Refer the quickstart guide for more information on using devstack and magnum.
|
|
||||||
|
|
||||||
Running devestack with magnum for the first time may take a long time as it
|
|
||||||
needs to download an atomic fedora 21 qcow image. If you already have this image
|
|
||||||
you can copy it to /opt/stack/devstack/files/fedora-21-atomic.qcow2 to save you
|
|
||||||
this time.
|
|
||||||
|
|
||||||
To install magnum into devstack: ::
|
|
||||||
|
|
||||||
git clone https://git.openstack.org/stackforge/magnum /opt/stack/magnum
|
|
||||||
git clone https://git.openstack.org/openstack-dev/devstack /opt/stack/devstack
|
|
||||||
|
|
||||||
# copy example localrc, modify as necessary
|
|
||||||
cp /opt/stack/magnum/contrib/devstack/localrc.example /opt/stack/devstack/localrc
|
|
||||||
|
|
||||||
cd /opt/stack/magnum
|
|
||||||
./contrib/devstack/prepare_devstack.sh
|
|
||||||
|
|
||||||
Run devstack as normal: ::
|
|
||||||
|
|
||||||
cd /opt/stack/devstack
|
|
||||||
./stack.sh
|
|
|
@ -1,251 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# lib/magnum
|
|
||||||
# Functions to control the configuration and operation of the **magnum** service
|
|
||||||
|
|
||||||
# Dependencies:
|
|
||||||
#
|
|
||||||
# - ``functions`` file
|
|
||||||
# - ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
|
|
||||||
# - ``SERVICE_{TENANT_NAME|PASSWORD}`` must be defined
|
|
||||||
|
|
||||||
# ``stack.sh`` calls the entry points in this order:
|
|
||||||
#
|
|
||||||
# - install_magnum
|
|
||||||
# - configure_magnum
|
|
||||||
# - create_magnum_conf
|
|
||||||
# - init_magnum
|
|
||||||
# - start_magnum
|
|
||||||
# - stop_magnum
|
|
||||||
# - cleanup_magnum
|
|
||||||
|
|
||||||
# Save trace setting
|
|
||||||
XTRACE=$(set +o | grep xtrace)
|
|
||||||
set +o xtrace
|
|
||||||
|
|
||||||
|
|
||||||
# Defaults
|
|
||||||
# --------
|
|
||||||
|
|
||||||
# Set up default directories
|
|
||||||
MAGNUM_REPO=${MAGNUM_REPO:-${GIT_BASE}/stackforge/magnum.git}
|
|
||||||
MAGNUM_BRANCH=${MAGNUM_BRANCH:-master}
|
|
||||||
MAGNUM_DIR=$DEST/magnum
|
|
||||||
|
|
||||||
GITREPO["python-magnumclient"]=${MAGNUMCLIENT_REPO:-${GIT_BASE}/stackforge/python-magnumclient.git}
|
|
||||||
GITBRANCH["python-magnumclient"]=${MAGNUMCLIENT_BRANCH:-master}
|
|
||||||
GITDIR["python-magnumclient"]=$DEST/python-magnumclient
|
|
||||||
|
|
||||||
MAGNUM_STATE_PATH=${MAGNUM_STATE_PATH:=$DATA_DIR/magnum}
|
|
||||||
MAGNUM_AUTH_CACHE_DIR=${MAGNUM_AUTH_CACHE_DIR:-/var/cache/magnum}
|
|
||||||
|
|
||||||
MAGNUM_CONF_DIR=/etc/magnum
|
|
||||||
MAGNUM_CONF=$MAGNUM_CONF_DIR/magnum.conf
|
|
||||||
|
|
||||||
if is_ssl_enabled_service "magnum" || is_service_enabled tls-proxy; then
|
|
||||||
MAGNUM_SERVICE_PROTOCOL="https"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Public facing bits
|
|
||||||
MAGNUM_SERVICE_HOST=${MAGNUM_SERVICE_HOST:-$SERVICE_HOST}
|
|
||||||
MAGNUM_SERVICE_PORT=${MAGNUM_SERVICE_PORT:-9511}
|
|
||||||
MAGNUM_SERVICE_PORT_INT=${MAGNUM_SERVICE_PORT_INT:-19511}
|
|
||||||
MAGNUM_SERVICE_PROTOCOL=${MAGNUM_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
|
|
||||||
|
|
||||||
# Support entry points installation of console scripts
|
|
||||||
if [[ -d $MAGNUM_DIR/bin ]]; then
|
|
||||||
MAGNUM_BIN_DIR=$MAGNUM_DIR/bin
|
|
||||||
else
|
|
||||||
MAGNUM_BIN_DIR=$(get_python_exec_prefix)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Functions
|
|
||||||
# ---------
|
|
||||||
|
|
||||||
# Test if any magnum services are enabled
|
|
||||||
# is_magnum_enabled
|
|
||||||
function is_magnum_enabled {
|
|
||||||
[[ ,${ENABLED_SERVICES} =~ ,"m-" ]] && return 0
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
# cleanup_magnum() - Remove residual data files, anything left over from previous
|
|
||||||
# runs that a clean run would need to clean up
|
|
||||||
function cleanup_magnum {
|
|
||||||
sudo rm -rf $MAGNUM_STATE_PATH $MAGNUM_AUTH_CACHE_DIR
|
|
||||||
}
|
|
||||||
|
|
||||||
# configure_magnum() - Set config files, create data dirs, etc
|
|
||||||
function configure_magnum {
|
|
||||||
# Put config files in ``/etc/magnum`` for everyone to find
|
|
||||||
if [[ ! -d $MAGNUM_CONF_DIR ]]; then
|
|
||||||
sudo mkdir -p $MAGNUM_CONF_DIR
|
|
||||||
sudo chown $STACK_USER $MAGNUM_CONF_DIR
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Rebuild the config file from scratch
|
|
||||||
create_magnum_conf
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
# create_magnum_accounts() - Set up common required magnum accounts
|
|
||||||
#
|
|
||||||
# Project User Roles
|
|
||||||
# ------------------------------------------------------------------
|
|
||||||
# SERVICE_TENANT_NAME magnum service
|
|
||||||
function create_magnum_accounts {
|
|
||||||
|
|
||||||
create_service_user "magnum" "admin"
|
|
||||||
|
|
||||||
if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
|
|
||||||
|
|
||||||
local magnum_service=$(get_or_create_service "magnum" \
|
|
||||||
"container" "Magnum Container Service")
|
|
||||||
get_or_create_endpoint $magnum_service \
|
|
||||||
"$REGION_NAME" \
|
|
||||||
"$MAGNUM_SERVICE_PROTOCOL://$MAGNUM_SERVICE_HOST:$MAGNUM_SERVICE_PORT/v1" \
|
|
||||||
"$MAGNUM_SERVICE_PROTOCOL://$MAGNUM_SERVICE_HOST:$MAGNUM_SERVICE_PORT/v1" \
|
|
||||||
"$MAGNUM_SERVICE_PROTOCOL://$MAGNUM_SERVICE_HOST:$MAGNUM_SERVICE_PORT/v1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
# create_magnum_conf() - Create a new magnum.conf file
|
|
||||||
function create_magnum_conf {
|
|
||||||
|
|
||||||
# (Re)create ``magnum.conf``
|
|
||||||
rm -f $MAGNUM_CONF
|
|
||||||
iniset $MAGNUM_CONF DEFAULT verbose "True"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT rabbit_userid $RABBIT_USERID
|
|
||||||
iniset $MAGNUM_CONF DEFAULT rabbit_password $RABBIT_PASSWORD
|
|
||||||
iniset $MAGNUM_CONF DEFAULT rabbit_host $RABBIT_HOST
|
|
||||||
|
|
||||||
iniset $MAGNUM_CONF database connection `database_connection_url magnum`
|
|
||||||
iniset $MAGNUM_CONF api host "$MAGNUM_SERVICE_HOST"
|
|
||||||
iniset $MAGNUM_CONF api port "$MAGNUM_SERVICE_PORT"
|
|
||||||
iniset $MAGNUM_CONF conductor host "$MAGNUM_SERVICE_HOST"
|
|
||||||
|
|
||||||
configure_auth_token_middleware $MAGNUM_CONF magnum $MAGNUM_AUTH_CACHE_DIR
|
|
||||||
|
|
||||||
if is_fedora || is_suse; then
|
|
||||||
# magnum defaults to /usr/local/bin, but fedora and suse pip like to
|
|
||||||
# install things in /usr/bin
|
|
||||||
iniset $MAGNUM_CONF DEFAULT bindir "/usr/bin"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$MAGNUM_STATE_PATH" ]; then
|
|
||||||
iniset $MAGNUM_CONF DEFAULT state_path "$MAGNUM_STATE_PATH"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT lock_path "$MAGNUM_STATE_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$SYSLOG" != "False" ]; then
|
|
||||||
iniset $MAGNUM_CONF DEFAULT use_syslog "True"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format logging
|
|
||||||
if [ "$LOG_COLOR" == "True" ] && [ "$SYSLOG" == "False" ]; then
|
|
||||||
setup_colorized_logging $MAGNUM_CONF DEFAULT
|
|
||||||
else
|
|
||||||
# Show user_name and project_name instead of user_id and project_id
|
|
||||||
iniset $MAGNUM_CONF DEFAULT logging_context_format_string "%(asctime)s.%(msecs)03d %(levelname)s %(name)s [%(request_id)s %(user_name)s %(project_name)s] %(instance)s%(message)s"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Register SSL certificates if provided
|
|
||||||
if is_ssl_enabled_service magnum; then
|
|
||||||
ensure_certificates MAGNUM
|
|
||||||
|
|
||||||
iniset $MAGNUM_CONF DEFAULT ssl_cert_file "$MAGNUM_SSL_CERT"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT ssl_key_file "$MAGNUM_SSL_KEY"
|
|
||||||
|
|
||||||
iniset $MAGNUM_CONF DEFAULT enabled_ssl_apis "$MAGNUM_ENABLED_APIS"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function create_magnum_conf_magnum_network {
|
|
||||||
iniset $MAGNUM_CONF DEFAULT network_manager "magnum.network.manager.$NETWORK_MANAGER"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT public_interface "$PUBLIC_INTERFACE"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT vlan_interface "$VLAN_INTERFACE"
|
|
||||||
iniset $MAGNUM_CONF DEFAULT flat_network_bridge "$FLAT_NETWORK_BRIDGE"
|
|
||||||
if [ -n "$FLAT_INTERFACE" ]; then
|
|
||||||
iniset $MAGNUM_CONF DEFAULT flat_interface "$FLAT_INTERFACE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# create_magnum_cache_dir() - Part of the init_magnum() process
|
|
||||||
function create_magnum_cache_dir {
|
|
||||||
# Create cache dir
|
|
||||||
sudo mkdir -p $MAGNUM_AUTH_CACHE_DIR
|
|
||||||
sudo chown $STACK_USER $MAGNUM_AUTH_CACHE_DIR
|
|
||||||
rm -f $MAGNUM_AUTH_CACHE_DIR/*
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# init_magnum() - Initialize databases, etc.
|
|
||||||
function init_magnum {
|
|
||||||
# Only do this step once on the API node for an entire cluster.
|
|
||||||
if is_service_enabled $DATABASE_BACKENDS && is_service_enabled m-api; then
|
|
||||||
# (Re)create magnum database
|
|
||||||
recreate_database magnum
|
|
||||||
|
|
||||||
# Migrate magnum database
|
|
||||||
$MAGNUM_BIN_DIR/magnum-db-manage upgrade
|
|
||||||
fi
|
|
||||||
create_magnum_cache_dir
|
|
||||||
}
|
|
||||||
|
|
||||||
# install_magnumclient() - Collect source and prepare
|
|
||||||
function install_magnumclient {
|
|
||||||
if use_library_from_git "python-magnumclient"; then
|
|
||||||
git_clone_by_name "python-magnumclient"
|
|
||||||
setup_dev_lib "python-magnumclient"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# install_magnum() - Collect source and prepare
|
|
||||||
function install_magnum {
|
|
||||||
git_clone $MAGNUM_REPO $MAGNUM_DIR $MAGNUM_BRANCH
|
|
||||||
setup_develop $MAGNUM_DIR
|
|
||||||
}
|
|
||||||
|
|
||||||
# start_magnum_api() - Start the API process ahead of other things
|
|
||||||
function start_magnum_api {
|
|
||||||
# Get right service port for testing
|
|
||||||
local service_port=$MAGNUM_SERVICE_PORT
|
|
||||||
local service_protocol=$MAGNUM_SERVICE_PROTOCOL
|
|
||||||
if is_service_enabled tls-proxy; then
|
|
||||||
service_port=$MAGNUM_SERVICE_PORT_INT
|
|
||||||
service_protocol="http"
|
|
||||||
fi
|
|
||||||
|
|
||||||
run_process m-api "$MAGNUM_BIN_DIR/magnum-api"
|
|
||||||
echo "Waiting for magnum-api to start..."
|
|
||||||
if ! wait_for_service $SERVICE_TIMEOUT $service_protocol://$SERVICE_HOST:$service_port; then
|
|
||||||
die $LINENO "magnum-api did not start"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start proxies if enabled
|
|
||||||
if is_service_enabled tls-proxy; then
|
|
||||||
start_tls_proxy '*' $MAGNUM_SERVICE_PORT $MAGNUM_SERVICE_HOST $MAGNUM_SERVICE_PORT_INT &
|
|
||||||
start_tls_proxy '*' $EC2_SERVICE_PORT $MAGNUM_SERVICE_HOST $EC2_SERVICE_PORT_INT &
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# start_magnum() - Start running processes, including screen
|
|
||||||
function start_magnum {
|
|
||||||
|
|
||||||
# ``run_process`` checks ``is_service_enabled``, it is not needed here
|
|
||||||
start_magnum_api
|
|
||||||
run_process m-cond "$MAGNUM_BIN_DIR/magnum-conductor"
|
|
||||||
}
|
|
||||||
|
|
||||||
# stop_magnum() - Stop running processes (non-screen)
|
|
||||||
function stop_magnum {
|
|
||||||
for serv in m-api m-cond; do
|
|
||||||
stop_process $serv
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Restore xtrace
|
|
||||||
$XTRACE
|
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
MAGNUM_DIR=$(readlink -f $(dirname $0)/../..)
|
|
||||||
INSTALL_DIR=${INSTALL_DIR:-/opt/stack}
|
|
||||||
|
|
||||||
cp ${MAGNUM_DIR}/contrib/devstack/lib/magnum ${INSTALL_DIR}/devstack/lib
|
|
||||||
cp ${MAGNUM_DIR}/contrib/devstack/extras.d/70-magnum.sh ${INSTALL_DIR}/devstack/extras.d
|
|
||||||
|
|
||||||
# Add magnum specific requirements to global requirements
|
|
||||||
git clone https://git.openstack.org/openstack/requirements ${INSTALL_DIR}/requirements || true
|
|
||||||
echo "python-kubernetes>=0.2" >> ${INSTALL_DIR}/requirements/global-requirements.txt
|
|
||||||
echo "docker-py>=0.5.1" >> ${INSTALL_DIR}/requirements/global-requirements.txt
|
|
|
@ -1,10 +1,9 @@
|
||||||
# magnum.sh - Devstack extras script to install magnum
|
# magnum.sh - Devstack extras script to install magnum
|
||||||
|
|
||||||
|
source $TOP_DIR/lib/magnum
|
||||||
|
|
||||||
if is_service_enabled m-api m-cond; then
|
if is_service_enabled m-api m-cond; then
|
||||||
if [[ "$1" == "source" ]]; then
|
if [[ "$1" == "stack" && "$2" == "install" ]]; then
|
||||||
# Initial source
|
|
||||||
source $TOP_DIR/lib/magnum
|
|
||||||
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
|
|
||||||
echo_summary "Installing magnum"
|
echo_summary "Installing magnum"
|
||||||
install_magnum
|
install_magnum
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
# Devstack settings
|
||||||
|
|
||||||
# Modify to your environment
|
# Modify to your environment
|
||||||
FLOATING_RANGE=192.168.1.224/27
|
FLOATING_RANGE=192.168.1.224/27
|
||||||
PUBLIC_NETWORK_GATEWAY=192.168.1.225
|
PUBLIC_NETWORK_GATEWAY=192.168.1.225
|
||||||
|
@ -37,4 +39,4 @@ OVS_PHYSICAL_BRIDGE=br-ex
|
||||||
|
|
||||||
# Log all output to files
|
# Log all output to files
|
||||||
LOGFILE=$HOME/devstack.log
|
LOGFILE=$HOME/devstack.log
|
||||||
SCREEN_LOGDIR=$HOME/logs
|
SCREEN_LOGDIR=$HOME/logs
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash -x
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# This script is executed inside post_test_hook function in devstack gate.
|
||||||
|
|
||||||
|
# Sleep some time until all services are starting
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
|
||||||
|
sudo pip install -r test-requirements.txt
|
||||||
|
sudo OS_STDOUT_CAPTURE=-1 OS_STDERR_CAPTURE=-1 OS_TEST_TIMEOUT=500 OS_TEST_LOCK_PATH=${TMPDIR:-'/tmp'} \
|
||||||
|
python -m subunit.run discover -t ./ ./magnum/tests/functional | subunit-2to1 | tools/colorizer.py
|
||||||
|
RETVAL=$?
|
||||||
|
|
||||||
|
# Here can be some commands for log archiving, etc...
|
||||||
|
|
||||||
|
exit $RETVAL
|
Loading…
Reference in New Issue