Merge "Refactor devstack-plugin"

This commit is contained in:
Zuul 2018-11-19 11:24:16 +00:00 committed by Gerrit Code Review
commit c40c777ae1
16 changed files with 263 additions and 258 deletions

1
.gitignore vendored
View File

@ -15,6 +15,7 @@ ChangeLog
MANIFEST
monasca.log
.vagrant
*.log
*.swp
*.iml

View File

@ -80,8 +80,13 @@ LOG_COLOR=False
disable_all_services
enable_service rabbit mysql key tempest horizon
disable_service monasca-api monasca-thresh monasca-agent monasca-notification
disable_service monasca-log-persister monasca-log-agent monasca-log-metrics monasca-log-transformer monasca-log-api
enable_plugin monasca-api https://git.openstack.org/openstack/monasca-api
enable_plugin monasca-log-api https://git.openstack.org/openstack/monasca-log-api
enable_plugin monasca-events-api https://git.openstack.org/openstack/monasca-events-api
enable_plugin monasca-tempest-plugin https://git.openstack.org/openstack/monasca-tempest-plugin
' > local.conf
./stack.sh

View File

@ -0,0 +1,80 @@
# Kibana is served by a back end server. This controls which port to use.
server.port: %KIBANA_SERVICE_PORT%
# The host to bind the server to.
server.host: %KIBANA_SERVICE_HOST%
# If you are running kibana behind a proxy, and want to mount it at a path,
# specify that path here. The basePath can't end in a slash.
server.basePath: /dashboard/monitoring/logs_proxy
# The Elasticsearch instance to use for all your queries.
elasticsearch.url: http://%ES_SERVICE_BIND_HOST%:%ES_SERVICE_BIND_PORT%
# preserve_elasticsearch_host true will send the hostname specified in `elasticsearch`. If you set it to false,
# then the host you use to connect to *this* Kibana instance will be sent.
elasticsearch.preserveHost: True
# Kibana uses an index in Elasticsearch to store saved searches, visualizations
# and dashboards. It will create a new index if it doesn't already exist.
kibana.index: ".kibana"
# The default application to load.
kibana.defaultAppId: "discover"
# If your Elasticsearch is protected with basic auth, these are the user credentials
# used by the Kibana server to perform maintenance on the kibana_index at startup. Your Kibana
# users will still need to authenticate with Elasticsearch (which is proxied through
# the Kibana server)
# elasticsearch.username: "user"
# elasticsearch.password: "pass"
# SSL for outgoing requests from the Kibana Server to the browser (PEM formatted)
# server.ssl.cert: /path/to/your/server.crt
# server.ssl.key: /path/to/your/server.key
# Optional setting to validate that your Elasticsearch backend uses the same key files (PEM formatted)
# elasticsearch.ssl.cert: /path/to/your/client.crt
# elasticsearch.ssl.key: /path/to/your/client.key
# If you need to provide a CA certificate for your Elasticsearch instance, put
# the path of the pem file here.
# elasticsearch.ssl.ca: /path/to/your/CA.pem
# Set to false to have a complete disregard for the validity of the SSL
# certificate.
# elasticsearch.ssl.verify: true
# Time in milliseconds to wait for elasticsearch to respond to pings, defaults to
# request_timeout setting
elasticsearch.pingTimeout: 1500
# Time in milliseconds to wait for responses from the back end or elasticsearch.
# This must be > 0
elasticsearch.requestTimeout: 300000
# Time in milliseconds for Elasticsearch to wait for responses from shards.
# Set to 0 to disable.
elasticsearch.shardTimeout: 0
# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying
elasticsearch.startupTimeout: 5000
# Set the path to where you would like the process id file to be created.
# pid.file: /var/run/kibana.pid
# Set this to true to suppress all logging output.
logging.silent: false
# Set this to true to suppress all logging output except for error messages.
logging.quiet: false
# Set this to true to log all events, including system usage information and all requests.
logging.verbose: true
# monasca-kibana-plugin configuration
monasca-kibana-plugin.auth_uri: %KEYSTONE_AUTH_URI%
monasca-kibana-plugin.enabled: True
monasca-kibana-plugin.cookie.isSecure: False
monasca-kibana-plugin.logs: %KIBANA_LOGS_ENABLE%
monasca-kibana-plugin.events: True
optimize.useBundleCache: False

