rework etcd3 install to be like other devstack services
This separates out the install phase early from the start phase to
make this mirror other services in devstack.
Depends-On: I4124dc7e3fd3b4d973979da85209ec991c0f8c4b
Change-Id: I76f8740448b25a48869ee80006e826baa6cafc2b
diff --git a/lib/etcd3 b/lib/etcd3
index f8b113b..25de238 100644
--- a/lib/etcd3
+++ b/lib/etcd3
@@ -41,13 +41,6 @@
# start_etcd3() - Starts to run the etcd process
function start_etcd3 {
- # Don't install in sub nodes (multinode scenario)
- if [ "$SERVICE_HOST" != "$HOST_IP" ]; then
- return
- fi
-
- _install_etcd
-
local cmd="$ETCD_BIN_DIR/etcd"
cmd+=" --name $HOSTNAME --data-dir $ETCD_DATA_DIR"
cmd+=" --initial-cluster-state new --initial-cluster-token etcd-cluster-01"
@@ -96,7 +89,7 @@
sudo rm -rf $ETCD_DATA_DIR
}
-function _install_etcd {
+function install_etcd3 {
echo "Installing etcd"
# Make sure etcd3 downloads the correct architecture
@@ -115,10 +108,6 @@
ETCD_NAME=etcd-$ETCD_VERSION-linux-$ETCD_ARCH
- # Install the libraries needed. Note: tooz for example does not have a hard dependency on these libraries
- pip_install etcd3
- pip_install etcd3gw
-
# Create the necessary directories
sudo mkdir -p $ETCD_BIN_DIR
sudo mkdir -p $ETCD_DATA_DIR
diff --git a/lib/oslo b/lib/oslo
index d15a303..cbfd5fb 100644
--- a/lib/oslo
+++ b/lib/oslo
@@ -109,7 +109,14 @@
_do_install_oslo_lib "stevedore"
_do_install_oslo_lib "taskflow"
_do_install_oslo_lib "tooz"
+ # installation of additional libraries
+ #
+ # os-traits for nova
_do_install_oslo_lib "os-traits"
+
+ # etcd (because tooz does not have a hard dependency on these)
+ pip_install etcd3
+ pip_install etcd3gw
}
# Restore xtrace
diff --git a/stack.sh b/stack.sh
index cfdc2c4c..c468595 100755
--- a/stack.sh
+++ b/stack.sh
@@ -813,6 +813,10 @@
install_neutron_agent_packages
fi
+if is_service_enabled etcd3; then
+ install_etcd3
+fi
+
# Check Out and Install Source
# ----------------------------