Merge "Allow plugins to express dependency info"
diff --git a/doc/source/plugin-registry.rst b/doc/source/plugin-registry.rst
index c3063ac..43dd3c2 100644
--- a/doc/source/plugin-registry.rst
+++ b/doc/source/plugin-registry.rst
@@ -151,6 +151,7 @@
panko `git://git.openstack.org/openstack/panko <https://git.openstack.org/cgit/openstack/panko>`__
patrole `git://git.openstack.org/openstack/patrole <https://git.openstack.org/cgit/openstack/patrole>`__
picasso `git://git.openstack.org/openstack/picasso <https://git.openstack.org/cgit/openstack/picasso>`__
+python-openstacksdk `git://git.openstack.org/openstack/python-openstacksdk <https://git.openstack.org/cgit/openstack/python-openstacksdk>`__
qinling `git://git.openstack.org/openstack/qinling <https://git.openstack.org/cgit/openstack/qinling>`__
rally `git://git.openstack.org/openstack/rally <https://git.openstack.org/cgit/openstack/rally>`__
sahara `git://git.openstack.org/openstack/sahara <https://git.openstack.org/cgit/openstack/sahara>`__
diff --git a/functions-common b/functions-common
index aee569b..df295a3 100644
--- a/functions-common
+++ b/functions-common
@@ -1392,7 +1392,7 @@
iniset -sudo $unitfile "Service" "User" "$user"
iniset -sudo $unitfile "Service" "ExecStart" "$command"
iniset -sudo $unitfile "Service" "KillMode" "process"
- iniset -sudo $unitfile "Service" "TimeoutStopSec" "infinity"
+ iniset -sudo $unitfile "Service" "TimeoutStopSec" "300"
iniset -sudo $unitfile "Service" "ExecReload" "$KILL_PATH -HUP \$MAINPID"
if [[ -n "$group" ]]; then
iniset -sudo $unitfile "Service" "Group" "$group"
diff --git a/inc/python b/inc/python
index 8064014..2e4eff0 100644
--- a/inc/python
+++ b/inc/python
@@ -406,6 +406,15 @@
# determine if a package was installed from git
function lib_installed_from_git {
local name=$1
+ local safe_name
+ # TODO(mordred) This is a special case for python-openstacksdk, where the
+ # repo name and the pip name do not match. We should either add systemic
+ # support for providing aliases, or we should rename the git repo.
+ if [[ $name == 'python-openstacksdk' ]] ; then
+ name=openstacksdk
+ fi
+ safe_name=$(python -c "from pkg_resources import safe_name; \
+ print(safe_name('${name}'))")
# Note "pip freeze" doesn't always work here, because it tries to
# be smart about finding the remote of the git repo the package
# was installed from. This doesn't work with zuul which clones
@@ -415,11 +424,11 @@
# you the path an editable install was installed from; for example
# in response to something like
# pip install -e 'git+http://git.openstack.org/openstack-dev/bashate#egg=bashate'
- # pip list shows
- # bashate (0.5.2.dev19, /tmp/env/src/bashate)
- # Thus we look for "path after a comma" to indicate we were
- # installed from some local place
- pip list 2>/dev/null | grep -- "$name" | grep -q -- ', .*)$'
+ # pip list --format columns shows
+ # bashate 0.5.2.dev19 /tmp/env/src/bashate
+ # Thus we check the third column to see if we're installed from
+ # some local place.
+ [[ -n $(pip list --format=columns 2>/dev/null | awk "/^$safe_name/ {print \$3}") ]]
}
# check that everything that's in LIBS_FROM_GIT was actually installed
diff --git a/lib/cinder b/lib/cinder
index 07f82a1..a966a4b 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -244,6 +244,7 @@
iniset $CINDER_CONF DEFAULT my_ip "$HOST_IP"
iniset $CINDER_CONF key_manager backend cinder.keymgr.conf_key_mgr.ConfKeyManager
+ iniset $CINDER_CONF key_manager fixed_key $(openssl rand -hex 16)
if is_service_enabled c-vol && [[ -n "$CINDER_ENABLED_BACKENDS" ]]; then
local enabled_backends=""
diff --git a/lib/nova b/lib/nova
index ea0d2f7..50deeeb 100644
--- a/lib/nova
+++ b/lib/nova
@@ -589,6 +589,8 @@
local vhost
conf=$(conductor_conf $i)
vhost="nova_cell${i}"
+ # clean old conductor conf
+ rm -f $conf
iniset $conf database connection `database_connection_url nova_cell${i}`
iniset $conf conductor workers "$API_WORKERS"
iniset $conf DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
diff --git a/lib/nova_plugins/functions-libvirt b/lib/nova_plugins/functions-libvirt
index dbfa3b5..147ed8b 100644
--- a/lib/nova_plugins/functions-libvirt
+++ b/lib/nova_plugins/functions-libvirt
@@ -25,7 +25,7 @@
DEBUG_LIBVIRT_COREDUMPS=$(trueorfalse False DEBUG_LIBVIRT_COREDUMPS)
# Only Xenial is left with libvirt-bin. Everywhere else is libvirtd
-if is_ubuntu && [ ! -f /etc/init.d/libvirtd ]; then
+if is_ubuntu && [ ${DISTRO} == "xenial" ]; then
LIBVIRT_DAEMON=libvirt-bin
else
LIBVIRT_DAEMON=libvirtd
diff --git a/lib/placement b/lib/placement
index d3fb8c8..1875857 100644
--- a/lib/placement
+++ b/lib/placement
@@ -71,6 +71,7 @@
function cleanup_placement {
sudo rm -f $(apache_site_config_for nova-placement-api)
sudo rm -f $(apache_site_config_for placement-api)
+ remove_uwsgi_config "$PLACEMENT_UWSGI_CONF" "$PLACEMENT_UWSGI"
}
# _config_placement_apache_wsgi() - Set WSGI config files
@@ -188,7 +189,6 @@
function stop_placement {
if [[ "$WSGI_MODE" == "uwsgi" ]]; then
stop_process "placement-api"
- remove_uwsgi_config "$PLACEMENT_UWSGI_CONF" "$PLACEMENT_UWSGI"
else
disable_apache_site placement-api
restart_apache_server
diff --git a/lib/tls b/lib/tls
index 0baf86c..0bc389b 100644
--- a/lib/tls
+++ b/lib/tls
@@ -564,6 +564,20 @@
# using tls configuration are down.
function stop_tls_proxy {
stop_apache_server
+
+ # NOTE(jh): Removing all tls-proxy configs is a bit of a hack, but
+ # necessary so that we can restart after an unstack. A better
+ # solution would be to ensure that each service calling
+ # start_tls_proxy will call stop_tls_proxy with the same
+ # parameters on shutdown so we can use the disable_apache_site
+ # function and remove individual files there.
+ if is_ubuntu; then
+ sudo rm -f /etc/apache2/sites-enabled/*-tls-proxy.conf
+ else
+ for i in $APACHE_CONF_DIR/*-tls-proxy.conf; do
+ sudo mv $i $i.disabled
+ done
+ fi
}
# Clean up the CA files
diff --git a/stackrc b/stackrc
index ffe4050..286a04d 100644
--- a/stackrc
+++ b/stackrc
@@ -121,7 +121,7 @@
# base name of the directory from which they are installed. See
# enable_python3_package to edit this variable and use_python3_for to
# test membership.
-export ENABLED_PYTHON3_PACKAGES="nova,glance,cinder,uwsgi,python-openstackclient"
+export ENABLED_PYTHON3_PACKAGES="nova,glance,cinder,uwsgi,python-openstackclient,python-openstacksdk"
# Explicitly list services not to run under Python 3. See
# disable_python3_package to edit this variable.