diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-12-23 13:27:21 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-12-23 13:27:21 +0000 |
commit | c9d422200ca8d3b4db66a56c5d4dc3fc3c35b15d (patch) | |
tree | 0f0b52d2f83f6effbedb79fff830bc5ccdded367 /frontends/php/include/triggers.inc.php | |
parent | 83e9a5903bdf244e3bf5f22620d97095525cda22 (diff) | |
download | zabbix-c9d422200ca8d3b4db66a56c5d4dc3fc3c35b15d.tar.gz zabbix-c9d422200ca8d3b4db66a56c5d4dc3fc3c35b15d.tar.xz zabbix-c9d422200ca8d3b4db66a56c5d4dc3fc3c35b15d.zip |
- added 'update' operation for triggers of template hosts (Eugene)
- added 'update' operation for operations of template hosts (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2422 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/triggers.inc.php')
-rw-r--r-- | frontends/php/include/triggers.inc.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php index 19ebead0..6d89fbe5 100644 --- a/frontends/php/include/triggers.inc.php +++ b/frontends/php/include/triggers.inc.php @@ -321,6 +321,79 @@ where h.hostid=i.hostid and i.itemid=f.itemid and f.triggerid=$triggerid"; return TRUE; } + # Update triger from + function update_trigger_from_linked_hosts($triggerid) + { + if($triggerid<=0) + { + return; + } + + $trigger=get_trigger_by_triggerid($triggerid); + +# get hostid by triggerid + + $sql="select distinct h.hostid from hosts h,functions f, items i where i.itemid=f.itemid and h.hostid=i.hostid and f.triggerid=$triggerid"; + $result=DBselect($sql); + if(DBnum_rows($result)!=1){ return; } + $row0=DBfetch($result); + +#get linked hosts + $sql="select hostid,templateid,triggers from hosts_templates where templateid=".$row0["hostid"]; + $result=DBselect($sql); + // Loop: linked hosts + while($row=DBfetch($result)) + { + if($row["triggers"]&3 == 0) continue; +#get triggers + $sql="select distinct f.triggerid from functions f,items i,triggers t where t.description='".addslashes($trigger["description"])."' and t.triggerid=f.triggerid and i.itemid=f.itemid and i.hostid=".$row["hostid"]; + $result2=DBselect($sql); + // Loop: triggers + while($row2=DBfetch($result2)) + { + delete_function_by_triggerid($row2["triggerid"]); + + $expression_old=$trigger["expression"]; +#get functions + $sql="select i.key_,f.parameter,f.function,f.functionid from functions f,items i where i.itemid=f.itemid and f.triggerid=".$trigger["triggerid"]; + $result2=DBselect($sql); + // Loop: functions + while($row3=DBfetch($result2)) + { + + $sql="select itemid from items where key_=\"".$row3["key_"]."\" and hostid=".$row["hostid"]; + $result3=DBselect($sql); + if(DBnum_rows($result3)!=1) + { + $sql="delete from triggers where triggerid=".$row2["triggerid"]; + DBexecute($sql); + $sql="delete from functions where triggerid=".$row2["triggerid"]; + DBexecute($sql); + break; + } + $row4=DBfetch($result3); + + $item=get_item_by_itemid($row4["itemid"]); + + $sql="insert into functions (itemid,triggerid,function,parameter) values (".$item["itemid"].",".$row2["triggerid"].",'".$row3["function"]."','".$row3["parameter"]."')"; + $result5=DBexecute($sql); + $functionid=DBinsert_id($result5,"functions","functionid"); + + $sql="update triggers set expression='$expression_old' where triggerid=".$row2["triggerid"]; + DBexecute($sql); + $expression=str_replace("{".$row3["functionid"]."}","{".$functionid."}",$expression_old); + $expression_old=$expression; + $sql="update triggers set expression='$expression' where triggerid=".$row2["triggerid"]; + DBexecute($sql); + } + + $host=get_host_by_hostid($row["hostid"]); + info("Updated trigger from linked host ".$host["host"]); + } + + } + } + # Add item to hardlinked hosts function add_trigger_to_linked_hosts($triggerid,$hostid=0) |