- Update to latest git head and do not split up version 1.8.13.tar.bz2 tarball
and patch to latest git HEAD. Reason is that all files in the repository got moved up one directory level by git commit: c18ec02f3304ce2a889a50e378f07a4168af3884 Date: Wed Feb 5 17:30:32 2014 Move all files one level up in the file hierarchy, to avoid the useless ipmitool directory. We want the latest git head asap, because otherwise additionally needed patches will never patch cleanly in mainline and our repo and would always need adjusting. I asked for a new version tag mainline. As soon this happened, the tarball name should again match with the exact mainline git tag. - Incorporate patch on request from Dell: fate#315996 OBS-URL: https://build.opensuse.org/package/show/systemsmanagement/ipmitool?expand=0&rev=25
This commit is contained in:
parent
55d1f3cc54
commit
f77f3e2455
359
0001-Incorporate-upstream-comments-to-289-add-whitespace.patch
Normal file
359
0001-Incorporate-upstream-comments-to-289-add-whitespace.patch
Normal file
@ -0,0 +1,359 @@
|
||||
From f48ce96e7fd0d2fe198845f0e2bd76f95d221fb3 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Rose <charles_rose@dell.com>
|
||||
Date: Thu, 12 Dec 2013 16:10:11 -0500
|
||||
Subject: [PATCH] Incorporate upstream comments to #289, add whitespace, other
|
||||
cleanup
|
||||
|
||||
---
|
||||
contrib/bmc-snmp-proxy | 130 +++++++++++++++++++++++++++++--------------------
|
||||
1 file changed, 76 insertions(+), 54 deletions(-)
|
||||
|
||||
diff --git a/contrib/bmc-snmp-proxy b/contrib/bmc-snmp-proxy
|
||||
index 1704ef3..98479b9 100644
|
||||
--- a/contrib/bmc-snmp-proxy
|
||||
+++ b/contrib/bmc-snmp-proxy
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
# bmc-snmp-proxy: Set SNMP proxy to BMC (Baseboard Management Controller)
|
||||
#
|
||||
-# version: 0.6
|
||||
+# version: 0.62
|
||||
#
|
||||
# Authors: Charles Rose <charles_rose@dell.com>
|
||||
# Jordan Hargrave <jordan_hargrave@dell.com>
|
||||
@@ -20,9 +20,9 @@
|
||||
SYSCONF_DIR="/etc/sysconfig"
|
||||
CONFIG="${SYSCONF_DIR}/bmc-snmp-proxy"
|
||||
|
||||
-SNMPD_LOCAL_CONF_DIR="/etc/snmp/bmc"
|
||||
-SNMPD_LOCAL_CONF="${SNMPD_LOCAL_CONF_DIR}/snmpd.local.conf"
|
||||
-TRAPD_LOCAL_CONF="${SNMPD_LOCAL_CONF_DIR}/snmptrapd.local.conf"
|
||||
+SNMPD_BMC_CONF_DIR="/etc/snmp/bmc"
|
||||
+SNMPD_BMC_CONF="${SNMPD_BMC_CONF_DIR}/snmpd.local.conf"
|
||||
+TRAPD_BMC_CONF="${SNMPD_BMC_CONF_DIR}/snmptrapd.local.conf"
|
||||
|
||||
TRAPD_CONF="/etc/snmp/snmptrapd.conf"
|
||||
|
||||
@@ -57,14 +57,16 @@ bmc_info_exists()
|
||||
else
|
||||
RETVAL=2
|
||||
fi
|
||||
+
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
check_snmp()
|
||||
{
|
||||
- if [ ! -d /etc/snmp ] && [ ! -x /usr/sbin/snmpd ]; then
|
||||
+ if [ ! -d /etc/snmp ] || [ ! -x /usr/sbin/snmpd ]; then
|
||||
RETVAL=12
|
||||
fi
|
||||
+
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
@@ -77,11 +79,12 @@ write_snmp_conf()
|
||||
printf "###############################################\n"
|
||||
printf "# Automatically created by %s #\n" "${SCRIPT_NAME}"
|
||||
printf "###############################################\n"
|
||||
- printf "view bmcview included %s 80\n" "${BMC_OID}"
|
||||
- printf "com2sec -Cn bmc_ctx bmc_sec default bmc_cmty\n"
|
||||
- printf "group bmc_grp v1 bmc_sec\n"
|
||||
- printf "access bmc_grp bmc_ctx any noauth exact bmcview none none\n"
|
||||
- printf "proxy -Cn bmc_ctx -v 1 %s\n" "${PROXY_TOKEN}"
|
||||
+ printf "#view bmcview included %s 80\n" "${BMC_OID}"
|
||||
+ printf "#com2sec -Cn bmc_ctx bmc_sec default bmc_cmty\n"
|
||||
+ printf "#group bmc_grp v1 bmc_sec\n"
|
||||
+ printf "#access bmc_grp bmc_ctx any noauth exact bmcview none none\n"
|
||||
+ printf "#proxy -Cn bmc_ctx -v 1 %s\n" "${PROXY_TOKEN}"
|
||||
+ printf "proxy -v 1 %s\n" "${PROXY_TOKEN}"
|
||||
printf "###############################################\n"
|
||||
}
|
||||
|
||||
@@ -92,6 +95,7 @@ valid_ip()
|
||||
|
||||
printf -- "%s" "${1}"| grep -Eq \
|
||||
"^${octet}\\.${octet}\\.${octet}\\.${octet}$"
|
||||
+
|
||||
return $?
|
||||
}
|
||||
|
||||
@@ -112,37 +116,38 @@ set_snmp_proxy()
|
||||
if check_vars; then
|
||||
PROXY_TOKEN="-c ${BMC_COMMUNITY} ${BMC_IPv4} ${BMC_OID}"
|
||||
|
||||
- if [ ! -d ${SNMPD_LOCAL_CONF_DIR} ] && \
|
||||
- mkdir ${SNMPD_LOCAL_CONF_DIR}; then
|
||||
- write_snmp_conf > ${SNMPD_LOCAL_CONF}
|
||||
- [ $? -ne 0 ] && RETVAL=4
|
||||
+ if [ -d ${SNMPD_BMC_CONF_DIR} ]; then
|
||||
+ write_snmp_conf > ${SNMPD_BMC_CONF} || RETVAL=4
|
||||
fi
|
||||
else
|
||||
RETVAL=3
|
||||
fi
|
||||
}
|
||||
|
||||
-
|
||||
set_snmpd_conf_path()
|
||||
{
|
||||
- for SYSCONF in ${SYSCONF_DIR}/snmp*d;
|
||||
+ if [ ! -d ${SNMPD_BMC_CONF_DIR} ]; then
|
||||
+ mkdir ${SNMPD_BMC_CONF_DIR} || RETVAL=7
|
||||
+ fi
|
||||
+
|
||||
+ # We need SNMPCONFPATH set for both snmpd and snmptrapd
|
||||
+ for sysconf in ${SYSCONF_DIR}/snmp*d;
|
||||
do
|
||||
- if grep -q "${SNMPD_LOCAL_CONF_DIR}" "${SYSCONF}" > \
|
||||
- /dev/null 2>&1; then
|
||||
- continue
|
||||
- else
|
||||
- printf "SNMPCONFPATH=%s\n" "${SNMPD_LOCAL_CONF_DIR}" \
|
||||
- >> ${SYSCONF} || RETVAL=7
|
||||
+ if ! grep -q "^SNMPCONFPATH.*${SNMPD_BMC_CONF_DIR}" \
|
||||
+ "${sysconf}" > /dev/null 2>&1; then
|
||||
+ printf "SNMPCONFPATH=/etc/snmp:%s\n" \
|
||||
+ "${SNMPD_BMC_CONF_DIR}" >> ${sysconf} || \
|
||||
+ RETVAL=7
|
||||
fi
|
||||
done
|
||||
+
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
disable_snmp_proxy()
|
||||
{
|
||||
- if [ -f ${SNMPD_LOCAL_CONF} ]; then
|
||||
- rm -f ${SNMPD_LOCAL_CONF}
|
||||
- [ $? -ne 0 ] && RETVAL=5
|
||||
+ if [ -f ${SNMPD_BMC_CONF} ]; then
|
||||
+ rm -f ${SNMPD_BMC_CONF} || RETVAL=5
|
||||
fi
|
||||
}
|
||||
#############################################################################
|
||||
@@ -152,6 +157,7 @@ disable_snmp_proxy()
|
||||
pick_alert_dest()
|
||||
{
|
||||
test_ip="$1"
|
||||
+ # We have 4 IPv4 and 4 IPv6 alert dest. We will set IPv4 for now.
|
||||
for ALERT_DEST in `seq 1 4`
|
||||
do
|
||||
temp_ip=$(${IPMITOOL} lan alert print ${CHANNEL} ${ALERT_DEST}\
|
||||
@@ -165,12 +171,12 @@ pick_alert_dest()
|
||||
set_alert_dest_ip()
|
||||
{
|
||||
${IPMITOOL} lan alert set ${CHANNEL} ${ALERT_DEST} ipaddr ${1} \
|
||||
- retry 4 type pet >/dev/null 2>&1
|
||||
- [ $? -ne 0 ] && RETVAL=8
|
||||
+ retry 4 type pet >/dev/null 2>&1 || RETVAL=8
|
||||
}
|
||||
|
||||
-bmc_alert_dest()
|
||||
+config_bmc_alert_dest()
|
||||
{
|
||||
+ # call with enable|disable
|
||||
# Pick the first active LAN channel
|
||||
for CHANNEL in `seq 1 14`
|
||||
do
|
||||
@@ -180,12 +186,12 @@ bmc_alert_dest()
|
||||
|
||||
# If TRAPD_IP is already set as an alert dest,
|
||||
if pick_alert_dest "${TRAPD_IP}"; then
|
||||
- # reset: reset it if we are called with reset
|
||||
- [ "${1}" = "reset" ] && \
|
||||
+ # disable: reset it if we are called with disable
|
||||
+ [ "${1}" = "disable" ] && \
|
||||
set_alert_dest_ip "0.0.0.0"
|
||||
# else, find the next free alert dest,
|
||||
elif pick_alert_dest "0.0.0.0"; then
|
||||
- [ "${1}" = "reset" ] && \
|
||||
+ [ "${1}" = "disable" ] && \
|
||||
return $RETVAL
|
||||
# set: the TRAPD_IP
|
||||
set_alert_dest_ip "${TRAPD_IP}"
|
||||
@@ -193,42 +199,54 @@ bmc_alert_dest()
|
||||
# No free alert destinations
|
||||
RETVAL=9
|
||||
fi
|
||||
+
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
-set_ipmi_alert()
|
||||
+set_ipmi_pef()
|
||||
{
|
||||
- ${IPMITOOL} lan set ${CHANNEL} alert "${1}" >/dev/null 2>&1
|
||||
- [ $? -ne 0 ] && RETVAL=10
|
||||
+ # Needs ipmitool-1.8.13 + patches
|
||||
+ ${IPMITOOL} pef setpolicy ${ALERT_DEST} "${1}" >/dev/null 2>&1 || \
|
||||
+ RETVAL=10
|
||||
}
|
||||
|
||||
get_host_ip()
|
||||
{
|
||||
- # Get host's IP that the BMC can reach.
|
||||
+ # Get host's IP that the BMC can reach. This is at best a hack.
|
||||
IFACE=$(/usr/sbin/ip -o -f inet address |awk '!/: lo/ {print $2}')
|
||||
+
|
||||
for dev in ${IFACE}
|
||||
do
|
||||
- ping -c 1 -I ${dev} ${BMC_IPv4} > /dev/null 2>&1
|
||||
+ temp_ping=$(ping -c 1 -I ${dev} ${BMC_IPv4})
|
||||
+ [ $? -ne 0 ] && continue
|
||||
+
|
||||
+ printf -- "%s" "$temp_ping"| awk 'NR==1{print $5}' && break
|
||||
done
|
||||
}
|
||||
|
||||
config_bmc_alert()
|
||||
{
|
||||
+ # Do two things
|
||||
+ # Set/Reset TRAP IP in BMC
|
||||
+ # Enable/Disable PEF alerting in BMC for TRAP
|
||||
+
|
||||
# Get Host's IP that the BMC can send traps to
|
||||
TRAPD_IP=$(get_host_ip)
|
||||
|
||||
# Set Host's IP as the alert destination in the BMC
|
||||
- valid_ip ${TRAPD_IP} && bmc_alert_dest "${ACTION}"
|
||||
+ valid_ip ${TRAPD_IP} && config_bmc_alert_dest "${ACTION}"
|
||||
+
|
||||
+ # Enable/Disable alerting on the LAN channel
|
||||
+ [ $RETVAL -eq 0 ] && set_ipmi_pef "${ACTION}"
|
||||
|
||||
- # Enable alerting on the LAN channel
|
||||
- [ $RETVAL -eq 0 ] && set_ipmi_alert "${ACTION}"
|
||||
+ return $RETVAL
|
||||
}
|
||||
|
||||
write_trapd_conf()
|
||||
{
|
||||
printf "###############################################\n"
|
||||
printf "# Automatically created by %s #\n" "${SCRIPT_NAME}"
|
||||
- printf "forward %s %s\n" "${BMC_OID}*" "${FORWARD_HOST}"
|
||||
+ printf "forward default %s\n" "${FORWARD_HOST}"
|
||||
printf "###############################################\n"
|
||||
}
|
||||
|
||||
@@ -236,10 +254,9 @@ config_trapd()
|
||||
{
|
||||
# Proceed only if snmptrapd is available on the system
|
||||
if [ -f ${TRAPD_CONF} ]; then
|
||||
- write_trapd_conf > ${TRAPD_LOCAL_CONF}
|
||||
- [ $? -ne 0 ] && RETVAL=11
|
||||
+ write_trapd_conf > ${TRAPD_BMC_CONF} || RETVAL=11
|
||||
else
|
||||
- return 1
|
||||
+ RETVAL=11
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -249,6 +266,7 @@ trap_sink_exists()
|
||||
# multiple
|
||||
FORWARD_HOST=$(awk '/^trap.*sink/{print $2}; /^informsink/{print $2}' \
|
||||
/etc/snmp/snmpd*conf | head -1)
|
||||
+
|
||||
if [ -z "${FORWARD_HOST}" ]; then
|
||||
# there is no trapsink setup.
|
||||
return 1
|
||||
@@ -261,19 +279,20 @@ trap_sink_exists()
|
||||
trap_forward()
|
||||
{
|
||||
NO_TRAP=0
|
||||
- ACTION=${1} # set or reset
|
||||
+ ACTION=${1} # enable or disable
|
||||
|
||||
- if [ "${ACTION}" = "set" ]; then
|
||||
+ if [ "${ACTION}" = "enable" ]; then
|
||||
# Get trapd config,
|
||||
if trap_sink_exists; then
|
||||
- config_trapd && config_bmc_alert
|
||||
+ config_bmc_alert && config_trapd
|
||||
else
|
||||
# exit silently if there is no sink
|
||||
NO_TRAP=1
|
||||
fi
|
||||
else
|
||||
- if [ -f ${TRAPD_LOCAL_CONF} ]; then
|
||||
- rm -f ${TRAPD_LOCAL_CONF} >/dev/null 2>&1
|
||||
+ if [ -f ${TRAPD_BMC_CONF} ]; then
|
||||
+ rm -f ${TRAPD_BMC_CONF} >/dev/null 2>&1
|
||||
+ config_bmc_alert
|
||||
else
|
||||
NO_TRAP=1
|
||||
fi
|
||||
@@ -288,7 +307,6 @@ service_reload()
|
||||
service $1 reload
|
||||
[ $? -ne 0 ] && RETVAL=6
|
||||
fi
|
||||
- return
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
@@ -296,11 +314,12 @@ start()
|
||||
{
|
||||
if bmc_info_exists && check_snmp; then
|
||||
touch ${LOCKFILE}
|
||||
+
|
||||
set_snmpd_conf_path && set_snmp_proxy
|
||||
[ $RETVAL -eq 0 ] && service_reload snmpd
|
||||
|
||||
if [ "${TRAP_FORWARD}" = "yes" ]; then
|
||||
- trap_forward "set"
|
||||
+ trap_forward "enable"
|
||||
[ $RETVAL -eq 0 ] && [ $NO_TRAP -eq 0 ] && \
|
||||
service_reload snmptrapd
|
||||
fi
|
||||
@@ -316,10 +335,11 @@ stop()
|
||||
[ $RETVAL -eq 0 ] && service_reload snmpd
|
||||
|
||||
if [ "${TRAP_FORWARD}" = "yes" ]; then
|
||||
- trap_forward "reset"
|
||||
+ trap_forward "disable"
|
||||
[ $RETVAL -eq 0 ] && [ $NO_TRAP -eq 0 ] && \
|
||||
service_reload snmptrapd
|
||||
fi
|
||||
+
|
||||
rm -f ${LOCKFILE}
|
||||
fi
|
||||
}
|
||||
@@ -329,12 +349,13 @@ status()
|
||||
{
|
||||
eval_gettext "${SCRIPT_NAME}: snmp proxy to BMC is "
|
||||
# Checking for lockfile is better.
|
||||
- #if grep -q "^proxy" "${SNMPD_LOCAL_CONF}" > /dev/null 2>&1 ; then
|
||||
+ #if grep -q "^proxy" "${SNMPD_BMC_CONF}" > /dev/null 2>&1 ; then
|
||||
if [ -f ${LOCKFILE} ]; then
|
||||
eval_gettext "set"
|
||||
else
|
||||
eval_gettext "not set"
|
||||
fi
|
||||
+
|
||||
echo
|
||||
RETVAL=0
|
||||
}
|
||||
@@ -360,10 +381,10 @@ case "$RETVAL" in
|
||||
0|1) ;;
|
||||
2) eval_gettext "${SCRIPT_NAME}: failed to read ${BMC_INFO} " 1>&2 ;;
|
||||
3) eval_gettext "${SCRIPT_NAME}: failed to get proxy config." 1>&2 ;;
|
||||
- 4) eval_gettext "${SCRIPT_NAME}: failed to set ${SNMPD_LOCAL_CONF}." 1>&2 ;;
|
||||
+ 4) eval_gettext "${SCRIPT_NAME}: failed to set ${SNMPD_BMC_CONF}." 1>&2 ;;
|
||||
5) eval_gettext "${SCRIPT_NAME}: failed to disable snmp proxy." 1>&2 ;;
|
||||
6) eval_gettext "${SCRIPT_NAME}: failed to reload snmpd." 1>&2 ;;
|
||||
- 7) eval_gettext "${SCRIPT_NAME}: failed to update ${SYSCONF}." 1>&2 ;;
|
||||
+ 7) eval_gettext "${SCRIPT_NAME}: failed to set snmpd config." 1>&2 ;;
|
||||
8) eval_gettext "${SCRIPT_NAME}: failed to set IPMI alert dest." 1>&2 ;;
|
||||
9) eval_gettext "${SCRIPT_NAME}: no free IPMI alert dest." 1>&2 ;;
|
||||
10) eval_gettext "${SCRIPT_NAME}: failed to set IPMI PEF." 1>&2 ;;
|
||||
@@ -375,6 +396,7 @@ esac
|
||||
if [ ${RETVAL} -gt 1 ]; then
|
||||
eval_gettext " Return code: ${RETVAL}"; echo
|
||||
fi
|
||||
+
|
||||
exit ${RETVAL}
|
||||
#############################################################################
|
||||
# end of file
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5e7b1bef1ed66f26217daa0b318d6e576ba45a69b2b9d54931c1646a2d81591a
|
||||
size 423062
|
||||
oid sha256:df2f7f44b6f72db87fb33e99a7df02ae2dec6cf915322b9bab0c0745bf8d5748
|
||||
size 426220
|
||||
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 6 11:50:59 UTC 2014 - trenn@suse.de
|
||||
|
||||
- Update to latest git head and do not split up version 1.8.13.tar.bz2 tarball
|
||||
and patch to latest git HEAD.
|
||||
Reason is that all files in the repository got moved up one directory level
|
||||
by git commit:
|
||||
c18ec02f3304ce2a889a50e378f07a4168af3884
|
||||
Date: Wed Feb 5 17:30:32 2014
|
||||
Move all files one level up in the file hierarchy, to avoid the useless
|
||||
ipmitool directory.
|
||||
|
||||
We want the latest git head asap, because otherwise additionally needed
|
||||
patches will never patch cleanly in mainline and our repo and would always
|
||||
need adjusting.
|
||||
I asked for a new version tag mainline. As soon this happened, the
|
||||
tarball name should again match with the exact mainline git tag.
|
||||
- Incorporate patch on request from Dell: fate#315996
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 13 23:27:01 UTC 2014 - trenn@suse.de
|
||||
|
||||
|
@ -32,7 +32,6 @@ Release: 0
|
||||
Source: http://heanet.dl.sourceforge.net/sourceforge/%{name}/%{name}-%{version}.tar.bz2
|
||||
Source1: ipmievd.service
|
||||
Source2: ipmievd.sysconf
|
||||
Patch0: ipmitool_update_to_git_head_31_01_2014_b0aad15d67007c74b.patch
|
||||
Patch1: ipmitool-1.8.10-implicit-fortify-decl.patch
|
||||
Patch3: fwum_enhance_output.patch
|
||||
Patch4: sdradd_close_file_handle.patch
|
||||
@ -40,6 +39,7 @@ Patch6: fix_file_permissions.patch
|
||||
Patch8: several_more_compile_fixes.patch
|
||||
Patch9: automake-1.13.patch
|
||||
Patch10: ipmitool_adjust_suse.paths
|
||||
Patch11: 0001-Incorporate-upstream-comments-to-289-add-whitespace.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
# bmc-snmp-proxy needs /usr/sbin/snmpd
|
||||
Requires: net-snmp
|
||||
@ -66,7 +66,6 @@ and setting LAN configuration, and chassis power control.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p2
|
||||
%patch1 -p0
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
@ -74,6 +73,7 @@ and setting LAN configuration, and chassis power control.
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
|
||||
%build
|
||||
touch INSTALL NEWS
|
||||
|
Loading…
Reference in New Issue
Block a user