mirror of
https://github.com/limosek/zaf.git
synced 2025-11-01 18:17:37 +01:00
Repaired userparms creation and including libraries
This commit is contained in:
@@ -8,7 +8,7 @@ zaf_ctrl_get_items() {
|
||||
# Get item body from stdin
|
||||
# $1 itemname
|
||||
zaf_ctrl_get_item_block() {
|
||||
grep -v '^#' | awk '/^Item '$1'/ { i=0;
|
||||
grep -vE '^#[a-zA-Z ]' | awk '/^Item '$1'/ { i=0;
|
||||
while (i==0) {
|
||||
getline;
|
||||
if (/^\/Item/) exit;
|
||||
@@ -22,7 +22,7 @@ zaf_ctrl_get_item_block() {
|
||||
# Get global plugin block body from stdin
|
||||
# $1 itemname
|
||||
zaf_ctrl_get_global_block() {
|
||||
grep -v '^#' | awk '{ i=0; print $0;
|
||||
grep -vE '^#[a-zA-Z ]' | awk '{ i=0; print $0;
|
||||
while (i==0) {
|
||||
getline;
|
||||
if (/^Item /) exit;
|
||||
@@ -33,7 +33,7 @@ zaf_ctrl_get_global_block() {
|
||||
# Get item multiline option
|
||||
# $1 optionname
|
||||
zaf_block_get_moption() {
|
||||
awk '/^'$1'::$/ { i=0; print $0;
|
||||
awk '/^'$1'::$/ { i=0;
|
||||
while (i==0) {
|
||||
getline;
|
||||
if (/^::$/) {i=1; continue;};
|
||||
@@ -181,6 +181,7 @@ zaf_ctrl_install() {
|
||||
# Generates zabbix cfg from control file
|
||||
# $1 control
|
||||
# $2 pluginname
|
||||
# $3 if nonempty, only return cfg, do not generate scripts
|
||||
zaf_ctrl_generate_cfg() {
|
||||
local items
|
||||
local cmd
|
||||
@@ -211,20 +212,25 @@ zaf_ctrl_generate_cfg() {
|
||||
fi
|
||||
cache=$(zaf_ctrl_get_item_option $1 $i "Cache")
|
||||
if [ -n "$cache" ]; then
|
||||
cache="_cache '$cache' "
|
||||
cache="${ZAF_LIB_DIR}/zafcache '$cache' "
|
||||
fi
|
||||
cmd=$(zaf_ctrl_get_item_option $1 $i "Cmd")
|
||||
if [ -z "$cache" ] && [ -z "$lock" ]; then
|
||||
preload="${ZAF_LIB_DIR}/preload.sh "
|
||||
else
|
||||
preload=""
|
||||
fi
|
||||
if [ -n "$cmd" ]; then
|
||||
$(which echo) "UserParameter=$ikey,${ZAF_LIB_DIR}/preload.sh $cache $lock$cmd";
|
||||
printf "%s" "UserParameter=$ikey,${preload}${cache}${lock}${cmd}"; echo
|
||||
continue
|
||||
fi
|
||||
cmd=$(zaf_ctrl_get_item_option $1 $i "Script")
|
||||
if [ -n "$cmd" ]; then
|
||||
zaf_ctrl_get_item_option $1 $i "Script" | \
|
||||
zaf_far '{INCLUDES}' '. /etc/zaf.conf; . ${ZAF_LIB_DIR}/zaf.lib.sh; . ${ZAF_LIB_DIR}/ctrl.lib.sh; . ${ZAF_LIB_DIR}/zbxapi.lib.sh; . ${ZAF_LIB_DIR}/cache.lib.sh; ' \
|
||||
zaf_far '{INCLUDES}' ". $ZAF_LIB_DIR/preload.sh; " \
|
||||
>${ZAF_TMP_DIR}/${iscript}.sh;
|
||||
zaf_install_bin ${ZAF_TMP_DIR}/${iscript}.sh ${ZAF_PLUGINS_DIR}/$2/
|
||||
$(which echo) "UserParameter=$ikey,$cache $lock${ZAF_PLUGINS_DIR}/$2/${iscript}.sh $args";
|
||||
[ -z "$3" ] && zaf_install_bin ${ZAF_TMP_DIR}/${iscript}.sh ${ZAF_PLUGINS_DIR}/$2/
|
||||
printf "%s" "UserParameter=$ikey,${preload}${cache}${lock}${ZAF_PLUGINS_DIR}/$2/${iscript}.sh $args"; echo
|
||||
continue;
|
||||
fi
|
||||
zaf_err "Item $i declared in control file but has no Cmd, Function or Script!"
|
||||
|
||||
@@ -19,19 +19,10 @@ trap "rm -rif ${ZAF_TMP_DIR}" EXIT
|
||||
|
||||
export ZAF_LIB_DIR
|
||||
export ZAF_TMP_DIR
|
||||
export ZAF_CACHE_DIR
|
||||
export ZAF_PLUGINS_DIR
|
||||
|
||||
if [ "$1" = "_cache" ] || [ "$1" = "_nocache" ] ; then
|
||||
[ "$1" = "_nocache" ] && export ZAF_NOCACHE=1
|
||||
shift
|
||||
seconds=$1
|
||||
shift
|
||||
parms=$(echo $*|tr -d ' ')
|
||||
if ! zaf_fromcache $parms; then
|
||||
([ "$(basename $0)" = "preload.sh" ] && [ -n "$*" ] && $@ ) | zaf_tocache_stdin $parms $seconds
|
||||
fi
|
||||
else
|
||||
[ "$(basename $0)" = "preload.sh" ] && [ -n "$*" ] && $@
|
||||
fi
|
||||
[ "$(basename $0)" = "preload.sh" ] && [ -n "$*" ] && $@
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -412,7 +412,8 @@ zaf_list_items() {
|
||||
|
||||
zaf_get_item() {
|
||||
if which zabbix_get >/dev/null; then
|
||||
zabbix_get -s localhost -k "$1" || zaf_wrn "Cannot reach agent on localhost. Please localhost to Server list."
|
||||
zaf_dbg zabbix_get -s localhost -k "'$1'"
|
||||
(zabbix_get -s localhost -k "$1" | tr '\n' ' '; echo) || zaf_wrn "Cannot reach agent on localhost. Please localhost to Server list."
|
||||
return 11
|
||||
else
|
||||
zaf_wrn "Please install zabbix_get binary to check items over network."
|
||||
@@ -421,7 +422,12 @@ zaf_get_item() {
|
||||
}
|
||||
|
||||
zaf_test_item() {
|
||||
$ZAF_AGENT_BIN -t "$1"
|
||||
if $ZAF_AGENT_BIN -t "$1" | grep ZBX_NOTSUPPORTED; then
|
||||
return 1
|
||||
else
|
||||
$ZAF_AGENT_BIN -t "$1" | tr '\n' ' '
|
||||
echo
|
||||
fi
|
||||
}
|
||||
|
||||
zaf_precache_item() {
|
||||
|
||||
17
lib/zafcache
Normal file
17
lib/zafcache
Normal file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
. $(dirname $0)/preload.sh
|
||||
|
||||
help() {
|
||||
zaf_err "$0 seconds cmd..."
|
||||
}
|
||||
|
||||
seconds=$1
|
||||
shift
|
||||
[ -z "$*" ] && help
|
||||
|
||||
parms=$(echo $*|tr -d ' ')
|
||||
if ! zaf_fromcache "$parms"; then
|
||||
$@ | zaf_tocache_stdin "$parms" "$seconds"
|
||||
fi
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
. /etc/zaf.conf
|
||||
|
||||
. ${ZAF_LIB_DIR}/zaf.lib.sh
|
||||
. $(dirname $0)/preload.sh
|
||||
|
||||
help() {
|
||||
echo "$0 key cmd"
|
||||
exit 2
|
||||
zaf_err "$0 key cmd"
|
||||
}
|
||||
|
||||
lkey="$1"
|
||||
|
||||
Reference in New Issue
Block a user