mirror of
https://github.com/limosek/zaf.git
synced 2025-12-16 23:47:02 +01:00
Repaired caching
Added testparameters and precacheparameters
This commit is contained in:
@@ -20,13 +20,14 @@ zaf_cache_key(){
|
||||
# $2 value
|
||||
# $3 lifetime in seconds
|
||||
zaf_tocache(){
|
||||
! [ -w $ZAF_CACHE_DIR ] && return 1
|
||||
local key
|
||||
local value
|
||||
local lifetime
|
||||
|
||||
key=$(zaf_cache_key "$1")
|
||||
echo "$2" >$ZAF_CACHE_DIR/$key
|
||||
echo "$1" >$ZAF_CACHE_DIR/$key.key
|
||||
touch -m -d "$3 seconds" $ZAF_CACHE_DIR/$key.tme
|
||||
echo "$1" >$ZAF_CACHE_DIR/$key.info
|
||||
touch -m -d "$3 seconds" $ZAF_CACHE_DIR/$key.info
|
||||
zaf_trc "Cache: Saving entry $1($key)"
|
||||
}
|
||||
|
||||
@@ -34,14 +35,15 @@ zaf_tocache(){
|
||||
# $1 key
|
||||
# $2 lifetime in seconds
|
||||
zaf_tocache_stdin(){
|
||||
! [ -w $ZAF_CACHE_DIR ] && return 1
|
||||
local key
|
||||
local lifetime
|
||||
|
||||
key=$(zaf_cache_key "$1")
|
||||
cat >$ZAF_CACHE_DIR/$key
|
||||
if [ -s $ZAF_CACHE_DIR/$key ]; then
|
||||
zaf_trc "Cache: Saving entry $1($key)"
|
||||
echo "$1" >$ZAF_CACHE_DIR/$key.key
|
||||
touch -m -d "$3 seconds" $ZAF_CACHE_DIR/$key.tme
|
||||
echo "$1" >$ZAF_CACHE_DIR/$key.info
|
||||
touch -m -d "$2 seconds" $ZAF_CACHE_DIR/$key.info
|
||||
cat $ZAF_CACHE_DIR/$key
|
||||
else
|
||||
rm $ZAF_CACHE_DIR/$key
|
||||
@@ -51,6 +53,7 @@ zaf_tocache_stdin(){
|
||||
# Remove entry from cache
|
||||
# $1 key
|
||||
zaf_cache_delentry(){
|
||||
! [ -w $ZAF_CACHE_DIR ] && return 1
|
||||
local key
|
||||
key=$(zaf_cache_key "$1")
|
||||
zaf_trc "Cache: removing $1($key) from cache"
|
||||
@@ -60,11 +63,12 @@ zaf_cache_delentry(){
|
||||
# Get object from cache
|
||||
# $1 key
|
||||
zaf_fromcache(){
|
||||
! [ -r $ZAF_CACHE_DIR ] || [ -n "$ZAF_NOCACHE" ] && return 1
|
||||
local key
|
||||
local value
|
||||
key=$(zaf_cache_key "$1")
|
||||
if [ -f $ZAF_CACHE_DIR/$key ]; then
|
||||
if [ "$ZAF_CACHE_DIR/$key.tme" -nt "$ZAF_CACHE_DIR/$key" ]; then
|
||||
if [ "$ZAF_CACHE_DIR/$key.info" -nt "$ZAF_CACHE_DIR/$key" ]; then
|
||||
zaf_trc "Cache: serving $1($key) from cache"
|
||||
cat $ZAF_CACHE_DIR/$key
|
||||
else
|
||||
|
||||
@@ -21,7 +21,8 @@ export ZAF_LIB_DIR
|
||||
export ZAF_TMP_DIR
|
||||
export ZAF_PLUGINS_DIR
|
||||
|
||||
if [ "$1" = "_cache" ]; then
|
||||
if [ "$1" = "_cache" ] || [ "$1" = "_nocache" ] ; then
|
||||
[ "$1" = "_nocache" ] && export ZAF_NOCACHE=1
|
||||
shift
|
||||
seconds=$1
|
||||
shift
|
||||
|
||||
@@ -231,8 +231,14 @@ zaf_plugin_info() {
|
||||
[ -n "$pmaintainer" ] && echo "Maintainer: $pmaintainer"
|
||||
[ -n "$purl" ] && echo "Url: $purl"
|
||||
[ -n "$phome" ] && echo "Home: $phome"
|
||||
echo
|
||||
echo "Items: $pitems"
|
||||
echo
|
||||
if zaf_is_plugin "$(basename $plugin)"; then
|
||||
echo -n "Defined items: "; zaf_list_plugin_items $plugin
|
||||
echo -n "Test items: "; zaf_list_plugin_items $plugin test
|
||||
echo -n "Precache items: "; zaf_list_plugin_items $plugin precache
|
||||
else
|
||||
echo "Items: $pitems"
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
@@ -338,11 +344,15 @@ zaf_plugin_template_url() {
|
||||
echo $(zaf_plugin_option "$1" Url)/template.xml
|
||||
}
|
||||
|
||||
# $1 plugin
|
||||
# $2 test to get test items, precache to get items to precache
|
||||
zaf_list_plugin_items() {
|
||||
local items
|
||||
local i
|
||||
local p
|
||||
local key
|
||||
local testparms
|
||||
local precache
|
||||
|
||||
if ! zaf_is_plugin "$1"; then
|
||||
zaf_err "Missing plugin name or plugin $1 unknown. ";
|
||||
@@ -352,12 +362,25 @@ zaf_list_plugin_items() {
|
||||
items=$(zaf_ctrl_get_items <$cfile)
|
||||
for i in $items; do
|
||||
p=$(zaf_ctrl_get_item_option $cfile $i "Parameters")
|
||||
testparms=$(zaf_ctrl_get_item_option $cfile $i "Testparameters")
|
||||
precache=$(zaf_ctrl_get_item_option $cfile $i "Precache")
|
||||
if [ -n "$p" ]; then
|
||||
key="$1.$i[]"
|
||||
if [ -n "$testparms" ] && [ "$2" = "test" ]; then
|
||||
for tp in $testparms; do
|
||||
echo -n "$1.$i[$tp] "
|
||||
done
|
||||
else
|
||||
if [ -n "$precache" ] && [ "$2" = "precache" ]; then
|
||||
for tp in $precache; do
|
||||
echo -n "$1.$i[$tp] "
|
||||
done
|
||||
fi
|
||||
[ "$2" != "test" ] && key="$1.$i[]"
|
||||
fi
|
||||
else
|
||||
key="$1.$i"
|
||||
fi
|
||||
echo -n "$key "
|
||||
[ "$2" != "precache" ] && echo -n "$key "
|
||||
done
|
||||
echo
|
||||
}
|
||||
@@ -379,12 +402,12 @@ zaf_get_item() {
|
||||
}
|
||||
|
||||
zaf_test_item() {
|
||||
[ "$USER" != "zabbix" ] && zaf_wrn "You are not zabbix user. Test will be run with your privileges and sudo access!"
|
||||
$ZAF_AGENT_BIN -t "$1"
|
||||
}
|
||||
|
||||
zaf_precache_item() {
|
||||
cmd=$(grep "^UserParameter=$item" $ZAF_AGENT_CONFIGD/zaf*.conf | cut -d ',' -f 2-)
|
||||
cmd=$(grep "^UserParameter=$item" $ZAF_AGENT_CONFIGD/zaf*.conf | cut -d ',' -f 2- | sed -e "s/_cache/_nocache/")
|
||||
zaf_wrn "Precaching item $item[$(echo $*| tr ' ' ',')] ($cmd)"
|
||||
eval $cmd
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user