mirror of
				https://github.com/limosek/zaf.git
				synced 2025-10-31 09:37:37 +01:00 
			
		
		
		
	Repaired userparms creation and including libraries
This commit is contained in:
		| @@ -281,7 +281,7 @@ zaf_install_all() { | ||||
| 	for i in lib/zaf.lib.sh lib/os.lib.sh lib/ctrl.lib.sh lib/cache.lib.sh lib/zbxapi.lib.sh README.md; do | ||||
| 		zaf_install $i ${ZAF_LIB_DIR}/ || zaf_err "Error installing $i" | ||||
| 	done | ||||
| 	for i in lib/zaflock lib/preload.sh; do | ||||
| 	for i in lib/zaflock lib/zafcache lib/preload.sh; do | ||||
| 		zaf_install_bin $i ${ZAF_LIB_DIR}/ || zaf_err "Error installing $i" | ||||
| 	done | ||||
| 	zaf_install_dir ${ZAF_BIN_DIR} | ||||
| @@ -295,8 +295,10 @@ zaf_install_all() { | ||||
|  | ||||
| zaf_postconfigure() { | ||||
| 	if zaf_is_root; then | ||||
| 	    ${INSTALL_PREFIX}/${ZAF_BIN_DIR}/zaf cache-clean | ||||
| 	    [ "${ZAF_GIT}" = 1 ] && ${INSTALL_PREFIX}/${ZAF_BIN_DIR}/zaf update | ||||
|             ${INSTALL_PREFIX}/${ZAF_BIN_DIR}/zaf reinstall zaf || zaf_err "Error installing zaf plugin." | ||||
| 	    ${INSTALL_PREFIX}/${ZAF_BIN_DIR}/zaf agent-config || zaf_err "Error configuring agent." | ||||
|             if zaf_is_root && ! zaf_test_item zaf.framework_version; then | ||||
| 		echo "Something is wrong with zabbix agent config." | ||||
| 		echo "Ensure that zabbix_agentd reads ${ZAF_AGENT_CONFIG}" | ||||
|   | ||||
| @@ -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" | ||||
|   | ||||
							
								
								
									
										2
									
								
								zaf
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								zaf
									
									
									
									
									
								
							| @@ -77,7 +77,7 @@ userparms) | ||||
| 	for plugin in $(zaf_list_plugins); do | ||||
| 		plugindir=$ZAF_PLUGINS_DIR/$plugin | ||||
| 		control=$plugindir/control.zaf | ||||
| 		zaf_ctrl_generate_cfg "${control}" "${plugin}" \ | ||||
| 		zaf_ctrl_generate_cfg "${control}" "${plugin}" "noscripts" \ | ||||
| 			  | zaf_far '{PLUGINDIR}' "${plugindir}" | ||||
| 	done | ||||
| 	;; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Lukas Macura
					Lukas Macura