mixmatch/devstack/mixmatch.sh

129 lines
4.6 KiB
Bash

# Copyright 2016 Massachusetts Open Cloud
#
# 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.
MIXMATCH_BIN_DIR=$(get_python_exec_prefix)
MIXMATCH_CONF_DIR="/etc/mixmatch"
MIXMATCH_UWSGI_INI="$MIXMATCH_CONF_DIR/mixmatch-uwsgi.ini"
function install_mixmatch {
pip_install $MIXMATCH_DIR
}
function configure_mixmatch {
# Proxy
sudo mkdir -p /etc/mixmatch
sudo chown $STACK_USER:$STACK_USER /etc/mixmatch
cp $MIXMATCH_DIR/etc/mixmatch.conf.sample $MIXMATCH_CONF
iniset $MIXMATCH_CONF database connection "sqlite:////tmp/mixmatch.db"
iniset $MIXMATCH_CONF DEFAULT service_providers default
iniset $MIXMATCH_CONF DEFAULT aggregation False
iniset $MIXMATCH_CONF auth auth_url "$KEYSTONE_AUTH_URI/v3"
iniset $MIXMATCH_CONF auth username admin
iniset $MIXMATCH_CONF auth user_domain_id default
iniset $MIXMATCH_CONF auth project_name admin
iniset $MIXMATCH_CONF auth project_domain_id default
iniset $MIXMATCH_CONF auth password $ADMIN_PASSWORD
iniset $MIXMATCH_CONF sp_default sp_name default
iniset $MIXMATCH_CONF sp_default auth_url "$KEYSTONE_AUTH_URI/v3"
iniset $MIXMATCH_CONF sp_default image_endpoint $GLANCE_URL
CINDER_BASE="$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST"
if [ "$CINDER_USE_MOD_WSGI" == "True" ]; then
CINDER_URL="$CINDER_BASE/volume"
else
CINDER_URL="$CINDER_BASE:$CINDER_SERVICE_PORT"
fi
iniset $MIXMATCH_CONF sp_default volume_endpoint $CINDER_URL
iniset $MIXMATCH_CONF sp_default network_endpoint \
"$NEUTRON_SERVICE_PROTOCOL://$NEUTRON_SERVICE_HOST:$NEUTRON_SERVICE_PORT"
iniset $MIXMATCH_CONF sp_default enabled_services "image, volume, network"
# Nova
iniset $NOVA_CONF glance api_servers "$MIXMATCH_URL/image"
iniset $NOVA_CONF neutron url "$MIXMATCH_URL/network"
# Cinder
iniset $CINDER_CONF DEFAULT glance_api_servers "$MIXMATCH_URL/image"
iniset $CINDER_CONF oslo_messaging_notifications driver messaging
iniset $CINDER_CONF oslo_messaging_notifications topics notifications
# Glance
iniset $GLANCE_CONF oslo_messaging_notifications driver messaging
iniset $CINDER_CONF oslo_messaging_notifications topics notifications
mixmatch-manage db_sync
sudo cp $MIXMATCH_DIR/httpd/mixmatch-uwsgi.conf $(apache_site_config_for mixmatch)
enable_apache_site mixmatch
restart_apache_server
run_process mixmatch \
"$MIXMATCH_BIN_DIR/uwsgi --ini $MIXMATCH_DIR/httpd/mixmatch-uwsgi.ini"
}
function get_endpoint_ids {
echo `openstack endpoint list --service $1 -c ID -f value`
}
function register_mixmatch {
if [ "$REGISTER_MIXMATCH" == "true" ]; then
# Update the endpoints
openstack endpoint delete `get_endpoint_ids image`
openstack endpoint delete `get_endpoint_ids block-storage`
openstack endpoint delete `get_endpoint_ids volumev2`
openstack endpoint delete `get_endpoint_ids volumev3`
openstack endpoint delete `get_endpoint_ids network`
get_or_create_endpoint \
"image" \
"$REGION_NAME" \
"$MIXMATCH_URL/image" \
"$MIXMATCH_URL/image" \
"$MIXMATCH_URL/image"
get_or_create_endpoint \
"block-storage" \
"$REGION_NAME" \
"$MIXMATCH_URL/volume/v3/\$(project_id)s" \
"$MIXMATCH_URL/volume/v3/\$(project_id)s" \
"$MIXMATCH_URL/volume/v3/\$(project_id)s"
get_or_create_endpoint \
"volumev2" \
"$REGION_NAME" \
"$MIXMATCH_URL/volume/v2/\$(project_id)s" \
"$MIXMATCH_URL/volume/v2/\$(project_id)s" \
"$MIXMATCH_URL/volume/v2/\$(project_id)s"
get_or_create_endpoint \
"volumev3" \
"$REGION_NAME" \
"$MIXMATCH_URL/volume/v3/\$(project_id)s" \
"$MIXMATCH_URL/volume/v3/\$(project_id)s" \
"$MIXMATCH_URL/volume/v3/\$(project_id)s"
get_or_create_endpoint \
"network" \
"$REGION_NAME" \
"$MIXMATCH_URL/network" \
"$MIXMATCH_URL/network" \
"$MIXMATCH_URL/network"
fi
}