2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-29 09:13:08 +00:00
Gᴏɴɢ Jie 699486a15c Add new test cases for the syncfiles feature (#5228)
* Add new test cases for the syncfiles feature

* Update the test case for EXECUTEALWAYS feature

* Test regular updatenode -F and the scp feature separately

* Ignore some failling when use scp
2018-05-25 16:09:54 +08:00

112 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
set -x
COMPUTE_NODE="${1:?empty compute node}"
NODE_RCP="${2:+-r /usr/bin/scp}"
OSIMAGE="$(lsdef "${COMPUTE_NODE}" -i provmethod | awk -F = '/provmethod=/ { print $2 }')"
TMP_DIR="$(mktemp -d "/tmp/${0##*/}.XXXXXXXX" 2>/dev/null)"
function cleanup()
{
rm -rf "${TMP_DIR}"
chdef -t osimage "${OSIMAGE}" "synclists="
}
trap cleanup EXIT
function compute_node_cleanup()
{
xdsh "${COMPUTE_NODE}" "rm -rf /etc/files"
}
declare -i failed=0
mkdir -p "${TMP_DIR}/files"
echo foo >"${TMP_DIR}/files/foo"
echo bar >"${TMP_DIR}/files/bar"
echo baz >"${TMP_DIR}/files/baz"
cat >"${TMP_DIR}/foobar.synclist" <<EOF
${TMP_DIR}/files/foo -> /etc/files/foo
${TMP_DIR}/files/bar -> /etc/files/bar
${TMP_DIR}/files/baz -> /etc/files/baz
EOF
chdef -t osimage "${OSIMAGE}" "synclists=${TMP_DIR}/foobar.synclist"
updatenode "${COMPUTE_NODE}" -F ${NODE_RCP}
# Check return code
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep foo /etc/files/foo'
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep bar /etc/files/bar'
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep baz /etc/files/baz'
(( failed += $? ))
compute_node_cleanup
# ====== #
xdsh "${COMPUTE_NODE}" 'mkdir -p /etc/files/bar'
updatenode "${COMPUTE_NODE}" -F ${NODE_RCP}
# Check return code
[ -z "${NODE_RCP}" ] && (( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep foo /etc/files/foo'
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep bar /etc/files/bar'
[ -z "${NODE_RCP}" ] && (( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep baz /etc/files/baz'
(( failed += $? ))
compute_node_cleanup
# ====== #
rm -f "${TMP_DIR}/files/bar"
updatenode "${COMPUTE_NODE}" -F ${NODE_RCP}
xdsh "${COMPUTE_NODE}" 'grep foo /etc/files/foo'
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep baz /etc/files/baz'
(( failed += $? ))
compute_node_cleanup
# ====== #
mkdir -p "${TMP_DIR}/files/bar"
xdsh "${COMPUTE_NODE}" 'mkdir -p /etc/files && echo bar >/etc/files/bar'
updatenode "${COMPUTE_NODE}" -F ${NODE_RCP}
[ -z "${NODE_RCP}" ] && (( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep foo /etc/files/foo'
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'test -d /etc/files/bar'
[ -z "${NODE_RCP}" ] && (( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep baz /etc/files/baz'
(( failed += $? ))
compute_node_cleanup
# ====== #
cat >"${TMP_DIR}/files/qux" <<EOF
#!/bin/bash
cat /etc/files/foo /etc/files/baz >/etc/files/zzz
EOF
chmod 0755 "${TMP_DIR}/files/qux"
cat >>"${TMP_DIR}/foobar.synclist" <<EOF
EXECUTEALWAYS:
${TMP_DIR}/files/qux
EOF
updatenode "${COMPUTE_NODE}" -F ${NODE_RCP}
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep foo /etc/files/zzz'
(( failed += $? ))
xdsh "${COMPUTE_NODE}" 'grep baz /etc/files/zzz'
(( failed += $? ))
compute_node_cleanup
exit "${failed}"