View File

@ -1,6 +1,6 @@
#!/bin/bash
# Copyright 2017 FUJITSU LIMITED
# Copyright 2018 FUJITSU LIMITED
#
# 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
@ -14,7 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
_XTRACE_ELASTICSEARCH=$(set +o | grep xtrace)
set +o xtrace
@ -23,76 +22,16 @@ function is_elasticsearch_enabled {
return 1
}
function install_elasticsearch {
if is_elasticsearch_enabled; then
echo_summary "Installing ElasticSearch ${ELASTICSEARCH_VERSION}"
local es_tarball=elasticsearch-${ELASTICSEARCH_VERSION}.tar.gz
local es_url=http://download.elasticsearch.org/elasticsearch/elasticsearch/${es_tarball}
local es_dest=${FILES}/${es_tarball}
download_file ${es_url} ${es_dest}
tar xzf ${es_dest} -C $DEST
sudo chown -R $STACK_USER $DEST/elasticsearch-${ELASTICSEARCH_VERSION}
ln -sf $DEST/elasticsearch-${ELASTICSEARCH_VERSION} $ELASTICSEARCH_DIR
fi
}
function configure_elasticsearch {
if is_elasticsearch_enabled; then
echo_summary "Configuring ElasticSearch ${ELASTICSEARCH_VERSION}"
local templateDir=$ELASTICSEARCH_CFG_DIR/templates
for dir in $ELASTICSEARCH_LOG_DIR $templateDir $ELASTICSEARCH_DATA_DIR; do
sudo install -m 755 -d -o $STACK_USER $dir
done
sudo cp -f "${PLUGIN_FILES}"/elasticsearch/elasticsearch.yml $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
sudo chown -R $STACK_USER $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
sudo chmod 0644 $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
sudo sed -e "
s|%ELASTICSEARCH_BIND_HOST%|$ELASTICSEARCH_BIND_HOST|g;
s|%ELASTICSEARCH_BIND_PORT%|$ELASTICSEARCH_BIND_PORT|g;
s|%ELASTICSEARCH_PUBLISH_HOST%|$ELASTICSEARCH_PUBLISH_HOST|g;
s|%ELASTICSEARCH_PUBLISH_PORT%|$ELASTICSEARCH_PUBLISH_PORT|g;
s|%ELASTICSEARCH_DATA_DIR%|$ELASTICSEARCH_DATA_DIR|g;
s|%ELASTICSEARCH_LOG_DIR%|$ELASTICSEARCH_LOG_DIR|g;
" -i $ELASTICSEARCH_CFG_DIR/elasticsearch.yml
fi
}
function start_elasticsearch {
if is_elasticsearch_enabled; then
echo_summary "Starting ElasticSearch ${ELASTICSEARCH_VERSION}"
# TODO(jwachowski) find some nicer solution for setting env variable
echo_summary "Configuring Elasticsearch for events handling"
local service_file="/etc/systemd/system/devstack@elasticsearch.service"
# This property disable elasticsearch check for dots in filed name,
# Some event use dot in field name.
local es_java_opts="ES_JAVA_OPTS=-Dmapper.allow_dots_in_name=true"
iniset -sudo "$service_file" "Service" "Environment" "$es_java_opts"
run_process "elasticsearch" "$ELASTICSEARCH_DIR/bin/elasticsearch"
restart_process "elasticsearch" || true
fi
}
function stop_elasticsearch {
if is_elasticsearch_enabled; then
echo_summary "Stopping ElasticSearch ${ELASTICSEARCH_VERSION}"
stop_process "elasticsearch" || true
fi
}
function clean_elasticsearch {
if is_elasticsearch_enabled; then
echo_summary "Cleaning Elasticsearch ${ELASTICSEARCH_VERSION}"
sudo rm -rf ELASTICSEARCH_DIR || true
sudo rm -rf ELASTICSEARCH_CFG_DIR || true
sudo rm -rf ELASTICSEARCH_LOG_DIR || true
sudo rm -rf ELASTICSEARCH_DATA_DIR || true
sudo rm -rf $FILES/elasticsearch-${ELASTICSEARCH_VERSION}.tar.gz || true
sudo rm -rf $DEST/elasticsearch-${ELASTICSEARCH_VERSION} || true
fi
}
$_XTRACE_ELASTICSEARCH
$_XTRACE_ELASTICSEARCH

