diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-18 13:20:33 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-07-18 13:20:33 +0000 |
| commit | def2e0a7def21050b352556ceb7c31cea4ebbb1c (patch) | |
| tree | 16e811bda782fde81debd4199f2015fcdb103836 /frontends/php/include/triggers.inc.php | |
| parent | 125d97877ec6846cd8be946eb786621e3debec81 (diff) | |
- developed template unlinking feature (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3057 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/triggers.inc.php')
| -rw-r--r-- | frontends/php/include/triggers.inc.php | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php index 75770c59..a1345428 100644 --- a/frontends/php/include/triggers.inc.php +++ b/frontends/php/include/triggers.inc.php @@ -33,7 +33,7 @@ function get_realhosts_by_triggerid($triggerid) { $trigger = get_trigger_by_triggerid($triggerid); - if($trigger["templateid"] <> 0) + if($trigger["templateid"] > 0) return get_realhosts_by_triggerid($trigger["templateid"]); return get_hosts_by_triggerid($triggerid); @@ -348,7 +348,7 @@ return $triggerid; } - function copy_trigger_to_host($triggerid, $hostid) + function copy_trigger_to_host($triggerid, $hostid, $copy_mode = false) { $trigger = get_trigger_by_triggerid($triggerid); @@ -373,14 +373,15 @@ $trigger["comments"], $trigger["url"], $deps, - $triggerid); + $copy_mode ? 0 : $triggerid); } $result = DBexecute("insert into triggers". " (description,priority,status,comments,url,value,expression,templateid)". - " values (".zbx_dbstr($trigger["description"]).",".$trigger["priority"]."," - .$trigger["status"].",".zbx_dbstr($trigger["comments"]).",". - zbx_dbstr($trigger["url"]).",2,'{???:???}', $triggerid)"); + " values (".zbx_dbstr($trigger["description"]).",".$trigger["priority"].",". + $trigger["status"].",".zbx_dbstr($trigger["comments"]).",". + zbx_dbstr($trigger["url"]).",2,'{???:???}',". + ($copy_mode ? 0 : $triggerid).")"); if(!$result) return $result; @@ -430,10 +431,11 @@ info("Added trigger '".$trigger["description"]."' to host '".$host["host"]."'"); +// Copy triggers to the child hosts $child_hosts = get_hosts_by_templateid($hostid); while($child_host = DBfetch($child_hosts)) {// recursion - $result = copy_trigger_to_host($triggerid, $child_host["hostid"]); + $result = copy_trigger_to_host($newtriggerid, $child_host["hostid"]); if(!$result){ return result; } @@ -1011,25 +1013,49 @@ return strcmp($expr1,$trig2["expression"]); } - function delete_template_triggers_by_hostid($hostid) + function delete_template_triggers($hostid, $templateid = null, $unlink_mode = false) { $triggers = get_triggers_by_hostid($hostid); while($trigger = DBfetch($triggers)) { if($trigger["templateid"]==0) continue; - delete_trigger($trigger["triggerid"]); + + if($templateid != null) + { + $db_tmp_hosts = get_hostis_by_triggerid($trigger["templateid"]); + $tmp_host = DBfetch($db_tmp_hosts); + if($tmp_host["hostid"] != $templateid) + continue; + } + + if($unlink_mode) + { + if(DBexecute("update triggers set templateid=0 where triggerid=".$trigger["triggerid"])) + { + info("Trigger '".$trigger["description"]."' unlinked"); + } + } + else + { + delete_trigger($trigger["triggerid"]); + } } return TRUE; } - function sync_triggers_with_template($hostid) + function copy_template_triggers($hostid, $templateid = null, $copy_mode = false) { - $host = get_host_by_hostid($hostid); - $triggers = get_triggers_by_hostid($host["templateid"]); + if(null == $templateid) + { + $host = get_host_by_hostid($hostid); + $templateid = $host["templateid"]; + } + + $triggers = get_triggers_by_hostid($templateid); while($trigger = DBfetch($triggers)) { - copy_trigger_to_host($trigger["triggerid"], $hostid); + copy_trigger_to_host($trigger["triggerid"], $hostid, $copy_mode); } } |
