Merge "vmware-nsx: Vendor code split"
diff --git a/README.md b/README.md
index 206ffe0..c5e7f55 100644
--- a/README.md
+++ b/README.md
@@ -282,7 +282,15 @@
tests can be run as follows:
$ cd /opt/stack/tempest
- $ nosetests tempest/scenario/test_network_basic_ops.py
+ $ tox -efull tempest.scenario.test_network_basic_ops
+
+By default tempest is downloaded and the config file is generated, but the
+tempest package is not installed in the system's global site-packages (the
+package install includes installing dependences). So tempest won't run
+outside of tox. If you would like to install it add the following to your
+``localrc`` section:
+
+ INSTALL_TEMPEST=True
# DevStack on Xenserver
diff --git a/lib/ceilometer b/lib/ceilometer
index 82e9417..9db0640 100644
--- a/lib/ceilometer
+++ b/lib/ceilometer
@@ -13,21 +13,16 @@
#
# enable_service ceilometer-alarm-notifier ceilometer-alarm-evaluator
#
-# To ensure events are stored, add the following section to local.conf:
-#
-# [[post-config|$CEILOMETER_CONF]]
-# [notification]
-# store_events=True
-#
# Several variables set in the localrc section adjust common behaviors
# of Ceilometer (see within for additional settings):
#
# CEILOMETER_USE_MOD_WSGI: When True, run the api under mod_wsgi.
# CEILOMETER_PIPELINE_INTERVAL: The number of seconds between pipeline processing
# runs. Default 600.
-# CEILOMETER_BACKEND: The database backend (e.g. 'mysql', 'mongodb')
+# CEILOMETER_BACKEND: The database backend (e.g. 'mysql', 'mongodb', 'es')
# CEILOMETER_COORDINATION_URL: The URL for a group membership service provided
# by tooz.
+# CEILOMETER_EVENTS: Enable event collection
# Dependencies:
@@ -80,6 +75,7 @@
# To enable OSprofiler change value of this variable to "notifications,profiler"
CEILOMETER_NOTIFICATION_TOPICS=${CEILOMETER_NOTIFICATION_TOPICS:-notifications}
+CEILOMETER_EVENTS=${CEILOMETER_EVENTS:-True}
CEILOMETER_COORDINATION_URL=${CEILOMETER_COORDINATION_URL:-}
CEILOMETER_PIPELINE_INTERVAL=${CEILOMETER_PIPELINE_INTERVAL:-}
@@ -137,8 +133,10 @@
# cleanup_ceilometer() - Remove residual data files, anything left over from previous
# runs that a clean run would need to clean up
function cleanup_ceilometer {
- if [ "$CEILOMETER_BACKEND" != 'mysql' ] && [ "$CEILOMETER_BACKEND" != 'postgresql' ] ; then
+ if [ "$CEILOMETER_BACKEND" = 'mongodb' ] ; then
mongo ceilometer --eval "db.dropDatabase();"
+ elif [ "$CEILOMETER_BACKEND" = 'es' ] ; then
+ curl -XDELETE "localhost:9200/events_*"
fi
if [ "$CEILOMETER_USE_MOD_WSGI" == "True" ]; then
_cleanup_ceilometer_apache_wsgi
@@ -206,11 +204,21 @@
configure_auth_token_middleware $CEILOMETER_CONF ceilometer $CEILOMETER_AUTH_CACHE_DIR
+ iniset $CEILOMETER_CONF notification store_events $CEILOMETER_EVENTS
+
if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] ; then
iniset $CEILOMETER_CONF database alarm_connection $(database_connection_url ceilometer)
iniset $CEILOMETER_CONF database event_connection $(database_connection_url ceilometer)
iniset $CEILOMETER_CONF database metering_connection $(database_connection_url ceilometer)
iniset $CEILOMETER_CONF DEFAULT collector_workers $API_WORKERS
+ elif [ "$CEILOMETER_BACKEND" = 'es' ] ; then
+ # es is only supported for events. we will use sql for alarming/metering.
+ iniset $CEILOMETER_CONF database alarm_connection $(database_connection_url ceilometer)
+ iniset $CEILOMETER_CONF database event_connection es://localhost:9200
+ iniset $CEILOMETER_CONF database metering_connection $(database_connection_url ceilometer)
+ iniset $CEILOMETER_CONF DEFAULT collector_workers $API_WORKERS
+ ${TOP_DIR}/pkg/elasticsearch.sh start
+ cleanup_ceilometer
else
iniset $CEILOMETER_CONF database alarm_connection mongodb://localhost:27017/ceilometer
iniset $CEILOMETER_CONF database event_connection mongodb://localhost:27017/ceilometer
@@ -264,7 +272,7 @@
rm -f $CEILOMETER_AUTH_CACHE_DIR/*
if is_service_enabled mysql postgresql; then
- if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] ; then
+ if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] || [ "$CEILOMETER_BACKEND" = 'es' ] ; then
recreate_database ceilometer
$CEILOMETER_BIN_DIR/ceilometer-dbsync
fi
@@ -293,6 +301,11 @@
elif echo $CEILOMETER_COORDINATION_URL | grep -q '^redis:'; then
install_redis
fi
+
+ if [ "$CEILOMETER_BACKEND" = 'es' ] ; then
+ ${TOP_DIR}/pkg/elasticsearch.sh download
+ ${TOP_DIR}/pkg/elasticsearch.sh install
+ fi
}
# install_ceilometerclient() - Collect source and prepare
diff --git a/lib/tempest b/lib/tempest
index 6177ffe..f856ce0 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -63,6 +63,12 @@
BUILD_TIMEOUT=${BUILD_TIMEOUT:-196}
+# This must be False on stable branches, as master tempest
+# deps do not match stable branch deps. Set this to True to
+# have tempest installed in devstack by default.
+INSTALL_TEMPEST=${INSTALL_TEMPEST:-"False"}
+
+
BOTO_MATERIALS_PATH="$FILES/images/s3-materials/cirros-${CIRROS_VERSION}"
BOTO_CONF=/etc/boto.cfg
@@ -94,8 +100,12 @@
# configure_tempest() - Set config files, create data dirs, etc
function configure_tempest {
- # install testr since its used to process tempest logs
- pip_install $(get_from_global_requirements testrepository)
+ if [[ "$INSTALL_TEMPEST" == "True" ]]; then
+ setup_develop $TEMPEST_DIR
+ else
+ # install testr since its used to process tempest logs
+ pip_install $(get_from_global_requirements testrepository)
+ fi
local image_lines
local images
diff --git a/lib/trove b/lib/trove
index d437718..080e860 100644
--- a/lib/trove
+++ b/lib/trove
@@ -180,7 +180,7 @@
iniset $TROVE_CONF_DIR/trove-guestagent.conf DEFAULT trove_auth_url $TROVE_AUTH_ENDPOINT
iniset $TROVE_CONF_DIR/trove-guestagent.conf DEFAULT control_exchange trove
iniset $TROVE_CONF_DIR/trove-guestagent.conf DEFAULT ignore_users os_admin
- iniset $TROVE_CONF_DIR/trove-guestagent.conf DEFAULT log_dir /tmp/
+ iniset $TROVE_CONF_DIR/trove-guestagent.conf DEFAULT log_dir /var/log/trove/
iniset $TROVE_CONF_DIR/trove-guestagent.conf DEFAULT log_file trove-guestagent.log
setup_trove_logging $TROVE_CONF_DIR/trove-guestagent.conf
}
diff --git a/pkg/elasticsearch.sh b/pkg/elasticsearch.sh
index 447596a..239d6b9 100755
--- a/pkg/elasticsearch.sh
+++ b/pkg/elasticsearch.sh
@@ -47,11 +47,20 @@
:
}
+function _check_elasticsearch_ready {
+ # poll elasticsearch to see if it's started
+ if ! wait_for_service 30 http://localhost:9200; then
+ die $LINENO "Maximum timeout reached. Could not connect to ElasticSearch"
+ fi
+}
+
function start_elasticsearch {
if is_ubuntu; then
sudo /etc/init.d/elasticsearch start
+ _check_elasticsearch_ready
elif is_fedora; then
sudo /bin/systemctl start elasticsearch.service
+ _check_elasticsearch_ready
else
echo "Unsupported architecture...can not start elasticsearch."
fi
diff --git a/stack.sh b/stack.sh
index 44a0743..58b4479 100755
--- a/stack.sh
+++ b/stack.sh
@@ -250,8 +250,10 @@
enabled=0
gpgcheck=0
EOF
- # bare yum call due to --enablerepo
- sudo yum --enablerepo=epel-bootstrap -y install epel-release || \
+ # Enable a bootstrap repo. It is removed after finishing
+ # the epel-release installation.
+ sudo yum-config-manager --enable epel-bootstrap
+ yum_install epel-release || \
die $LINENO "Error installing EPEL repo, cannot continue"
# epel rpm has installed it's version
sudo rm -f /etc/yum.repos.d/epel-bootstrap.repo