2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-25 09:14:05 +00:00

Merge pull request #7850 from VersatusHPC/fix/otherpkgs-postscript-defects

fix(otherpkgs): the postscript truncates its syslog output and logs a failed install as installed
This commit is contained in:
Daniel Hilst
2026-09-24 10:17:19 -03:00
committed by GitHub
2 changed files with 497 additions and 30 deletions
+452
View File
@@ -0,0 +1,452 @@
#!/usr/bin/env bats
load 'helpers/shell_source'
setup()
{
OTHERPKGS="$(repo_path 'xCAT/postscripts/otherpkgs')"
[ -r "$OTHERPKGS" ] || skip "$OTHERPKGS is required"
LOGGER_LOG="${BATS_TEST_TMPDIR}/logger.log"
CMD_LOG="${BATS_TEST_TMPDIR}/cmd.log"
: >"$LOGGER_LOG"
: >"$CMD_LOG"
export OTHERPKGS LOGGER_LOG CMD_LOG
}
# logger writes one line per message it sends. A message that carries newlines stays on one
# line, with the newlines shown as "\n", so the line count is the message count.
shadow_logger()
{
logger()
{
local msg=""
while [ $# -gt 0 ]; do
case "$1" in
-p | -t) shift 2 ;;
*)
msg="$*"
break
;;
esac
done
if [ -n "$msg" ]; then
printf '%s\n' "${msg//$'\n'/\\n}" >>"$LOGGER_LOG"
else
local line
while IFS= read -r line; do
printf '%s\n' "$line" >>"$LOGGER_LOG"
done
fi
}
}
logger_call()
{
sed -n "${1}p" "$LOGGER_LOG"
}
logger_calls()
{
wc -l <"$LOGGER_LOG" | tr -d ' '
}
cmd_call()
{
sed -n "${1}p" "$CMD_LOG"
}
# A package manager that answers with PKG_STATUS and prints a three line transaction.
shadow_pkg_manager()
{
fake_pkg()
{
printf '%s\n' "$*" >>"$CMD_LOG"
printf -- '--> Running transaction check\n'
printf 'Installed: foo-1.0\n'
printf 'Error: nothing provides bar\n'
return "${PKG_STATUS:-0}"
}
zypper() { fake_pkg "$@"; }
apt-get() { fake_pkg "$@"; }
xcat_apt_get() { fake_pkg "$@"; }
apt_get_update_if_repos_changed() { :; }
}
# otherpkgs_block ANCHOR START [NTH TOTAL]
# Answers with the shell if-block that starts at the first line after the anchor. NTH and TOTAL
# go to extract_shell_if_block, which counts START in the text from the anchor to the end of the
# file. Name a START that occurs once where one exists; pass NTH and TOTAL where the candidate
# lines are the same text.
otherpkgs_block()
{
local tail="${BATS_TEST_TMPDIR}/tail-$$"
awk -v anchor="$1" 'index($0, anchor) { copy = 1 } copy { print }' "$OTHERPKGS" >"$tail"
extract_shell_if_block "$tail" "$2" "$3" "$4"
}
run_upgrade_block()
{
local block
# The upgrade block opens with the same line as the yum branch of the preremove, the install
# and the postremove blocks. The upgrade block is the first of the four.
block="$(otherpkgs_block '#now update the existing rpms' 'if [ $hasyum -eq 1 ]; then' 1 4)" || return 99
local hasyum=0 haszypper=0 hasapt=0
eval "$1=1"
local envlist="" yumcmd=fake_pkg VERBOSE= log_label=otherpkgs RETURNVAL=0 REPOFILE=/dev/null result=""
shadow_logger
shadow_pkg_manager
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
}
run_repo_preremove_block()
{
local block
block="$(otherpkgs_block '#Now we have parsed the input' 'if [ "$repo_pkgs_preremove" != "" ]; then')" || return 99
local hasyum=0 haszypper=0 hasapt=0
eval "$1=1"
local envlist="" yumcmd=fake_pkg VERBOSE= log_label=otherpkgs RETURNVAL=0 REPOFILE=/dev/null result=""
local repo_pkgs_preremove="oldfoo"
shadow_logger
shadow_pkg_manager
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
}
run_plain_preremove_block()
{
local block
block="$(otherpkgs_block '#Now we have parsed the input' 'if [ "$plain_pkgs_preremove" != "" ]; then')" || return 99
local envlist="" VERBOSE= log_label=otherpkgs RETURNVAL=0 result=""
local sremovecommand=fake_pkg plain_pkgs_preremove="oldfoo"
shadow_logger
shadow_pkg_manager
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
}
@test "otherpkgs sends the package manager transaction to syslog one line per message" {
run run_upgrade_block hasyum
[ "$status" -eq 0 ]
[ "$(logger_calls)" -eq 3 ]
[ "$(logger_call 1)" = "--> Running transaction check" ]
[ "$(logger_call 2)" = "Installed: foo-1.0" ]
[ "$(logger_call 3)" = "Error: nothing provides bar" ]
}
@test "the zypper and apt upgrade paths also send one message per output line" {
run run_upgrade_block haszypper
[ "$status" -eq 0 ]
[ "$(logger_calls)" -eq 3 ]
: >"$LOGGER_LOG"
run run_upgrade_block hasapt
[ "$status" -eq 0 ]
[ "$(logger_calls)" -eq 3 ]
}
@test "the remove paths also send one message per output line" {
local manager
for manager in hasyum haszypper hasapt; do
: >"$LOGGER_LOG"
run run_repo_preremove_block "$manager"
[ "$status" -eq 0 ]
[ "$(logger_calls)" -eq 3 ]
done
: >"$LOGGER_LOG"
run run_plain_preremove_block
[ "$status" -eq 0 ]
[ "$(logger_calls)" -eq 3 ]
}
run_install_block()
{
local block
block="$(otherpkgs_block '#installation using yum/dnf or zypper' 'if [ "$repo_pkgs" != "" ]; then')" || return 99
local hasyum=0 haszypper=0 hasapt=0
eval "$1=1"
local envlist="" yumcmd=fake_pkg VERBOSE= log_label=otherpkgs RETURNVAL=0 REPOFILE=/dev/null result=""
local repo_pkgs="foo bar"
shadow_logger
shadow_pkg_manager
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
}
run_repo_postremove_block()
{
local block
block="$(otherpkgs_block '#remove more rpms if specified with' 'if [ "$repo_pkgs_postremove" != "" ]; then')" || return 99
local hasyum=0 haszypper=0 hasapt=0
eval "$1=1"
local envlist="" yumcmd=fake_pkg VERBOSE= log_label=otherpkgs RETURNVAL=0 REPOFILE=/dev/null result=""
local repo_pkgs_postremove="oldfoo"
shadow_logger
shadow_pkg_manager
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
}
@test "a failed package install is not logged as installed" {
local manager
for manager in hasyum haszypper hasapt; do
: >"$LOGGER_LOG"
PKG_STATUS=1 run run_install_block "$manager"
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=1'* ]]
refute_grep -q 'foo bar installed\.' "$LOGGER_LOG"
grep -q 'failed\.' "$LOGGER_LOG"
done
}
@test "a successful package install is logged as installed" {
local manager
for manager in hasyum haszypper hasapt; do
: >"$LOGGER_LOG"
run run_install_block "$manager"
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=0'* ]]
grep -q 'foo bar installed\.' "$LOGGER_LOG"
refute_grep -q 'failed\.' "$LOGGER_LOG"
done
}
@test "a failed package removal is not logged as removed" {
local manager
for manager in hasyum haszypper hasapt; do
: >"$LOGGER_LOG"
PKG_STATUS=1 run run_repo_postremove_block "$manager"
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=1'* ]]
refute_grep -q 'oldfoo removed\.' "$LOGGER_LOG"
done
: >"$LOGGER_LOG"
run run_repo_postremove_block hasyum
[ "$status" -eq 0 ]
grep -q 'oldfoo removed\.' "$LOGGER_LOG"
}
@test "the url repository guard is false when OTHERPKGDIR has no http entry" {
local guard cond
guard="$(extract_first_matching_line "$OTHERPKGS" 'OTHERPKGDIR_INTERNET" *[]] *; *then')" || return 99
cond="${guard#*if }"
cond="${cond%%;then*}"
OTHERPKGDIR_INTERNET=""
run eval "$cond"
[ "$status" -ne 0 ]
OTHERPKGDIR_INTERNET="http://192.0.2.1/repo,"
run eval "$cond"
[ "$status" -eq 0 ]
}
# Runs the OTHERPKGDIR split and then the url repository block, and leaves the repository
# files the url block wrote under BATS_TEST_TMPDIR.
run_url_repo_block()
{
local split url_block
split="$(extract_shell_if_block "$OTHERPKGS" 'if [ -n "$OTHERPKGDIR" ]; then')" || return 99
url_block="$(otherpkgs_block '#add repo for url repos in otherpkgdir' 'if [ -n "$OTHERPKGDIR_INTERNET" ];then')" || return 99
local OTHERPKGDIR="$1" OTHERPKGDIR_INTERNET="" OTHERPKGDIR_LOCAL=""
local hasyum="${2:-1}" haszypper=0 hasapt="${3:-0}"
local repo_base="$BATS_TEST_TMPDIR" urlrepoindex=0
eval "$split"
eval "$url_block"
printf 'urlrepoindex=%s\n' "$urlrepoindex"
}
@test "the generated yum baseurl carries no trailing space" {
run run_url_repo_block 'http://192.0.2.1/repo-a,/install/post/otherpkgs,http://192.0.2.1/repo-b'
[ "$status" -eq 0 ]
[[ "$output" == *'urlrepoindex=2'* ]]
[ "$(grep '^baseurl=' "${BATS_TEST_TMPDIR}/xCAT-otherpkgs0.repo")" = "baseurl=http://192.0.2.1/repo-a" ]
[ "$(grep '^baseurl=' "${BATS_TEST_TMPDIR}/xCAT-otherpkgs1.repo")" = "baseurl=http://192.0.2.1/repo-b" ]
}
@test "the generated apt source carries no trailing space" {
run run_url_repo_block 'http://192.0.2.1/repo-a' 0 1
[ "$status" -eq 0 ]
[ "$(cat "${BATS_TEST_TMPDIR}/xCAT-otherpkgs0.list")" = "deb http://192.0.2.1/repo-a" ]
}
# Drives the zypper branch that adds the local otherpkgs repository, refreshes it and deletes
# it again when the refresh fails. The branch is evaluated whole, so the success case shows
# that a repository which refreshes is kept.
run_zypper_local_repo()
{
local urlrepoindex="$1" index="$2"
local repo_base="$BATS_TEST_TMPDIR" mounted=1 whole_path=/install/post/otherpkgs/sles15/x86_64
local OSVER=sles15 VERBOSE= localrepoindex REPOFILE rc=1 result="" path=/pkgdir
zypper()
{
printf '%s\n' "$*" >>"$CMD_LOG"
case "$1" in
ar) sed -n '1s/^\[\(.*\)\]$/added=\1/p' "$3" >>"$CMD_LOG" ;;
esac
return "${ZYPPER_STATUS:-0}"
}
array_set_element() { :; }
eval "$(extract_shell_function "$OTHERPKGS" pmatch)" || return 99
# The three lines that name the repository are straight-line assignments, so each one is
# taken on its own. The zypper branch that follows is a branch: it is taken whole, because
# what is measured is which arm runs. Keep the extraction apart from the eval, so a failing
# zypper does not read as a failed extraction.
local pattern line
for pattern in \
'localrepoindex=' \
'REPOFILE="[$]repo_base/xCAT-otherpkgs[$]localrepoindex.repo"' \
'echo "[[]xcat-otherpkgs[$]localrepoindex[]]"'; do
line="$(extract_first_matching_line "$OTHERPKGS" "$pattern")" || return 99
eval "$line"
done
# The range ends on the apt branch that follows; its two lines are dropped.
local branch
branch="$(extract_line_range "$OTHERPKGS" '#use zypper' '#use apt')" || return 99
branch="$(printf '%s\n' "$branch" | head -n -2)"
case "$branch" in
*'zypper sd xcat-otherpkgs'*) ;;
*) return 99 ;;
esac
eval "$branch"
printf 'rc=%s\n' "$rc"
return 0
}
@test "zypper keeps the otherpkgs repository it added when the refresh succeeds" {
run run_zypper_local_repo 2 0
[ "$status" -eq 0 ]
[ "$output" = "rc=0" ]
[ "$(cmd_call 2)" = "added=xcat-otherpkgs2" ]
[ "$(cmd_call 3)" = "--non-interactive refresh xcat-otherpkgs2" ]
refute_grep -q '^sd ' "$CMD_LOG"
}
@test "zypper deletes the otherpkgs repository it added when the refresh fails" {
ZYPPER_STATUS=1 run run_zypper_local_repo 2 0
[ "$status" -eq 0 ]
[ "$output" = "rc=1" ]
[ "$(cmd_call 2)" = "added=xcat-otherpkgs2" ]
[ "$(cmd_call 4)" = "sd xcat-otherpkgs2" ]
}
run_sdk_block()
{
local block
block="$(otherpkgs_block '#adds SDK repository' 'if [ "$SDKDIR" != "" ]; then')" || return 99
local SDKDIR=/install/sles15/x86_64/sdk1 OSVER=sles15 mounted=1 VERBOSE= log_label=otherpkgs result=""
local NFSSERVER=192.0.2.1 HTTPPORT=80
eval "$(extract_shell_function "$OTHERPKGS" pmatch)" || return 99
shadow_logger
zypper()
{
printf 'zypper failed\n'
return 1
}
eval "$block"
return 0
}
@test "a failed SDK repository add is logged with the repository name" {
run run_sdk_block
[ "$status" -eq 0 ]
grep -q 'xCAT-sles15-sdk1' "$LOGGER_LOG"
}
# Drives the package list split and the two diagnostic lines that follow it. The range ends on
# the "for" line that starts the package loop, and that line is dropped: the loop is not part of
# what is measured.
run_pkglist_diagnostics()
{
local range
range="$(extract_line_range "$OTHERPKGS" 'pkgsarray=' '^[[:space:]]*for x in')" || return 99
local pkglist="foo bar" hasyum=1 yumcmd=dnf hasapt=0 haszypper=0 oifs=$IFS
eval "$(printf '%s\n' "$range" | sed '$d')"
}
@test "the package list diagnostics print nothing when VERBOSE is not set" {
VERBOSE= run run_pkglist_diagnostics
[ "$status" -eq 0 ]
[ -z "$output" ]
}
@test "the package list diagnostics print the list and the package manager under VERBOSE" {
VERBOSE=1 run run_pkglist_diagnostics
[ "$status" -eq 0 ]
[[ "$output" == *'pkgsarray: foo bar, 2'* ]]
[[ "$output" == *'yum/dnf: 1 (dnf), apt: 0, zypper: 0'* ]]
}
run_plain_install_block()
{
local block
block="$(otherpkgs_block '#Handle the rest with rpm' 'if [ "$plain_pkgs" != "" -a -n "$OTHERPKGDIR" ]; then')" || return 99
local envlist="" VERBOSE= log_label=otherpkgs RETURNVAL=0 result=""
local supdatecommand=fake_pkg plain_pkgs="foo bar" mounted=1
local OTHERPKGDIR="$BATS_TEST_TMPDIR"
shadow_logger
shadow_pkg_manager
# The block changes directory. A subshell keeps the test in its own directory.
(
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
)
}
run_plain_postremove_block()
{
local block
block="$(otherpkgs_block '#remove more rpms if specified with' 'if [ "$plain_pkgs_postremove" != "" ]; then')" || return 99
local envlist="" VERBOSE= log_label=otherpkgs RETURNVAL=0 result=""
local sremovecommand=fake_pkg plain_pkgs_postremove="oldfoo"
shadow_logger
shadow_pkg_manager
eval "$block"
printf 'RETURNVAL=%s\n' "$RETURNVAL"
}
@test "a failed rpm fallback install is logged as failed" {
PKG_STATUS=1 run run_plain_install_block
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=1'* ]]
refute_grep -q 'foo bar installed\.' "$LOGGER_LOG"
grep -q 'foo bar failed\.' "$LOGGER_LOG"
}
@test "a successful rpm fallback install is logged as installed" {
run run_plain_install_block
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=0'* ]]
grep -q 'foo bar installed\.' "$LOGGER_LOG"
refute_grep -q 'failed\.' "$LOGGER_LOG"
}
@test "a failed package removal is logged as failed" {
local manager
for manager in hasyum haszypper hasapt; do
: >"$LOGGER_LOG"
PKG_STATUS=1 run run_repo_postremove_block "$manager"
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=1'* ]]
grep -q 'oldfoo failed\.' "$LOGGER_LOG"
done
: >"$LOGGER_LOG"
PKG_STATUS=1 run run_plain_postremove_block
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=1'* ]]
refute_grep -q 'oldfoo removed\.' "$LOGGER_LOG"
grep -q 'oldfoo failed\.' "$LOGGER_LOG"
}
@test "a successful package removal is logged as removed only" {
run run_plain_postremove_block
[ "$status" -eq 0 ]
[[ "$output" == *'RETURNVAL=0'* ]]
grep -q 'oldfoo removed\.' "$LOGGER_LOG"
refute_grep -q 'failed\.' "$LOGGER_LOG"
}
+45 -30
View File
@@ -294,7 +294,7 @@ if [ -n "$OTHERPKGDIR" ]; then
do
dirtype=${dir:0:4}
if [ $dirtype = 'http' ]; then
OTHERPKGDIR_INTERNET="${OTHERPKGDIR_INTERNET}${dir} ,"
OTHERPKGDIR_INTERNET="${OTHERPKGDIR_INTERNET}${dir},"
else
OTHERPKGDIR_LOCAL=$dir
fi
@@ -576,9 +576,9 @@ if ( ! ( pmatch "$OSVER" "sles10*" ) && [ $haszypper -eq 1 ] ); then
result=`zypper ar $sdk_src xCAT-$OSVER-$bname 2>&1`
if [ $? -ne 0 ]; then
if ( ! pmatch "$result" "*exists*" ); then
logger -t $log_label -p local4.info "otherpkgs: zypper ar $sdk_src xCAT-$OSVER-bname\n $result"
logger -t $log_label -p local4.info "otherpkgs: zypper ar $sdk_src xCAT-$OSVER-$bname\n $result"
if [ $VERBOSE ]; then
echo "otherpkgs: zypper ar $sdk_src xCAT-$OSVER-bname"
echo "otherpkgs: zypper ar $sdk_src xCAT-$OSVER-$bname"
echo " $result"
fi
fi
@@ -669,7 +669,7 @@ while [ $op_index -le $OTHERPKGS_INDEX ]; do
urlrepoindex=0
#add repo for url repos in otherpkgdir
if [ -n "OTHERPKGDIR_INTERNET" ];then
if [ -n "$OTHERPKGDIR_INTERNET" ];then
OIFS=$IFS
IFS=','
OTHERPKGDIRLIST_INTERNET=($OTHERPKGDIR_INTERNET)
@@ -708,8 +708,10 @@ while [ $op_index -le $OTHERPKGS_INDEX ]; do
IFS=$','
pkgsarray=($pkglist)
IFS=$oifs
echo "pkgsarray: ${pkgsarray[@]}, ${#pkgsarray[@]}"
echo "yum/dnf: $hasyum ($yumcmd), apt: $hasapt, zypper: $haszypper"
if [ $VERBOSE ]; then
echo "pkgsarray: ${pkgsarray[@]}, ${#pkgsarray[@]}"
echo "yum/dnf: $hasyum ($yumcmd), apt: $hasapt, zypper: $haszypper"
fi
for x in ${pkgsarray[@]}
do
#check if the file name starts with -- or -.
@@ -830,7 +832,7 @@ EOF`
result=`zypper ar -c $REPOFILE`
fi
result=`zypper --non-interactive refresh xcat-otherpkgs$index 2>&1`
result=`zypper --non-interactive refresh xcat-otherpkgs$localrepoindex 2>&1`
if [ $? -eq 0 ]; then
rc=0
array_set_element repo_path $index $path
@@ -840,7 +842,7 @@ EOF`
rc=0
array_set_element repo_path $index $path
else
result=`zypper sd xcat-otherpkgs$index`
result=`zypper sd xcat-otherpkgs$localrepoindex`
fi
fi
elif [ $hasapt -eq 1 ]; then
@@ -884,7 +886,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -898,7 +900,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -912,7 +914,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -933,7 +935,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -946,7 +948,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -960,7 +962,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -976,7 +978,7 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$result"
printf '%s\n' "$result" | logger -p local4.info -t $log_label
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -994,8 +996,9 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
logger -p local4.err -t $log_label "$envlist $yumcmd -y install $repo_pkgs failed."
else
logger -p local4.info -t $log_label "$repo_pkgs installed."
fi
logger -p local4.info -t $log_label "$repo_pkgs installed."
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1008,8 +1011,9 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
logger -p local4.err -t $log_label "$envlist zypper install -y $repo_pkgs 2>&1 failed."
fi
logger -p local4.info -t $log_label "$repo_pkgs installed."
else
logger -p local4.info -t $log_label "$repo_pkgs installed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1029,8 +1033,9 @@ EOF`
if [ $R -ne 0 ]; then
RETURNVAL=$R
logger -p local4.err -t $log_label "install $repo_pkgs failed."
fi
logger -p local4.info -t $log_label "$repo_pkgs installed."
else
logger -p local4.info -t $log_label "$repo_pkgs installed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1066,8 +1071,10 @@ EOF`
R=$?
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$plain_pkgs installed."
logger -p local4.err -t $log_label "$envlist $supdatecommand $plain_pkgs failed."
else
logger -p local4.info -t $log_label "$plain_pkgs installed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1090,8 +1097,10 @@ EOF`
R=$?
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$repo_pkgs_postremove removed."
logger -p local4.err -t $log_label "$envlist $yumcmd -y remove $repo_pkgs_postremove failed."
else
logger -p local4.info -t $log_label "$repo_pkgs_postremove removed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1103,8 +1112,10 @@ EOF`
R=$?
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$repo_pkgs_postremove removed."
logger -p local4.err -t $log_label "$envlist zypper remove -y $repo_pkgs_postremove failed."
else
logger -p local4.info -t $log_label "$repo_pkgs_postremove removed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1117,8 +1128,10 @@ EOF`
R=$?
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$repo_pkgs_postremove removed."
logger -p local4.err -t $log_label "$envlist apt-get -y remove $repo_pkgs_postremove failed."
else
logger -p local4.info -t $log_label "$repo_pkgs_postremove removed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi
@@ -1133,8 +1146,10 @@ EOF`
R=$?
if [ $R -ne 0 ]; then
RETURNVAL=$R
fi
logger -p local4.info -t $log_label "$plain_pkgs_postremove removed."
logger -p local4.err -t $log_label "$envlist $sremovecommand $plain_pkgs_postremove failed."
else
logger -p local4.info -t $log_label "$plain_pkgs_postremove removed."
fi
if [ $VERBOSE ]; then
echo "$result"
fi