Set a fixed install dir and simplify the install process

* Install build artifacts to a fixed dir rather than attempting
  to infer a location based on the Python binary location.  That
  was intended to work seamlessly in venvs, we'll burn that bridge
  when we come to it, for now just put it all in
  $DEST/usr/{include|lib}.  This also removed the need for
  root access for these files to allow the build steps to be performed
  on laptops that may not otherwise run DevStack.

* Install systemd unit files directly to /etc/systemd/system
  and skip the requirement to copy them a second time

* Add the declarations to settings for the devstack playbook to
  handle plugin precedence order properly.

Change-Id: I5d68465384e000c05eb650a8358b70f7a7a6c293
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
This commit is contained in:
Dean Troyer 2019-02-15 16:53:23 -06:00
parent a1a98d3514
commit f1c8043abf
3 changed files with 108 additions and 152 deletions

View File

@ -36,8 +36,8 @@
horizon: false horizon: false
# StarlingX services # StarlingX services
fm-common: true fm-common: true
fm-api: true # fm-api: true
mtce: true # mtce: true
mtce-compute: true mtce-compute: true
mtce-control: true mtce-control: true
mtce-storage: true mtce-storage: true

View File

@ -38,13 +38,16 @@ set -o xtrace
# -------- # --------
STX_METAL_DIR=${GITDIR[$STX_METAL_NAME]} STX_METAL_DIR=${GITDIR[$STX_METAL_NAME]}
STX_BIN_DIR=$(get_python_exec_prefix)
PREFIX=${STX_BIN_DIR%/*/*} # STX_INST_DIR should be a non-root-writable place to install build artifacts
STX_INST_DIR=${STX_INST_DIR:-$DEST/usr}
SYSCONFDIR=/etc SYSCONFDIR=/etc
OAM_ETH_NAME=ens3 OAM_ETH_NAME=ens3
MGMT_ETH_NAME=lo MGMT_ETH_NAME=lo
SW_VERSION=18.10 SW_VERSION=18.10
OCF_ROOT=/usr/lib/ocf
# Functions # Functions
# --------- # ---------
@ -65,9 +68,9 @@ function build_mtce {
fi fi
# build # build
make \ CPATH=$STX_INST_DIR/include LIBRARY_PATH=$STX_INST_DIR/lib make \
MAJOR=${major} \ VER_MJR=${major} \
MINOR=${minor} \ VER=${major}.${minor} \
CCFLAGS=' -g -O2 -Wall -Wextra -std=c++11 -DBUILDINFO="\"$$(date)\""' \ CCFLAGS=' -g -O2 -Wall -Wextra -std=c++11 -DBUILDINFO="\"$$(date)\""' \
build build
@ -77,22 +80,8 @@ function build_mtce {
function build_mtce_common { function build_mtce_common {
pushd ${STX_METAL_DIR}/mtce-common/src pushd ${STX_METAL_DIR}/mtce-common/src
local major minor version x
if [[ -z $1 || -z $2 ]]; then
# get mtce-common version
read x version <<< $(grep '^Version:' ${STX_METAL_DIR}/mtce/PKG-INFO)
major=${version%%.*}
minor=${version##*.}
else
major=$1
minor=$2
fi
# build # build
make \ CPATH=$STX_INST_DIR/include LIBRARY_PATH=$STX_INST_DIR/lib make \
MAJOR=${major} \
MINOR=${minor} \
CCFLAGS=' -g -O2 -Wall -Wextra -std=c++11 -DBUILDINFO="\"$$(date)\""' \ CCFLAGS=' -g -O2 -Wall -Wextra -std=c++11 -DBUILDINFO="\"$$(date)\""' \
build build
@ -128,10 +117,10 @@ function install_mtce_common {
build_mtce_common build_mtce_common
local lib64_dir=${PREFIX}/lib64 local lib64_dir=${STX_INST_DIR}/lib64
local inc_dir=${PREFIX}/include local inc_dir=${STX_INST_DIR}/include
local inc_dir_common=${PREFIX}/include/mtce-common local inc_dir_common=${STX_INST_DIR}/include/mtce-common
local inc_dir_daemon=${PREFIX}/include/mtce-daemon local inc_dir_daemon=${STX_INST_DIR}/include/mtce-daemon
local libdaecom_file=( \ local libdaecom_file=( \
"common/libcommon.a" \ "common/libcommon.a" \
@ -143,10 +132,10 @@ function install_mtce_common {
"common/libhostUtil.a" \ "common/libhostUtil.a" \
"daemon/libdaemon.a" \ "daemon/libdaemon.a" \
) )
sudo install -m 755 -d ${lib64_dir} install -m 755 -d ${lib64_dir}
sudo install -m 644 -t ${lib64_dir} ${libdaecom_file[*]} install -m 644 -t ${lib64_dir} ${libdaecom_file[*]}
sudo install -m 755 -d ${inc_dir} install -m 755 -d ${inc_dir}
local commonhdr_file=( \ local commonhdr_file=( \
"common/fitCodes.h" \ "common/fitCodes.h" \
"common/logMacros.h" \ "common/logMacros.h" \
@ -171,22 +160,22 @@ function install_mtce_common {
"common/tokenUtil.h" \ "common/tokenUtil.h" \
"common/secretUtil.h" \ "common/secretUtil.h" \
) )
sudo install -m 755 -d ${inc_dir_common} install -m 755 -d ${inc_dir}
sudo install -m 644 -t ${inc_dir_common} ${commonhdr_file[*]} install -m 644 -t ${inc_dir} ${commonhdr_file[*]}
local daemonhdr_file=( \ local daemonhdr_file=( \
"daemon/daemon_ini.h" \ "daemon/daemon_ini.h" \
"daemon/daemon_common.h" \ "daemon/daemon_common.h" \
"daemon/daemon_option.h" \ "daemon/daemon_option.h" \
) )
sudo install -m 755 -d ${inc_dir_daemon} install -m 755 -d ${inc_dir}
sudo install -m 644 -t ${inc_dir_daemon} ${daemonhdr_file[*]} install -m 644 -t ${inc_dir} ${daemonhdr_file[*]}
popd popd
} }
function install_mtce_compute { function install_mtce_compute {
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${SYSCONFDIR}/pmon.d local local_etc_pmond=${SYSCONFDIR}/pmon.d
local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d
local local_etc_nova=${SYSCONFDIR}/nova local local_etc_nova=${SYSCONFDIR}/nova
@ -212,13 +201,13 @@ function install_mtce_compute {
sudo install -m 755 -p -D scripts/virt-support-goenabled.sh ${local_etc_goenabledd}/virt-support-goenabled.sh sudo install -m 755 -p -D scripts/virt-support-goenabled.sh ${local_etc_goenabledd}/virt-support-goenabled.sh
# Install to systemd # Install to systemd
sudo install -m 644 -p -D scripts/e_nova-init.service ${unit_dir}/e_nova-init.service sudo install -m 644 -p -D scripts/e_nova-init.service ${unit_dir}/devstack@e_nova-init.service
popd popd
} }
function install_mtce_control { function install_mtce_control {
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${SYSCONFDIR}/pmon.d local local_etc_pmond=${SYSCONFDIR}/pmon.d
local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d
@ -231,7 +220,7 @@ function install_mtce_control {
sudo install -m 755 -d ${local_etc_pmond} sudo install -m 755 -d ${local_etc_pmond}
sudo install -m 644 -p -D scripts/hbsAgent.conf ${local_etc_pmond}/hbsAgent.conf sudo install -m 644 -p -D scripts/hbsAgent.conf ${local_etc_pmond}/hbsAgent.conf
# Controller-Only Heartbeat Service file # Controller-Only Heartbeat Service file
sudo install -m 644 -p -D scripts/hbsAgent.service ${unit_dir}/hbsAgent.service sudo install -m 644 -p -D scripts/hbsAgent.service ${unit_dir}/devstack@hbsAgent.service
# Controller-Only Go Enabled Test # Controller-Only Go Enabled Test
sudo install -m 755 -d ${local_etc_goenabledd} sudo install -m 755 -d ${local_etc_goenabledd}
popd popd
@ -239,7 +228,7 @@ function install_mtce_control {
function install_mtce_storage { function install_mtce_storage {
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${SYSCONFDIR}/pmon.d local local_etc_pmond=${SYSCONFDIR}/pmon.d
local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d
local local_etc_servicesd=${SYSCONFDIR}/services.d local local_etc_servicesd=${SYSCONFDIR}/services.d
@ -269,13 +258,13 @@ function install_mtce {
build_mtce $major $minor build_mtce $major $minor
local bin_dir=${PREFIX}/local/bin local bin_dir=/usr/local/bin
local sbin_dir=${PREFIX}/local/sbin local sbin_dir=/usr/local/sbin
local lib_dir=${PREFIX}/lib local lib_dir=${STX_INST_DIR}/lib
local lib64_dir=${PREFIX}/lib64 local lib64_dir=${STX_INST_DIR}/lib64
local inc_dir=${PREFIX}/include local inc_dir=${STX_INST_DIR}/include
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${sysconf_dir}/pmon.d local local_etc_pmond=${sysconf_dir}/pmon.d
local local_etc_rmond=${sysconf_dir}/rmon.d local local_etc_rmond=${sysconf_dir}/rmon.d
@ -291,23 +280,21 @@ function install_mtce {
# TODO: follow install_files way in install_mtce_common to install files # TODO: follow install_files way in install_mtce_common to install files
# Resource Agent Stuff # Resource Agent Stuff
sudo install -m 755 -d ${lib_dir}/ocf sudo install -m 755 -d ${OCF_ROOT}/resource.d/platform
sudo install -m 755 -d ${lib_dir}/ocf/resource.d sudo install -m 755 -p -D scripts/mtcAgent ${OCF_ROOT}/resource.d/platform/mtcAgent
sudo install -m 755 -d ${lib_dir}/ocf/resource.d/platform sudo install -m 755 -p -D hwmon/scripts/ocf/hwmon ${OCF_ROOT}/resource.d/platform/hwmon
sudo install -m 755 -p -D scripts/mtcAgent ${lib_dir}/ocf/resource.d/platform/mtcAgent
sudo install -m 755 -p -D hwmon/scripts/ocf/hwmon ${lib_dir}/ocf/resource.d/platform/hwmon
# TODO: fix this issue in multi-os task # TODO: fix this issue in multi-os task
# The default shell of ubuntu is dash, causes loop syntax error # The default shell of ubuntu is dash, causes loop syntax error
if is_ubuntu; then if is_ubuntu; then
sudo sed -i "s|#!/bin/sh|#!/bin/bash|g" ${PREFIX}/lib/ocf/resource.d/platform/mtcAgent sudo sed -i "s|#!/bin/sh|#!/bin/bash|g" ${OCF_ROOT}/resource.d/platform/mtcAgent
sudo sed -i "s|#!/bin/sh|#!/bin/bash|g" ${PREFIX}/lib/ocf/resource.d/platform/hwmon sudo sed -i "s|#!/bin/sh|#!/bin/bash|g" ${OCF_ROOT}/resource.d/platform/hwmon
fi fi
# TODO: figure out why OCF_ROOT is not set when running stack.sh # TODO: figure out why OCF_ROOT is not set when running stack.sh
# workaround to hardcode OCF_ROOT # workaround to hardcode OCF_ROOT
sudo sed -i "s|\${OCF_ROOT}|/usr/lib/ocf|g" ${PREFIX}/lib/ocf/resource.d/platform/mtcAgent # sed -i "s|\${OCF_ROOT}|\${OCF_ROOT}|g" ${OCF_ROOT}/resource.d/platform/mtcAgent
sudo sed -i "s|\${OCF_ROOT}|/usr/lib/ocf|g" ${PREFIX}/lib/ocf/resource.d/platform/hwmon # sed -i "s|\${OCF_ROOT}|\${OCF_ROOT}|g" ${OCF_ROOT}/resource.d/platform/hwmon
# config files # config files
sudo install -m 755 -d ${sysconf_dir}/mtc sudo install -m 755 -d ${sysconf_dir}/mtc
@ -338,7 +325,7 @@ function install_mtce {
sudo install -m 755 -p -D alarm/mtcalarmd ${bin_dir}/mtcalarmd sudo install -m 755 -p -D alarm/mtcalarmd ${bin_dir}/mtcalarmd
sudo install -m 755 -p -D rmon/rmon_resource_notify/rmon_resource_notify ${bin_dir}/rmon_resource_notify sudo install -m 755 -p -D rmon/rmon_resource_notify/rmon_resource_notify ${bin_dir}/rmon_resource_notify
sudo install -m 755 -p -D scripts/wipedisk ${bin_dir}/wipedisk sudo install -m 755 -p -D scripts/wipedisk ${bin_dir}/wipedisk
sudo install -m 755 -p -D fsync/fsync ${PREFIX}/sbin/fsync sudo install -m 755 -p -D fsync/fsync ${STX_INST_DIR}/sbin/fsync
sudo install -m 700 -p -D pmon/scripts/pmon-restart ${sbin_dir}/pmon-restart sudo install -m 700 -p -D pmon/scripts/pmon-restart ${sbin_dir}/pmon-restart
sudo install -m 700 -p -D pmon/scripts/pmon-start ${sbin_dir}/pmon-start sudo install -m 700 -p -D pmon/scripts/pmon-start ${sbin_dir}/pmon-start
sudo install -m 700 -p -D pmon/scripts/pmon-stop ${sbin_dir}/pmon-stop sudo install -m 700 -p -D pmon/scripts/pmon-stop ${sbin_dir}/pmon-stop
@ -356,33 +343,32 @@ function install_mtce {
sudo install -m 755 -p -D scripts/config ${sysconf_dir}/init.d/config sudo install -m 755 -p -D scripts/config ${sysconf_dir}/init.d/config
sudo install -m 755 -p -D scripts/hwclock.sh ${sysconf_dir}/init.d/hwclock.sh sudo install -m 755 -p -D scripts/hwclock.sh ${sysconf_dir}/init.d/hwclock.sh
sudo install -m 644 -p -D scripts/hwclock.service ${unit_dir}/hwclock.service sudo install -m 644 -p -D scripts/hwclock.service ${unit_dir}/devstack@hwclock.service
# systemd service files # systemd service files
sudo install -m 644 -p -D fsmon/scripts/fsmon.service ${unit_dir}/fsmon.service sudo install -m 644 -p -D fsmon/scripts/fsmon.service ${unit_dir}/devstack@fsmon.service
sudo install -m 644 -p -D hwmon/scripts/hwmon.service ${unit_dir}/hwmon.service sudo install -m 644 -p -D hwmon/scripts/hwmon.service ${unit_dir}/devstack@hwmon.service
sudo install -m 644 -p -D rmon/scripts/rmon.service ${unit_dir}/rmon.service sudo install -m 644 -p -D rmon/scripts/rmon.service ${unit_dir}/devstack@rmon.service
sudo install -m 644 -p -D pmon/scripts/pmon.service ${unit_dir}/pmon.service sudo install -m 644 -p -D pmon/scripts/pmon.service ${unit_dir}/devstack@pmon.service
sudo install -m 644 -p -D hostw/scripts/hostw.service ${unit_dir}/hostw.service sudo install -m 644 -p -D hostw/scripts/hostw.service ${unit_dir}/devstack@hostw.service
sudo install -m 644 -p -D scripts/mtcClient.service ${unit_dir}/mtcClient.service sudo install -m 644 -p -D scripts/mtcClient.service ${unit_dir}/devstack@mtcClient.service
sudo install -m 644 -p -D scripts/hbsClient.service ${unit_dir}/hbsClient.service sudo install -m 644 -p -D scripts/hbsClient.service ${unit_dir}/devstack@hbsClient.service
sudo install -m 644 -p -D scripts/mtclog.service ${unit_dir}/mtclog.service sudo install -m 644 -p -D scripts/mtclog.service ${unit_dir}/devstack@mtclog.service
sudo install -m 644 -p -D scripts/goenabled.service ${unit_dir}/goenabled.service sudo install -m 644 -p -D scripts/goenabled.service ${unit_dir}/devstack@goenabled.service
sudo install -m 644 -p -D scripts/runservices.service ${unit_dir}/runservices.service sudo install -m 644 -p -D scripts/runservices.service ${unit_dir}/devstack@runservices.service
sudo install -m 644 -p -D alarm/scripts/mtcalarm.service ${unit_dir}/mtcalarm.service sudo install -m 644 -p -D alarm/scripts/mtcalarm.service ${unit_dir}/devstack@mtcalarm.service
# go enabled stuff # go enabled stuff
sudo install -m 755 -d ${local_etc_goenabledd} sudo install -m 755 -d ${local_etc_goenabledd}
sudo install -m 755 -p -D scripts/goenabled ${sysconf_dir}/init.d/goenabled sudo install -m 755 -p -D scripts/goenabled ${sysconf_dir}/init.d/goenabled
# start or stop services test script # start or stop services test script
sudo install -m 755 -d ${local_etc_servicesd}
sudo install -m 755 -d ${local_etc_servicesd}/controller sudo install -m 755 -d ${local_etc_servicesd}/controller
sudo install -m 755 -d ${local_etc_servicesd}/worker
sudo install -m 755 -d ${local_etc_servicesd}/storage sudo install -m 755 -d ${local_etc_servicesd}/storage
sudo install -m 755 -p -D scripts/mtcTest ${local_etc_servicesd}/worker sudo install -m 755 -d ${local_etc_servicesd}/worker
sudo install -m 755 -p -D scripts/mtcTest ${local_etc_servicesd}/controller sudo install -m 755 -p -D scripts/mtcTest ${local_etc_servicesd}/controller
sudo install -m 755 -p -D scripts/mtcTest ${local_etc_servicesd}/storage sudo install -m 755 -p -D scripts/mtcTest ${local_etc_servicesd}/storage
sudo install -m 755 -p -D scripts/mtcTest ${local_etc_servicesd}/worker
sudo install -m 755 -p -D scripts/runservices ${sysconf_dir}/init.d/runservices sudo install -m 755 -p -D scripts/runservices ${sysconf_dir}/init.d/runservices
# test tools # test tools
@ -426,22 +412,22 @@ function install_mtce {
sudo install -m 644 -p -D alarm/scripts/mtcalarm.logrotate ${local_etc_logrotated}/mtcalarm.logrotate sudo install -m 644 -p -D alarm/scripts/mtcalarm.logrotate ${local_etc_logrotated}/mtcalarm.logrotate
# software development files # software development files
sudo install -m 644 -p -D heartbeat/mtceHbsCluster.h ${inc_dir}/mtceHbsCluster.h install -m 644 -p -D heartbeat/mtceHbsCluster.h ${inc_dir}/mtceHbsCluster.h
sudo install -m 755 -p -D public/libamon.so.${major} ${lib64_dir}/libamon.so.${major} install -m 755 -p -D public/libamon.so.${major} ${lib64_dir}/libamon.so.${major}
sudo install -m 755 -p -D rmon/rmonApi/librmonapi.so.${major} ${lib64_dir}/librmonapi.so.${major} install -m 755 -p -D rmon/rmonApi/librmonapi.so.${major} ${lib64_dir}/librmonapi.so.${major}
popd popd
pushd ${lib64_dir} pushd ${lib64_dir}
sudo ln -sf libamon.so.${major} libamon.so.${major}.${minor} ln -sf libamon.so.${major} libamon.so.${major}.${minor}
sudo ln -sf libamon.so.${major} libamon.so ln -sf libamon.so.${major} libamon.so
sudo ln -sf librmonapi.so.${major} librmonapi.so.${major}.${minor} ln -sf librmonapi.so.${major} librmonapi.so.${major}.${minor}
sudo ln -sf librmonapi.so.${major} librmonapi.so ln -sf librmonapi.so.${major} librmonapi.so
popd popd
} }
function configure_maintenance { function configure_maintenance {
echo "${PREFIX}/lib64" | sudo tee /etc/ld.so.conf.d/stx-metal.conf echo "${STX_INST_DIR}/lib64" | sudo tee /etc/ld.so.conf.d/stx-metal.conf
sudo ldconfig sudo ldconfig
sudo mkdir -p /etc/platform sudo mkdir -p /etc/platform
@ -485,20 +471,17 @@ function configure_maintenance {
iniset -sudo /etc/mtc.ini "agent" "sm_server_port" "2124" iniset -sudo /etc/mtc.ini "agent" "sm_server_port" "2124"
iniset -sudo /etc/mtc.ini "agent" "sm_client_port" "2224" iniset -sudo /etc/mtc.ini "agent" "sm_client_port" "2224"
# add port 5000 to keystone apache server # TODO(dtroyer): Do this with the devstack functions in lib/apache
sudo sed -i '$aListen 5000' /etc/apache2/sites-available/keystone-wsgi-public.conf # # add port 5000 to keystone apache server
sudo sed -i '$a<VirtualHost *:5000>' /etc/apache2/sites-available/keystone-wsgi-public.conf # sudo sed -i '$aListen 5000' /etc/apache2/sites-available/keystone-wsgi-public.conf
sudo sed -i '$aProxyPass / "unix:/var/run/uwsgi/keystone-wsgi-public.socket|uwsgi://uwsgi-uds-keystone-wsgi-public/" retry=0"' /etc/apache2/sites-available/keystone-wsgi-public.conf # sudo sed -i '$a<VirtualHost *:5000>' /etc/apache2/sites-available/keystone-wsgi-public.conf
sudo sed -i '$a</VirtualHost>' /etc/apache2/sites-available/keystone-wsgi-public.conf # sudo sed -i '$aProxyPass / "unix:/var/run/uwsgi/keystone-wsgi-public.socket|uwsgi://uwsgi-uds-keystone-wsgi-public/" retry=0"' /etc/apache2/sites-available/keystone-wsgi-public.conf
sudo systemctl restart apache2 # sudo sed -i '$a</VirtualHost>' /etc/apache2/sites-available/keystone-wsgi-public.conf
# sudo systemctl restart apache2
if is_ubuntu; then if is_ubuntu; then
sudo ln -sf /lib/lsb/init-functions /etc/init.d/functions sudo ln -sf /lib/lsb/init-functions /etc/init.d/functions
fi fi
if [ -z "$OCF_ROOT" ]; then
export OCF_ROOT=/usr/lib/ocf
fi
} }
function start_mtcAgent { function start_mtcAgent {
@ -511,17 +494,15 @@ function start_mtcAgent {
# init mtcAgent # init mtcAgent
iniset -sudo /etc/systemd/system/devstack@mtcAgent.service "Service" "Type" "forking" iniset -sudo /etc/systemd/system/devstack@mtcAgent.service "Service" "Type" "forking"
iniset -sudo /etc/systemd/system/devstack@mtcAgent.service "Service" "PIDFile" "/var/run/mtcAgent.pid" iniset -sudo /etc/systemd/system/devstack@mtcAgent.service "Service" "PIDFile" "/var/run/mtcAgent.pid"
iniset -sudo /etc/systemd/system/devstack@mtcAgent.service "Service" "Environment" "OCF_ROOT=${OCF_ROOT}"
sudo sed -i "s|OCF_RESKEY_state_default=\"standby\"|OCF_RESKEY_state_default=\"active\"|g" \ sudo sed -i "s|OCF_RESKEY_state_default=\"standby\"|OCF_RESKEY_state_default=\"active\"|g" \
${PREFIX}/lib/ocf/resource.d/platform/mtcAgent ${OCF_ROOT}/resource.d/platform/mtcAgent
run_process mtcAgent "${PREFIX}/lib/ocf/resource.d/platform/mtcAgent start" root root run_process mtcAgent "${OCF_ROOT}/resource.d/platform/mtcAgent start" root root
} }
function start_hbsAgent { function start_hbsAgent {
# copy hbsAgent.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/hbsAgent.service \
${SYSCONFDIR}/systemd/system/devstack@hbsAgent.service
run_process hbsAgent "${SYSCONFDIR}/rc.d/init.d/hbsAgent start" root root run_process hbsAgent "${SYSCONFDIR}/rc.d/init.d/hbsAgent start" root root
} }
@ -530,7 +511,7 @@ function start_hwmon {
iniset -sudo /etc/systemd/system/devstack@hwmon.service "Service" "Type" "forking" iniset -sudo /etc/systemd/system/devstack@hwmon.service "Service" "Type" "forking"
iniset -sudo /etc/systemd/system/devstack@hwmon.service "Service" "PIDFile" "/var/run/hwmond.pid" iniset -sudo /etc/systemd/system/devstack@hwmon.service "Service" "PIDFile" "/var/run/hwmond.pid"
run_process hwmon "${PREFIX}/lib/ocf/resource.d/platform/hwmon start" root root run_process hwmon "${OCF_ROOT}/resource.d/platform/hwmon start" root root
} }
function start_mtce_control { function start_mtce_control {
@ -555,7 +536,7 @@ function start_mtce_compute {
# TODO: It's not working until initial compute config applied by puppet # TODO: It's not working until initial compute config applied by puppet
# implemented in devstack # implemented in devstack
# oneshot nova init service # oneshot nova init service
#sudo cp ${PREFIX}/lib/systemd/system/e_nova-init.service \ #sudo cp ${STX_INST_DIR}/lib/systemd/system/e_nova-init.service \
# ${SYSCONFDIR}/systemd/system/devstack@e_nova-init.service # ${SYSCONFDIR}/systemd/system/devstack@e_nova-init.service
#run_process e_nova-init "${SYSCONFDIR}/init.d/e_nova-init start" root root #run_process e_nova-init "${SYSCONFDIR}/init.d/e_nova-init start" root root
@ -606,48 +587,26 @@ function start_maintenance {
} }
function start_mtcClient { function start_mtcClient {
# copy mtcClient.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/mtcClient.service \
${SYSCONFDIR}/systemd/system/devstack@mtcClient.service
run_process mtcClient "${SYSCONFDIR}/rc.d/init.d/mtcClient start" root root run_process mtcClient "${SYSCONFDIR}/rc.d/init.d/mtcClient start" root root
} }
function start_hbsClient { function start_hbsClient {
# copy hbsClient.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/hbsClient.service \
${SYSCONFDIR}/systemd/system/devstack@hbsClient.service
run_process hbsClient "${SYSCONFDIR}/rc.d/init.d/hbsClient start" root root run_process hbsClient "${SYSCONFDIR}/rc.d/init.d/hbsClient start" root root
} }
function start_pmon { function start_pmon {
# copy pmon.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/pmon.service \
${SYSCONFDIR}/systemd/system/devstack@pmon.service
run_process pmon "${SYSCONFDIR}/rc.d/init.d/pmon start" root root run_process pmon "${SYSCONFDIR}/rc.d/init.d/pmon start" root root
} }
function start_rmon { function start_rmon {
# copy rmon.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/rmon.service \
${SYSCONFDIR}/systemd/system/devstack@rmon.service
run_process rmon "${SYSCONFDIR}/rc.d/init.d/rmon start" root root run_process rmon "${SYSCONFDIR}/rc.d/init.d/rmon start" root root
} }
function start_mtclog { function start_mtclog {
# copy mtclog.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/mtclog.service \
${SYSCONFDIR}/systemd/system/devstack@mtclog.service
run_process mtclog "${SYSCONFDIR}/rc.d/init.d/mtclog start" root root run_process mtclog "${SYSCONFDIR}/rc.d/init.d/mtclog start" root root
} }
function start_mtcalarm { function start_mtcalarm {
# copy mtcalarm.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/mtcalarm.service \
${SYSCONFDIR}/systemd/system/devstack@mtcalarm.service
run_process mtcalarm "${SYSCONFDIR}/rc.d/init.d/mtcalarm start" root root run_process mtcalarm "${SYSCONFDIR}/rc.d/init.d/mtcalarm start" root root
} }
@ -656,18 +615,10 @@ function start_goenabled {
} }
function start_fsmon { function start_fsmon {
# copy fsmon.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/fsmon.service \
${SYSCONFDIR}/systemd/system/devstack@fsmon.service
run_process fsmon "${SYSCONFDIR}/rc.d/init.d/fsmon start" root root run_process fsmon "${SYSCONFDIR}/rc.d/init.d/fsmon start" root root
} }
function start_hostw { function start_hostw {
# copy hostw.service template to devstack
sudo cp ${PREFIX}/lib/systemd/system/hostw.service \
${SYSCONFDIR}/systemd/system/devstack@hostw.service
run_process hostw "${SYSCONFDIR}/rc.d/init.d/hostw start" root root run_process hostw "${SYSCONFDIR}/rc.d/init.d/hostw start" root root
} }
@ -790,13 +741,13 @@ function cleanup_metal {
local major=${version%%.*} local major=${version%%.*}
local minor=${version##*.} local minor=${version##*.}
local bin_dir=${PREFIX}/local/bin local bin_dir=/usr/local/bin
local sbin_dir=${PREFIX}/local/sbin local sbin_dir=/usr/local/sbin
local lib_dir=${PREFIX}/lib local lib_dir=${STX_INST_DIR}/lib
local lib64_dir=${PREFIX}/lib64 local lib64_dir=${STX_INST_DIR}/lib64
local inc_dir=${PREFIX}/include local inc_dir=${STX_INST_DIR}/include
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${sysconf_dir}/pmon.d local local_etc_pmond=${sysconf_dir}/pmon.d
local local_etc_rmond=${sysconf_dir}/rmon.d local local_etc_rmond=${sysconf_dir}/rmon.d
@ -804,8 +755,8 @@ function cleanup_metal {
local local_etc_servicesd=${sysconf_dir}/services.d local local_etc_servicesd=${sysconf_dir}/services.d
local local_etc_logrotated=${sysconf_dir}/logrotate.d local local_etc_logrotated=${sysconf_dir}/logrotate.d
sudo rm -rf ${lib_dir}/ocf/resource.d/platform/mtcAgent sudo rm -rf ${OCF_ROOT}/resource.d/platform/mtcAgent
sudo rm -rf ${lib_dir}/ocf/resource.d/platform/hwmon sudo rm -rf ${OCF_ROOT}/resource.d/platform/hwmon
sudo rm -rf ${sysconf_dir}/mtc.ini sudo rm -rf ${sysconf_dir}/mtc.ini
sudo rm -rf ${sysconf_dir}/mtc.conf sudo rm -rf ${sysconf_dir}/mtc.conf
@ -833,7 +784,7 @@ function cleanup_metal {
sudo rm -rf ${bin_dir}/mtcalarmd sudo rm -rf ${bin_dir}/mtcalarmd
sudo rm -rf ${bin_dir}/rmon_resource_notify sudo rm -rf ${bin_dir}/rmon_resource_notify
sudo rm -rf ${bin_dir}/wipedisk sudo rm -rf ${bin_dir}/wipedisk
sudo rm -rf ${PREFIX}/sbin/fsync sudo rm -rf ${STX_INST_DIR}/sbin/fsync
sudo rm -rf ${sbin_dir}/pmon-restart sudo rm -rf ${sbin_dir}/pmon-restart
sudo rm -rf ${sbin_dir}/pmon-start sudo rm -rf ${sbin_dir}/pmon-start
sudo rm -rf ${sbin_dir}/pmon-stop sudo rm -rf ${sbin_dir}/pmon-stop
@ -851,20 +802,20 @@ function cleanup_metal {
sudo rm -rf ${sysconf_dir}/init.d/config sudo rm -rf ${sysconf_dir}/init.d/config
sudo rm -rf ${sysconf_dir}/init.d/hwclock.sh sudo rm -rf ${sysconf_dir}/init.d/hwclock.sh
sudo rm -rf ${unit_dir}/hwclock.service sudo rm -rf ${unit_dir}/devstack@hwclock.service
# systemd service files # systemd service files
sudo rm -rf ${unit_dir}/fsmon.service sudo rm -rf ${unit_dir}/devstack@fsmon.service
sudo rm -rf ${unit_dir}/hwmon.service sudo rm -rf ${unit_dir}/devstack@hwmon.service
sudo rm -rf ${unit_dir}/rmon.service sudo rm -rf ${unit_dir}/devstack@rmon.service
sudo rm -rf ${unit_dir}/pmon.service sudo rm -rf ${unit_dir}/devstack@pmon.service
sudo rm -rf ${unit_dir}/hostw.service sudo rm -rf ${unit_dir}/devstack@hostw.service
sudo rm -rf ${unit_dir}/mtcClient.service sudo rm -rf ${unit_dir}/devstack@mtcClient.service
sudo rm -rf ${unit_dir}/hbsClient.service sudo rm -rf ${unit_dir}/devstack@hbsClient.service
sudo rm -rf ${unit_dir}/mtclog.service sudo rm -rf ${unit_dir}/devstack@mtclog.service
sudo rm -rf ${unit_dir}/goenabled.service sudo rm -rf ${unit_dir}/devstack@goenabled.service
sudo rm -rf ${unit_dir}/runservices.service sudo rm -rf ${unit_dir}/devstack@runservices.service
sudo rm -rf ${unit_dir}/mtcalarm.service sudo rm -rf ${unit_dir}/devstack@mtcalarm.service
# go enabled stuff # go enabled stuff
sudo rm -rf ${sysconf_dir}/init.d/goenabled sudo rm -rf ${sysconf_dir}/init.d/goenabled
@ -921,8 +872,8 @@ function cleanup_metal {
sudo rm -rf ${lib64_dir}/librmonapi.so sudo rm -rf ${lib64_dir}/librmonapi.so
#remove mtce_common #remove mtce_common
local inc_dir_common=${PREFIX}/include/mtce-common local inc_dir_common=${STX_INST_DIR}/include/mtce-common
local inc_dir_daemon=${PREFIX}/include/mtce-daemon local inc_dir_daemon=${STX_INST_DIR}/include/mtce-daemon
local libdaecom_file=( \ local libdaecom_file=( \
"libcommon.a" \ "libcommon.a" \
@ -967,7 +918,7 @@ function cleanup_metal {
if is_service_enabled mtce-compute; then if is_service_enabled mtce-compute; then
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${SYSCONFDIR}/pmon.d local local_etc_pmond=${SYSCONFDIR}/pmon.d
local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d
local local_etc_nova=${SYSCONFDIR}/nova local local_etc_nova=${SYSCONFDIR}/nova
@ -987,11 +938,11 @@ function cleanup_metal {
sudo rm -rf ${local_etc_goenabledd}/virt-support-goenabled.sh sudo rm -rf ${local_etc_goenabledd}/virt-support-goenabled.sh
# systemd # systemd
sudo rm -rf ${unit_dir}/e_nova-init.service sudo rm -rf ${unit_dir}/devstack@e_nova-init.service
fi fi
if is_service_enabled mtce-control; then if is_service_enabled mtce-control; then
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${SYSCONFDIR}/pmon.d local local_etc_pmond=${SYSCONFDIR}/pmon.d
local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d
@ -999,11 +950,11 @@ function cleanup_metal {
sudo rm -rf ${sysconf_dir}/init.d/goenabledControl sudo rm -rf ${sysconf_dir}/init.d/goenabledControl
sudo rm -rf ${sysconf_dir}/init.d/hbsAgent sudo rm -rf ${sysconf_dir}/init.d/hbsAgent
sudo rm -rf ${local_etc_pmond}/hbsAgent.conf sudo rm -rf ${local_etc_pmond}/hbsAgent.conf
sudo rm -rf ${unit_dir}/hbsAgent.service sudo rm -rf ${unit_dir}/devstack@hbsAgent.service
fi fi
if is_service_enabled mtce-storage; then if is_service_enabled mtce-storage; then
local sysconf_dir=${SYSCONFDIR} local sysconf_dir=${SYSCONFDIR}
local unit_dir=${PREFIX}/lib/systemd/system local unit_dir=${SYSCONFDIR}/systemd/system
local local_etc_pmond=${SYSCONFDIR}/pmon.d local local_etc_pmond=${SYSCONFDIR}/pmon.d
local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d local local_etc_goenabledd=${SYSCONFDIR}/goenabled.d
local local_etc_servicesd=${SYSCONFDIR}/services.d local local_etc_servicesd=${SYSCONFDIR}/services.d

View File

@ -35,6 +35,11 @@ STX_METAL_NAME=stx-metal
# Enable service for node type # Enable service for node type
enable_service $STX_METAL_NAME enable_service $STX_METAL_NAME
# This must not use any variables to work properly in OpenStack's DevStack playbook
define_plugin stx-metal
# This works for Zuul jobs using OpenStack's DevStack roles
plugin_requires stx-metal stx-fault
if is_service_enabled mtce-components; then if is_service_enabled mtce-components; then
enable_service fsmon hbs hwmon mtce mtcalarm mtclog pmon rmon enable_service fsmon hbs hwmon mtce mtcalarm mtclog pmon rmon
fi fi