File nova-compute-init-like.patch of Package openstack-resource-agents
Without this, it seems to just not work at all for me.
dmllr: modified for pike
---
ocf/NovaCompute | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
Index: openstack-resource-agents-1.0+git.1485796352.fe84d75/ocf/NovaCompute
===================================================================
--- openstack-resource-agents-1.0+git.1485796352.fe84d75.orig/ocf/NovaCompute
+++ openstack-resource-agents-1.0+git.1485796352.fe84d75/ocf/NovaCompute
@@ -197,8 +197,14 @@ nova_start() {
attrd_updater -p -n evacuate -N ${NOVA_HOST} -D
fi
+ # do not keep pacemaker 0026 umask; this breaks things as nova-compute
+ # needs to be able to read files from qemu/kvm that it will create
+ umask 0022
+ # $RUNDIR can be tmpfs, thus we have to create/own it here
+ mkdir -m 0700 -p /var/run/nova && chown nova. /var/run/nova
+
export LIBGUESTFS_ATTACH_METHOD=appliance
- su nova -s /bin/sh -c /usr/bin/nova-compute &
+ su nova -s /bin/sh -c "/sbin/startproc -q -s /usr/bin/nova-compute"
rc=$OCF_NOT_RUNNING
ocf_log info "Waiting for nova to start"
@@ -211,22 +217,25 @@ nova_start() {
}
nova_stop() {
- pid=$(nova_pid)
- if [ "x$pid" != x ]; then
- su nova -c "kill -TERM $pid" -s /bin/bash
- fi
+# pid=$(nova_pid)
+# if [ "x$pid" != x ]; then
+# su nova -c "kill -TERM $pid" -s /bin/bash
+# fi
+ /sbin/killproc /usr/bin/nova-compute
- while [ "x$pid" != x ]; do
+# while [ "x$pid" != x ]; do
+ while /sbin/checkproc /usr/bin/nova-compute; do
sleep 1
- pid=$(nova_pid)
+# pid=$(nova_pid)
done
return $OCF_SUCCESS
}
nova_monitor() {
- pid=$(nova_pid)
- if [ "x$pid" != x ]; then
+# pid=$(nova_pid)
+# if [ "x$pid" != x ]; then
+ if /sbin/checkproc /usr/bin/nova-compute; then
## TEMPORARY disable call to fence_compute to avoid noise on first
## first startup due to nova-compute not being fast enough to populate
## the db and fence_compute checking if node exists and it's enabled