Set up /var/run/nfv-vim as vim's default temp files location

nfv vim call the k8s python client to perform a number of
operations. The k8s python client creates temp files under /tmp and
continues use these tmp files for the life-cycle of the processes.

However systemd-tmpfiles-clean.service will run every day to clean up
files in /tmp dir that are older than 10 days. If the k8s client code
is not triggered for more than 10 days (thus its temp files are not
accessed for more than 10 days), these temp files will be removed as
part of the cleanup. Certain vim operations then starts to fail
with an error that the tmp file is no longer there.

This is a known issue of kubernetes python client:
https://github.com/kubernetes-client/python/issues/765

The commit fixes this issue by setting TMPDIR to /var/run/nfv-vim
when sm starts vim.

Change-Id: I4f0544055e9d10ba2374e9fdb5133d767c1fa2c3
Closes-Bug: 1883599
Signed-off-by: Andy Ning <andy.ning@windriver.com>
This commit is contained in:
Andy Ning 2020-09-25 10:48:11 -04:00
parent 4c36f911c9
commit 43e6a9f768

View File

@ -35,6 +35,7 @@ OCF_RESKEY_pid_default="/var/run/${binname}.pid"
: ${OCF_RESKEY_pid=${OCF_RESKEY_pid_default}} : ${OCF_RESKEY_pid=${OCF_RESKEY_pid_default}}
mydaemon="/usr/bin/${OCF_RESKEY_binary}" mydaemon="/usr/bin/${OCF_RESKEY_binary}"
TMP_DIR=/var/run/nfv-vim
####################################################################### #######################################################################
@ -98,6 +99,21 @@ END
PROCESS_NOT_RUNNING_FILE="/var/run/.nfv-vim.not_running" PROCESS_NOT_RUNNING_FILE="/var/run/.nfv-vim.not_running"
nfv_vim_tmpdir () {
local rc
if [ ! -d "$TMP_DIR" ]; then
mkdir -p "$TMP_DIR"
rc=$?
if [ $rc -ne 0 ]; then
ocf_log err "NFV Service (${OCF_RESKEY_binary}) failed to create temp dir (rc=${rc})"
return ${OCF_ERR_GENERIC}
fi
fi
export TMPDIR="$TMP_DIR"
return ${OCF_SUCCESS}
}
vim_validate() { vim_validate() {
check_binary ${OCF_RESKEY_binary} check_binary ${OCF_RESKEY_binary}
check_binary pidof check_binary pidof
@ -297,6 +313,10 @@ esac
# Anything except meta-data and help must pass validation # Anything except meta-data and help must pass validation
vim_validate || exit $? vim_validate || exit $?
# Set up tmpfiles directory to avoid temp files being
# cleaned up by systemd tmpfiles clean service.
nfv_vim_tmpdir || exit $?
case ${__OCF_ACTION} in case ${__OCF_ACTION} in
start) vim_start start) vim_start