View File

@ -27,10 +27,17 @@ function install_events_api {
if is_events_api_enabled; then
echo_summary "Installing Events Api"
git_clone $MONASCA_EVENTS_API_REPO $MONASCA_EVENTS_API_DIR $MONASCA_EVENTS_API_BRANCH
setup_develop ${MONASCA_EVENTS_API_DIR}
setup_develop $MONASCA_EVENTS_API_DIR
install_monasca_common
install_keystonemiddleware
pip_install gunicorn
pip_install uwsgi
fi
}
function install_monasca_common {
if use_library_from_git "monasca-common"; then
git_clone_by_name "monasca-common"
setup_dev_lib "monasca-common"
fi
}
@ -44,6 +51,7 @@ function configure_events_api {
# Put config files in ``$MONASCA_EVENTS_API_CONF_DIR`` for everyone to find
sudo install -d -o $STACK_USER $MONASCA_EVENTS_API_CONF_DIR
sudo install -d -o $STACK_USER $MONASCA_EVENTS_LOG_DIR
create_monasca_events_cache_dir
@ -67,17 +75,24 @@ function configure_events_api {
iniset "$MONASCA_EVENTS_API_CONF" keystone_authtoken project_name "admin"
iniset "$MONASCA_EVENTS_API_CONF" keystone_authtoken password $ADMIN_PASSWORD
# configure log-api-paste.ini
# configure events-api-paste.ini
iniset "$MONASCA_EVENTS_API_PASTE" server:main bind $MONASCA_EVENTS_API_SERVICE_HOST:$MONASCA_EVENTS_API_SERVICE_PORT
iniset "$MONASCA_EVENTS_API_PASTE" server:main chdir $MONASCA_EVENTS_API_DIR
iniset "$MONASCA_EVENTS_API_PASTE" server:main workers $API_WORKERS
rm -rf $MONASCA_EVENTS_API_UWSGI_CONF
MONASCA_EVENTS_API_WSGI=/usr/local/bin/monasca-events-api-wsgi
install -m 600 $MONASCA_EVENTS_API_DIR/etc/monasca/events-api-uwsgi.ini $MONASCA_EVENTS_API_UWSGI_CONF
write_uwsgi_config "$MONASCA_EVENTS_API_UWSGI_CONF" "$MONASCA_EVENTS_API_WSGI" "/events"
fi
}
function start_events_api {
if is_events_api_enabled; then
echo_summary "Starting Events Api"
run_process "monasca-events-api" "/usr/local/bin/gunicorn --paste $MONASCA_EVENTS_API_PASTE"
run_process "monasca-events-api" "/usr/local/bin/uwsgi --ini $MONASCA_EVENTS_API_UWSGI_CONF"
fi
}

View File

@ -25,9 +25,7 @@ function is_events_persister_enabled {
function install_events_persister {
if is_events_persister_enabled; then
echo_summary "Installing Events Persister"
git_clone $MONASCA_EVENTS_PERSISTER_REPO $MONASCA_EVENTS_PERSISTER_DIR $MONASCA_EVENTS_PERSISTER_BRANCH
setup_develop ${MONASCA_EVENTS_PERSISTER_DIR}
echo_summary "Installing Events Persister dependencies"
pip_install "elasticsearch>=2.0.0,<3.0.0"
fi
}
@ -50,6 +48,7 @@ function configure_events_persister {
iniset "$MONASCA_EVENTS_PERSISTER_CONF" zookeeper partition_interval_recheck_seconds 15
iniset "$MONASCA_EVENTS_PERSISTER_CONF" kafka num_processors 0
iniset "$MONASCA_EVENTS_PERSISTER_CONF" kafka_events num_processors 1
iniset "$MONASCA_EVENTS_PERSISTER_CONF" kafka_events enabled True
iniset "$MONASCA_EVENTS_PERSISTER_CONF" kafka_events uri 127.0.0.1:9092
iniset "$MONASCA_EVENTS_PERSISTER_CONF" elasticsearch hosts ${ELASTICSEARCH_BIND_HOST}:${ELASTICSEARCH_BIND_PORT}

View File

@ -23,72 +23,6 @@ function is_kafka_enabled {
return 1
}
function install_kafka {
if is_kafka_enabled; then
echo_summary "Installing kafka"
local kafka_tarball=kafka_${KAFKA_VERSION}.tgz
local kafka_tarball_url=${APACHE_ARCHIVES}kafka/${BASE_KAFKA_VERSION}/${kafka_tarball}
local kafka_tarball_dest=${FILES}/${kafka_tarball}
download_file ${kafka_tarball_url} ${kafka_tarball_dest}
sudo groupadd --system kafka || true
sudo useradd --system -g kafka kafka || true
sudo tar -xzf ${kafka_tarball_dest} -C /opt
sudo ln -sf /opt/kafka_${KAFKA_VERSION} /opt/kafka
sudo cp -f "${MONASCA_EVENTS_API_DIR}"/devstack/files/kafka/kafka-server-start.sh /opt/kafka_${KAFKA_VERSION}/bin/kafka-server-start.sh
fi
}
function configure_kafka {
if is_kafka_enabled; then
echo_summary "Configuring kafka"
sudo mkdir -p /var/kafka || true
sudo chown kafka:kafka /var/kafka
sudo chmod 755 /var/kafka
sudo rm -rf /var/kafka/lost+found
sudo mkdir -p /var/log/kafka || true
sudo chown kafka:kafka /var/log/kafka
sudo chmod 755 /var/log/kafka
sudo ln -sf /opt/kafka/config /etc/kafka
sudo ln -sf /var/log/kafka /opt/kafka/logs
sudo cp -f "${MONASCA_EVENTS_DEVSTACK_DIR}"/files/kafka/log4j.properties /etc/kafka/log4j.properties
sudo cp -f "${MONASCA_EVENTS_DEVSTACK_DIR}"/files/kafka/server.properties /etc/kafka/server.properties
sudo chown kafka:kafka /etc/kafka/*
sudo chmod 644 /etc/kafka/*
fi
}
function start_kafka {
if is_kafka_enabled; then
echo_summary "Starting Monasca Kafka"
run_process "kafka" "/opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties" "kafka" "kafka"
fi
}
function stop_kafka {
if is_kafka_enabled; then
echo_summary "Stopping Monasca Kafka"
stop_process "kafka" || true
fi
}
function clean_kafka {
if is_kafka_enabled; then
echo_summary "Clean Monasca Kafka"
sudo rm -rf /var/kafka
sudo rm -rf /var/log/kafka
sudo rm -rf /etc/kafka
sudo rm -rf /opt/kafka
sudo userdel kafka || true
sudo groupdel kafka || true
sudo rm -rf /opt/kafka_${KAFKA_VERSION}
sudo rm -rf ${FILES}/kafka_${KAFKA_VERSION}.tgz
fi
}
function create_kafka_topic {
if is_kafka_enabled; then
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 4 --topic $1

48
devstack/lib/kibana.sh Normal file
View File

@ -0,0 +1,48 @@
#!/bin/bash
# Copyright 2018 FUJITSU LIMITED
#
# 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.
_XTRACE_KIBANA=$(set +o | grep xtrace)
set +o xtrace
function configure_kibana {
if is_service_enabled kibana; then
echo_summary "Configuring Kibana"
sudo install -m 755 -d -o $STACK_USER $KIBANA_CFG_DIR
sudo cp -f "${MONASCA_EVENTS_API_DIR}"/devstack/files/kibana/kibana.yml $KIBANA_CFG_DIR/kibana.yml
sudo chown -R $STACK_USER $KIBANA_CFG_DIR/kibana.yml
sudo chmod 0644 $KIBANA_CFG_DIR/kibana.yml
sudo sed -e "
s|%KIBANA_SERVICE_HOST%|$KIBANA_SERVICE_HOST|g;
s|%KIBANA_SERVICE_PORT%|$KIBANA_SERVICE_PORT|g;
s|%KIBANA_SERVER_BASE_PATH%|$KIBANA_SERVER_BASE_PATH|g;
s|%ES_SERVICE_BIND_HOST%|$ES_SERVICE_BIND_HOST|g;
s|%ES_SERVICE_BIND_PORT%|$ES_SERVICE_BIND_PORT|g;
s|%KEYSTONE_AUTH_URI%|$KEYSTONE_AUTH_URI|g;
" -i $KIBANA_CFG_DIR/kibana.yml
if is_service_enabled monasca-log-api; then
sudo sed -e "s|%KIBANA_LOGS_ENABLE%|True|g;" -i $KIBANA_CFG_DIR/kibana.yml
else
sudo sed -e "s|%KIBANA_LOGS_ENABLE%|False|g;" -i $KIBANA_CFG_DIR/kibana.yml
fi
ln -sf $KIBANA_CFG_DIR/kibana.yml $GATE_CONFIGURATION_DIR/kibana.yml
fi
}
$_XTRACE_KIBANA

View File

@ -0,0 +1,32 @@
#!/bin/bash
# Copyright 2018 FUJITSU LIMITED
#
# 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.
_XTRACE_MONASCA_UI=$(set +o | grep xtrace)
set +o xtrace
function configure_monasca-ui {
if is_service_enabled horizon && is_service_enabled kibana; then
local localSettings=${DEST}/horizon/monitoring/config/local_settings.py
sudo sed -e "
s|'ENABLE_EVENT_MANAGEMENT_BUTTON', False|'ENABLE_EVENT_MANAGEMENT_BUTTON', True|g;
" -i ${localSettings}
restart_apache_server
fi
}
$_XTRACE_MONASCA_UI

View File

@ -18,14 +18,6 @@
_XTRACE_UTILS=$(set +o | grep xtrace)
set +o xtrace
function find_nearest_apache_mirror {
if [ -z $APACHE_MIRROR ]; then
local mirror;
mirror=`curl -s 'https://www.apache.org/dyn/closer.cgi?as_json=1' | jq --raw-output '.preferred'`
APACHE_MIRROR=$mirror
fi
}
# download_file
# $1 - url to download
# $2 - location where to save url to
@ -69,7 +61,6 @@ function configure_log_dir {
sudo mkdir -p $logdir
sudo chmod -R 0777 $logdir
}
$_XTRACE_UTILS

View File

@ -1,67 +0,0 @@
#!/bin/bash
# Copyright 2017 FUJITSU LIMITED
#
# 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.
_XTRACE_ZOOKEEPER=$(set +o | grep xtrace)
set +o xtrace
# Set up default directories
ZOOKEEPER_DATA_DIR=$DEST/data/zookeeper
ZOOKEEPER_CONF_DIR=/etc/zookeeper
function is_zookeeper_enabled {
is_service_enabled monasca-zookeeper && return 0
return 1
}
function install_zookeeper {
if is_zookeeper_enabled; then
if is_ubuntu; then
install_package zookeeperd
else
die $LINENO "Don't know how to install zookeeper on this platform"
fi
fi
}
function configure_zookeeper {
if is_zookeeper_enabled; then
sudo cp $MONASCA_EVENTS_API_DIR/devstack/files/zookeeper/* $ZOOKEEPER_CONF_DIR
sudo sed -i -e 's|.*dataDir.*|dataDir='$ZOOKEEPER_DATA_DIR'|' $ZOOKEEPER_CONF_DIR/zoo.cfg
sudo rm -rf $ZOOKEEPER_DATA_DIR || true
sudo mkdir -p $ZOOKEEPER_DATA_DIR || true
fi
}
function start_zookeeper {
if is_zookeeper_enabled; then
start_service zookeeper
fi
}
function stop_zookeeper {
if is_zookeeper_enabled; then
stop_service zookeeper
fi
}
function clean_zookeeper {
if is_zookeeper_enabled; then
sudo rm -rf $ZOOKEEPER_DATA_DIR
apt_get -y purge zookeeper
fi
}
$_XTRACE_ZOOKEEPER

View File

@ -24,21 +24,17 @@ set -o errexit
# source lib/*
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/utils.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/zookeeper.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/kafka.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/elasticsearch.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/events-persister.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/events-api.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/events-agent.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/kibana.sh
source ${MONASCA_EVENTS_API_DIR}/devstack/lib/monasca-ui.sh
function pre_install_monasca_events {
echo_summary "Pre-Installing Monasca Events Dependency Components"
PLUGIN_FILES=$MONASCA_LOG_API_DIR/devstack/files
find_nearest_apache_mirror
install_zookeeper
install_kafka
install_elasticsearch
}
MONASCA_EVENT_API_URI=${MONASCA_EVENTS_API_SERVICE_PROTOCOL}://${MONASCA_EVENTS_API_SERVICE_HOST}/events
function install_monasca_events {
echo_summary "Installing Core Monasca Events Components"
@ -48,26 +44,36 @@ function install_monasca_events {
}
function configure_monasca_events {
echo_summary "Configuring Monasca Events Dependency Components"
configure_zookeeper
configure_kafka
configure_elasticsearch
echo_summary "Configuring Monasca Events Core Components"
configure_log_dir ${MONASCA_EVENTS_LOG_DIR}
configure_events_persister
configure_events_api
configure_events_agent
}
function init_monasca_events {
echo_summary "Initializing Monasca Events Components"
start_zookeeper
start_kafka
start_elasticsearch
# wait for all services to start
sleep 10s
configure_elasticsearch
configure_kibana
echo_summary "Creating events topic"
create_kafka_topic monevents
configure_monasca-ui
echo_summary "Creating events service and endpoint"
get_or_create_service "events" "events" "Monasca Events service"
get_or_create_endpoint \
"events" \
"${REGION_NAME}" \
"${MONASCA_EVENT_API_URI}" \
"${MONASCA_EVENT_API_URI}" \
"${MONASCA_EVENT_API_URI}"
local events_search_url="http://$KIBANA_SERVICE_HOST:$KIBANA_SERVICE_PORT/"
get_or_create_service "events-search" "events-search" "Monasca Events search service"
get_or_create_endpoint \
"events-search" \
"$REGION_NAME" \
"$events_search_url" \
"$events_search_url" \
"$events_search_url"
}
function start_monasca_events {
@ -82,9 +88,6 @@ function unstack_monasca_events {
stop_events_agent
stop_events_api
stop_events_persister
stop_elasticsearch
stop_kafka
stop_zookeeper
}
function clean_monasca_events {
@ -92,20 +95,12 @@ function clean_monasca_events {
clean_events_agent
clean_events_api
clean_events_persister
clean_elasticsearch
clean_kafka
clean_zookeeper
}
# check for service enabled
if is_service_enabled monasca-events; then
if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
# Set up system services
echo_summary "Configuring Monasca Events system services"
pre_install_monasca_events
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
if [[ "$1" == "stack" && "$2" == "install" ]]; then
# Perform installation of service source
echo_summary "Installing Monasca Events"
install_monasca_events
@ -118,7 +113,6 @@ if is_service_enabled monasca-events; then
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
# Initialize and start the Monasca service
echo_summary "Initializing Monasca Events"
init_monasca_events
start_monasca_events
fi

View File

@ -78,6 +78,7 @@ MONASCA_EVENTS_API_CACHE_DIR=${MONASCA_EVENTS_API_CACHE_DIR:-/var/cache/monasca-
MONASCA_EVENTS_API_SERVICE_HOST=${MONASCA_EVENTS_API_SERVICE_HOST:-${SERVICE_HOST}}
MONASCA_EVENTS_API_SERVICE_PORT=${MONASCA_EVENTS_API_SERVICE_PORT:-5656}
MONASCA_EVENTS_API_SERVICE_PROTOCOL=${MONASCA_EVENTS_API_SERVICE_PROTOCOL:-${SERVICE_PROTOCOL}}
MONASCA_EVENTS_API_UWSGI_CONF=${MONASCA_EVENTS_API_UWSGI_CONF:-$MONASCA_EVENTS_API_CONF_DIR/events-api-uwsgi.ini}
MONASCA_EVENTS_PERSISTER_CONF_DIR=${MONASCA_EVENTS_PERSISTER_CONF_DIR:-/etc/monasca}
MONASCA_EVENTS_PERSISTER_CONF=${MONASCA_EVENTS_PERSISTER_CONF:-${MONASCA_EVENTS_PERSISTER_CONF_DIR}/events-persister.conf}

View File

@ -0,0 +1,25 @@
[uwsgi]
wsgi-file = /usr/local/bin/monasca-events-api-wsgi
# Versions of mod_proxy_uwsgi>=2.0.6 should use a UNIX socket, see
# http://uwsgi-docs.readthedocs.org/en/latest/Apache.html#mod-proxy-uwsgi
uwsgi-socket = 127.0.0.1:5607
# Override the default size for headers from the 4k default.
buffer-size = 65535
# This is running standalone
master = true
enable-threads = true
# Tune this to your environment.
processes = 4
# uwsgi recommends this to prevent thundering herd on accept.
thunder-lock = true
plugins = python
# This ensures that file descriptors aren't shared between keystone processes.
lazy-apps = true

View File

@ -18,6 +18,14 @@ Use this file for deploying the API under mod_wsgi.
from paste import deploy
base_dir = '/etc/monasca/'
conf = '{0}event-api-paste.ini'.format(base_dir)
application = deploy.loadapp('config:{0}'.format(conf))
application = None
def main():
base_dir = '/etc/monasca/'
conf = '{0}events-api-paste.ini'.format(base_dir)
app = deploy.loadapp('config:{0}'.format(conf))
return app
if __name__ == '__main__' or __name__.startswith('_mod_wsgi'):
application = main()

View File

@ -31,9 +31,6 @@ data_files =
etc/monasca/events-api-paste.ini
etc/monasca/events-api-logging.conf
wsgi_scripts =
monasca-events-api-wsgi = monasca_events_api.app.wsgi:main
[entry_points]
oslo.config.opts =
@ -42,6 +39,9 @@ oslo.config.opts =
oslo.policy.policies =
events.api = monasca_events_api.policies:list_rules
wsgi_scripts =
monasca-events-api-wsgi = monasca_events_api.app.wsgi:main
[build_sphinx]
all_files = 1
build-dir = doc/build