本文整理汇总了PHP中update_data_source_data_query_cache函数的典型用法代码示例。如果您正苦于以下问题:PHP update_data_source_data_query_cache函数的具体用法?PHP update_data_source_data_query_cache怎么用?PHP update_data_source_data_query_cache使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了update_data_source_data_query_cache函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update_data_query_cache
function update_data_query_cache($host_id, $data_query_id) {
$graphs = db_fetch_assoc("select id from graph_local where host_id = '$host_id' and snmp_query_id = '$data_query_id'");
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
update_graph_data_query_cache($graph["id"]);
}
}
$data_sources = db_fetch_assoc("select id from data_local where host_id = '$host_id' and snmp_query_id = '$data_query_id'");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
update_data_source_data_query_cache($data_source["id"]);
}
}
}
示例2: template
//.........这里部分代码省略.........
data_input_fields.id,
data_input_fields.type_code
FROM (snmp_query,data_input,data_input_fields)
WHERE snmp_query.data_input_id=data_input.id
AND data_input.id=data_input_fields.data_input_id
AND (data_input_fields.type_code='index_type'
OR data_input_fields.type_code='index_value'
OR data_input_fields.type_code='output_type')
AND snmp_query.id=" . $snmp_query_array["snmp_query_id"]), "type_code", "id");
$snmp_cache_value = db_fetch_cell("SELECT field_value
FROM device_snmp_cache
WHERE device_id='$device_id'
AND snmp_query_id='" . $snmp_query_array["snmp_query_id"] . "'
AND field_name='" . $snmp_query_array["snmp_index_on"] . "'
AND snmp_index='" . $snmp_query_array["snmp_index"] . "'");
/* save the value to index on (ie. ifindex, ifip, etc) */
db_execute("REPLACE INTO data_input_data
(data_input_field_id, data_template_data_id, t_value, value)
VALUES (" . $data_input_field["index_type"] . ", $data_template_data_id, '', '" . $snmp_query_array["snmp_index_on"] . "')");
/* save the actual value (ie. 3, 192.168.1.101, etc) */
db_execute("REPLACE INTO data_input_data
(data_input_field_id,data_template_data_id,t_value,value)
VALUES (" . $data_input_field["index_value"] . ",$data_template_data_id,'','" . addslashes($snmp_cache_value) . "')");
/* set the expected output type (ie. bytes, errors, packets) */
db_execute("REPLACE INTO data_input_data
(data_input_field_id,data_template_data_id,t_value,value)
VALUES (" . $data_input_field["output_type"] . ",$data_template_data_id,'','" . $snmp_query_array["snmp_query_graph_id"] . "')");
/* now that we have put data into the 'data_input_data' table, update the snmp cache for ds's */
update_data_source_data_query_cache($cache_array["local_data_id"]{$data_template["id"]});
}
/* suggested values: data source */
if (isset($suggested_values_array[$graph_template_id]["data_template"]{$data_template["id"]})) {
reset($suggested_values_array[$graph_template_id]["data_template"]{$data_template["id"]});
while (list($field_name, $field_value) = each($suggested_values_array[$graph_template_id]["data_template"]{$data_template["id"]})) {
db_execute("UPDATE data_template_data
SET $field_name='$field_value'
WHERE local_data_id=" . $cache_array["local_data_id"]{$data_template["id"]});
}
}
/* suggested values: data source item */
if (isset($suggested_values_array[$graph_template_id]["data_template_item"])) {
reset($suggested_values_array[$graph_template_id]["data_template_item"]);
while (list($data_template_item_id, $field_array) = each($suggested_values_array[$graph_template_id]["data_template_item"])) {
while (list($field_name, $field_value) = each($field_array)) {
$data_source_item_id = db_fetch_cell("select id from data_template_rrd where local_data_template_rrd_id=$data_template_item_id and local_data_id=" . $cache_array["local_data_id"]{$data_template["id"]});
db_execute("UPDATE data_template_rrd
SET $field_name='$field_value'
WHERE id=$data_source_item_id");
}
}
}
/* suggested values: custom data */
if (isset($suggested_values_array[$graph_template_id]["custom_data"]{$data_template["id"]})) {
reset($suggested_values_array[$graph_template_id]["custom_data"]{$data_template["id"]});
while (list($data_input_field_id, $field_value) = each($suggested_values_array[$graph_template_id]["custom_data"]{$data_template["id"]})) {
db_execute("replace into data_input_data (data_input_field_id,data_template_data_id,t_value,value) values ($data_input_field_id,$data_template_data_id,'','$field_value')");
}
}
示例3: form_save
//.........这里部分代码省略.........
$save1["host_id"] = $_POST["host_id"];
$save2["id"] = $_POST["data_template_data_id"];
$save2["local_data_template_data_id"] = $_POST["local_data_template_data_id"];
$save2["data_template_id"] = $_POST["data_template_id"];
$save2["data_input_id"] = form_input_validate($_POST["data_input_id"], "data_input_id", "", true, 3);
$save2["name"] = form_input_validate($_POST["name"], "name", "", false, 3);
$save2["data_source_path"] = form_input_validate($_POST["data_source_path"], "data_source_path", "", true, 3);
$save2["active"] = form_input_validate(isset($_POST["active"]) ? $_POST["active"] : "", "active", "", true, 3);
$save2["rrd_step"] = form_input_validate($_POST["rrd_step"], "rrd_step", "^[0-9]+\$", false, 3);
if (!is_error_message()) {
$local_data_id = sql_save($save1, "data_local");
$save2["local_data_id"] = $local_data_id;
$data_template_data_id = sql_save($save2, "data_template_data");
if ($data_template_data_id) {
raise_message(1);
} else {
raise_message(2);
}
}
if (!is_error_message()) {
/* if this is a new data source and a template has been selected, skip item creation this time
otherwise it throws off the templatate creation because of the NULL data */
if (!empty($_POST["local_data_id"]) || empty($_POST["data_template_id"])) {
/* if no template was set before the save, there will be only one data source item to save;
otherwise there might be >1 */
if (empty($_POST["_data_template_id"])) {
$rrds[0]["id"] = $_POST["current_rrd"];
} else {
$rrds = db_fetch_assoc("select id from data_template_rrd where local_data_id=" . $_POST["local_data_id"]);
}
if (sizeof($rrds) > 0) {
foreach ($rrds as $rrd) {
if (empty($_POST["_data_template_id"])) {
$name_modifier = "";
} else {
$name_modifier = "_" . $rrd["id"];
}
$save3["id"] = $rrd["id"];
$save3["local_data_id"] = $local_data_id;
$save3["local_data_template_rrd_id"] = db_fetch_cell("select local_data_template_rrd_id from data_template_rrd where id=" . $rrd["id"]);
$save3["data_template_id"] = $_POST["data_template_id"];
$save3["rrd_maximum"] = form_input_validate($_POST["rrd_maximum{$name_modifier}"], "rrd_maximum{$name_modifier}", "^-?[0-9]+\$", false, 3);
$save3["rrd_minimum"] = form_input_validate($_POST["rrd_minimum{$name_modifier}"], "rrd_minimum{$name_modifier}", "^-?[0-9]+\$", false, 3);
$save3["rrd_heartbeat"] = form_input_validate($_POST["rrd_heartbeat{$name_modifier}"], "rrd_heartbeat{$name_modifier}", "^[0-9]+\$", false, 3);
$save3["data_source_type_id"] = $_POST["data_source_type_id{$name_modifier}"];
$save3["data_source_name"] = form_input_validate($_POST["data_source_name{$name_modifier}"], "data_source_name{$name_modifier}", "^[a-zA-Z0-9_-]{1,19}\$", false, 3);
$save3["data_input_field_id"] = form_input_validate(isset($_POST["data_input_field_id{$name_modifier}"]) ? $_POST["data_input_field_id{$name_modifier}"] : "0", "data_input_field_id{$name_modifier}", "", true, 3);
$data_template_rrd_id = sql_save($save3, "data_template_rrd");
if ($data_template_rrd_id) {
raise_message(1);
} else {
raise_message(2);
}
}
}
}
}
if (!is_error_message()) {
if (!empty($_POST["rra_id"])) {
/* save entries in 'selected rras' field */
db_execute("delete from data_template_data_rra where data_template_data_id={$data_template_data_id}");
for ($i = 0; $i < count($_POST["rra_id"]); $i++) {
/* ================= input validation ================= */
input_validate_input_number($_POST["rra_id"][$i]);
/* ==================================================== */
db_execute("insert into data_template_data_rra (rra_id,data_template_data_id)\n\t\t\t\t\t\tvalues (" . $_POST["rra_id"][$i] . ",{$data_template_data_id})");
}
}
if ($_POST["data_template_id"] != $_POST["_data_template_id"]) {
/* update all necessary template information */
change_data_template($local_data_id, $_POST["data_template_id"]);
} elseif (!empty($_POST["data_template_id"])) {
update_data_source_data_query_cache($local_data_id);
}
if ($_POST["host_id"] != $_POST["_host_id"]) {
/* push out all necessary host information */
push_out_host($_POST["host_id"], $local_data_id);
/* reset current host for display purposes */
$_SESSION["sess_data_source_current_host_id"] = $_POST["host_id"];
}
/* if no data source path has been entered, generate one */
if (empty($_POST["data_source_path"])) {
generate_data_source_path($local_data_id);
}
/* update the title cache */
update_data_source_title_cache($local_data_id);
}
}
/* update the poller cache last to make sure everything is fresh */
if (!is_error_message() && !empty($local_data_id)) {
update_poller_cache($local_data_id, false);
}
if (isset($_POST["save_component_data_source_new"]) && empty($_POST["data_template_id"])) {
header("Location: data_sources.php?action=ds_edit&host_id=" . $_POST["host_id"] . "&new=1");
} elseif (is_error_message() || $_POST["data_template_id"] != $_POST["_data_template_id"] || $_POST["data_input_id"] != $_POST["_data_input_id"] || $_POST["host_id"] != $_POST["_host_id"]) {
header("Location: data_sources.php?action=ds_edit&id=" . (empty($local_data_id) ? $_POST["local_data_id"] : $local_data_id) . "&host_id=" . $_POST["host_id"] . "&view_rrd=" . (isset($_POST["current_rrd"]) ? $_POST["current_rrd"] : "0"));
} else {
header("Location: data_sources.php");
}
}
示例4: data_source_form_save
//.........这里部分代码省略.........
}
}
# if (!is_error_message()) {
# /* if this is a new data source and a template has been selected, skip item creation this time
# otherwise it throws off the templatate creation because of the NULL data */
# if ((!empty($_POST["local_data_id"])) || (empty($_POST["data_template_id"]))) {
# /* if no template was set before the save, there will be only one data source item to save;
# otherwise there might be >1 */
# if (empty($_POST["hidden_data_template_id"])) {
# $rrds[0]["id"] = $_POST["current_rrd"];
# }else{
# $rrds = db_fetch_assoc("select id from data_template_rrd where local_data_id=" . $_POST["local_data_id"]);
# }
#
# if (sizeof($rrds) > 0) {
# foreach ($rrds as $rrd) {
# if (empty($_POST["hidden_data_template_id"])) {
# $name_modifier = "";
# }else{
# $name_modifier = "_" . $rrd["id"];
# }
#
# $save3["id"] = $rrd["id"];
# $save3["local_data_id"] = $local_data_id;
# $save3["local_data_template_rrd_id"] = db_fetch_cell("select local_data_template_rrd_id from data_template_rrd where id=" . $rrd["id"]);
# $save3["data_template_id"] = $_POST["data_template_id"];
# $save3["rrd_maximum"] = form_input_validate($_POST["rrd_maximum$name_modifier"], "rrd_maximum$name_modifier", "^(-?([0-9]+(\.[0-9]*)?|[0-9]*\.[0-9]+)([eE][+\-]?[0-9]+)?)|U$", false, 3);
# $save3["rrd_minimum"] = form_input_validate($_POST["rrd_minimum$name_modifier"], "rrd_minimum$name_modifier", "^(-?([0-9]+(\.[0-9]*)?|[0-9]*\.[0-9]+)([eE][+\-]?[0-9]+)?)|U$", false, 3);
# $save3["rrd_heartbeat"] = form_input_validate($_POST["rrd_heartbeat$name_modifier"], "rrd_heartbeat$name_modifier", "^[0-9]+$", false, 3);
# $save3["data_source_type_id"] = $_POST["data_source_type_id$name_modifier"];
# $save3["data_source_name"] = form_input_validate($_POST["data_source_name$name_modifier"], "data_source_name$name_modifier", "^[a-zA-Z0-9_-]{1,19}$", false, 3);
# $save3["data_input_field_id"] = form_input_validate((isset($_POST["data_input_field_id$name_modifier"]) ? $_POST["data_input_field_id$name_modifier"] : "0"), "data_input_field_id$name_modifier", "", true, 3);
#
# $data_template_rrd_id = sql_save($save3, "data_template_rrd");
#
# if ($data_template_rrd_id) {
# raise_message(1);
# }else{
# raise_message(2);
# }
# }
# }
# }
# }
if (!is_error_message()) {
if (!empty($_POST["rra_id"])) {
/* save entries in 'selected rras' field */
db_execute("delete from data_template_data_rra where data_template_data_id=$data_template_data_id");
for ($i=0; ($i < count($_POST["rra_id"])); $i++) {
/* ================= input validation ================= */
input_validate_input_number($_POST["rra_id"][$i]);
/* ==================================================== */
db_execute("insert into data_template_data_rra (rra_id,data_template_data_id)
values (" . $_POST["rra_id"][$i] . ",$data_template_data_id)");
}
}
if ($_POST["data_template_id"] != $_POST["hidden_data_template_id"]) {
/* update all necessary template information */
change_data_template($local_data_id, get_request_var_post("data_template_id"));
}elseif (!empty($_POST["data_template_id"])) {
update_data_source_data_query_cache($local_data_id);
}
if ($_POST["device_id"] != $_POST["hidden_device_id"]) {
/* push out all necessary device information */
push_out_device(get_request_var_post("device_id"), $local_data_id);
/* reset current device for display purposes */
$_SESSION["sess_data_source_currenthidden_device_id"] = $_POST["device_id"];
}
/* if no data source path has been entered, generate one */
if (empty($_POST["data_source_path"])) {
generate_data_source_path($local_data_id);
}
/* update the title cache */
update_data_source_title_cache($local_data_id);
}
}
/* update the poller cache last to make sure everything is fresh */
if ((!is_error_message()) && (!empty($local_data_id))) {
update_poller_cache($local_data_id, true);
}
if ((isset($_POST["save_component_data_source_new"])) && (empty($_POST["data_template_id"]))) {
header("Location: data_sources.php?action=data_source_edit&device_id=" . $_POST["device_id"] . "&new=1");
}elseif ((is_error_message()) || ($_POST["data_template_id"] != $_POST["hidden_data_template_id"]) || ($_POST["data_input_id"] != $_POST["hidden_data_input_id"]) || ($_POST["device_id"] != $_POST["hidden_device_id"])) {
header("Location: data_sources.php?action=data_source_edit&id=" . (empty($local_data_id) ? $_POST["local_data_id"] : $local_data_id) . "&device_id=" . $_POST["device_id"] . "&view_rrd=" . (isset($_POST["current_rrd"]) ? $_POST["current_rrd"] : "0"));
}else{
header("Location: data_sources.php");
}
exit;
}
示例5: update_snmp_index_order
/**
* perform sql updates for all required tables for new index_sort_order
* @arg array $snmp_query_array
* $host_id
* snmp_query_id
* snmp_index_on
* snmp_query_graph_id
* snmp_index
* $data_template_data_id
* $local_data_id
*
* this code stems from lib/template.php, function create_complete_graph_from_template
*/
function update_snmp_index_order($data_query)
{
if (is_array($data_query)) {
$data_input_field = array_rekey(db_fetch_assoc("SELECT " . "data_input_fields.id, " . "data_input_fields.type_code " . "FROM (snmp_query,data_input,data_input_fields) " . "WHERE snmp_query.data_input_id=data_input.id " . "AND data_input.id=data_input_fields.data_input_id " . "AND (data_input_fields.type_code='index_type' " . "OR data_input_fields.type_code='index_value' " . "OR data_input_fields.type_code='output_type') " . "AND snmp_query.id=" . $data_query["snmp_query_id"]), "type_code", "id");
$snmp_cache_value = db_fetch_cell("SELECT field_value " . "FROM host_snmp_cache " . "WHERE host_id='" . $data_query["host_id"] . "' " . "AND snmp_query_id='" . $data_query["snmp_query_id"] . "' " . "AND field_name='" . $data_query["snmp_index_on"] . "' " . "AND snmp_index='" . $data_query["snmp_index"] . "'");
/* save the value to index on (ie. ifindex, ifip, etc) */
db_execute("REPLACE INTO data_input_data " . "(data_input_field_id, data_template_data_id, t_value, value) " . "VALUES (" . $data_input_field["index_type"] . ", " . $data_query["data_template_data_id"] . ", '', '" . $data_query["snmp_index_on"] . "')");
/* save the actual value (ie. 3, 192.168.1.101, etc) */
db_execute("REPLACE INTO data_input_data " . "(data_input_field_id,data_template_data_id,t_value,value) " . "VALUES (" . $data_input_field["index_value"] . "," . $data_query["data_template_data_id"] . ",'','" . addslashes($snmp_cache_value) . "')");
/* set the expected output type (ie. bytes, errors, packets) */
db_execute("REPLACE INTO data_input_data " . "(data_input_field_id,data_template_data_id,t_value,value) " . "VALUES (" . $data_input_field["output_type"] . "," . $data_query["data_template_data_id"] . ",'','" . $data_query["snmp_query_graph_id"] . "')");
/* now that we have put data into the 'data_input_data' table, update the snmp cache for ds's */
update_data_source_data_query_cache($data_query["local_data_id"]);
}
}
示例6: create_complete_graph_from_template
function create_complete_graph_from_template($graph_template_id, $host_id, $snmp_query_array, &$suggested_values_array)
{
global $config;
include_once $config["library_path"] . "/data_query.php";
/* create the graph */
$save["id"] = 0;
$save["graph_template_id"] = $graph_template_id;
$save["host_id"] = $host_id;
$cache_array["local_graph_id"] = sql_save($save, "graph_local");
change_graph_template($cache_array["local_graph_id"], $graph_template_id, true);
if (is_array($snmp_query_array)) {
/* suggested values for snmp query code */
$suggested_values = db_fetch_assoc("select text,field_name from snmp_query_graph_sv where snmp_query_graph_id=" . $snmp_query_array["snmp_query_graph_id"] . " order by sequence");
if (sizeof($suggested_values) > 0) {
foreach ($suggested_values as $suggested_value) {
/* once we find a match; don't try to find more */
if (!isset($suggested_values_graph[$graph_template_id][$suggested_value["field_name"]])) {
$subs_string = substitute_snmp_query_data($suggested_value["text"], $host_id, $snmp_query_array["snmp_query_id"], $snmp_query_array["snmp_index"], read_config_option("max_data_query_field_length"));
/* if there are no '|' characters, all of the substitutions were successful */
if (!strstr($subs_string, "|query")) {
db_execute("update graph_templates_graph set " . $suggested_value["field_name"] . "='" . addslashes($suggested_value["text"]) . "' where local_graph_id=" . $cache_array["local_graph_id"]);
/* once we find a working value, stop */
$suggested_values_graph[$graph_template_id][$suggested_value["field_name"]] = true;
}
}
}
}
}
/* suggested values: graph */
if (isset($suggested_values_array[$graph_template_id]["graph_template"])) {
while (list($field_name, $field_value) = each($suggested_values_array[$graph_template_id]["graph_template"])) {
db_execute("update graph_templates_graph set {$field_name}='{$field_value}' where local_graph_id=" . $cache_array["local_graph_id"]);
}
}
/* suggested values: graph item */
if (isset($suggested_values_array[$graph_template_id]["graph_template_item"])) {
while (list($graph_template_item_id, $field_array) = each($suggested_values_array[$graph_template_id]["graph_template_item"])) {
while (list($field_name, $field_value) = each($field_array)) {
$graph_item_id = db_fetch_cell("select id from graph_templates_item where local_graph_template_item_id={$graph_template_item_id} and local_graph_id=" . $cache_array["local_graph_id"]);
db_execute("update graph_templates_item set {$field_name}='{$field_value}' where id={$graph_item_id}");
}
}
}
update_graph_title_cache($cache_array["local_graph_id"]);
/* create each data source */
$data_templates = db_fetch_assoc("select\n\t\tdata_template.id,\n\t\tdata_template.name,\n\t\tdata_template_rrd.data_source_name\n\t\tfrom (data_template, data_template_rrd, graph_templates_item)\n\t\twhere graph_templates_item.task_item_id=data_template_rrd.id\n\t\tand data_template_rrd.data_template_id=data_template.id\n\t\tand data_template_rrd.local_data_id=0\n\t\tand graph_templates_item.local_graph_id=0\n\t\tand graph_templates_item.graph_template_id=" . $graph_template_id . "\n\t\tgroup by data_template.id\n\t\torder by data_template.name");
if (sizeof($data_templates) > 0) {
foreach ($data_templates as $data_template) {
unset($save);
$save["id"] = 0;
$save["data_template_id"] = $data_template["id"];
$save["host_id"] = $host_id;
$cache_array["local_data_id"][$data_template["id"]] = sql_save($save, "data_local");
change_data_template($cache_array["local_data_id"][$data_template["id"]], $data_template["id"]);
$data_template_data_id = db_fetch_cell("select id from data_template_data where local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
if (is_array($snmp_query_array)) {
/* suggested values for snmp query code */
$suggested_values = db_fetch_assoc("select text,field_name from snmp_query_graph_rrd_sv where snmp_query_graph_id=" . $snmp_query_array["snmp_query_graph_id"] . " and data_template_id=" . $data_template["id"] . " order by sequence");
if (sizeof($suggested_values) > 0) {
foreach ($suggested_values as $suggested_value) {
/* once we find a match; don't try to find more */
if (!isset($suggested_values_ds[$data_template["id"]][$suggested_value["field_name"]])) {
$subs_string = substitute_snmp_query_data($suggested_value["text"], $host_id, $snmp_query_array["snmp_query_id"], $snmp_query_array["snmp_index"], read_config_option("max_data_query_field_length"));
/* if there are no '|' characters, all of the substitutions were successful */
if (!strstr($subs_string, "|query")) {
if (sizeof(db_fetch_row("show columns from data_template_data like '" . $suggested_value["field_name"] . "'"))) {
db_execute("update data_template_data set " . $suggested_value["field_name"] . "='" . addslashes($suggested_value["text"]) . "' where local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
}
/* once we find a working value, stop */
$suggested_values_ds[$data_template["id"]][$suggested_value["field_name"]] = true;
if (sizeof(db_fetch_row("show columns from data_template_rrd like '" . $suggested_value["field_name"] . "'")) && !substr_count($subs_string, "|")) {
db_execute("update data_template_rrd set " . $suggested_value["field_name"] . "='" . $subs_string . "' where local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
}
}
}
}
}
}
if (is_array($snmp_query_array)) {
$data_input_field = array_rekey(db_fetch_assoc("select\n\t\t\t\tdata_input_fields.id,\n\t\t\t\tdata_input_fields.type_code\n\t\t\t\tfrom (snmp_query,data_input,data_input_fields)\n\t\t\t\twhere snmp_query.data_input_id=data_input.id\n\t\t\t\tand data_input.id=data_input_fields.data_input_id\n\t\t\t\tand (data_input_fields.type_code='index_type' or data_input_fields.type_code='index_value' or data_input_fields.type_code='output_type')\n\t\t\t\tand snmp_query.id=" . $snmp_query_array["snmp_query_id"]), "type_code", "id");
$snmp_cache_value = db_fetch_cell("select field_value from host_snmp_cache where host_id='{$host_id}' and snmp_query_id='" . $snmp_query_array["snmp_query_id"] . "' and field_name='" . $snmp_query_array["snmp_index_on"] . "' and snmp_index='" . $snmp_query_array["snmp_index"] . "'");
/* save the value to index on (ie. ifindex, ifip, etc) */
db_execute("replace into data_input_data (data_input_field_id,data_template_data_id,t_value,value) values (" . $data_input_field["index_type"] . ",{$data_template_data_id},'','" . $snmp_query_array["snmp_index_on"] . "')");
/* save the actual value (ie. 3, 192.168.1.101, etc) */
db_execute("replace into data_input_data (data_input_field_id,data_template_data_id,t_value,value) values (" . $data_input_field["index_value"] . ",{$data_template_data_id},'','" . addslashes($snmp_cache_value) . "')");
/* set the expected output type (ie. bytes, errors, packets) */
db_execute("replace into data_input_data (data_input_field_id,data_template_data_id,t_value,value) values (" . $data_input_field["output_type"] . ",{$data_template_data_id},'','" . $snmp_query_array["snmp_query_graph_id"] . "')");
/* now that we have put data into the 'data_input_data' table, update the snmp cache for ds's */
update_data_source_data_query_cache($cache_array["local_data_id"][$data_template["id"]]);
}
/* suggested values: data source */
if (isset($suggested_values_array[$graph_template_id]["data_template"][$data_template["id"]])) {
reset($suggested_values_array[$graph_template_id]["data_template"][$data_template["id"]]);
while (list($field_name, $field_value) = each($suggested_values_array[$graph_template_id]["data_template"][$data_template["id"]])) {
db_execute("update data_template_data set {$field_name}='{$field_value}' where local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
}
}
/* suggested values: data source item */
if (isset($suggested_values_array[$graph_template_id]["data_template_item"])) {
reset($suggested_values_array[$graph_template_id]["data_template_item"]);
//.........这里部分代码省略.........
示例7: update_data_query_cache
function update_data_query_cache($host_id, $data_query_id)
{
$graphs = db_fetch_assoc("SELECT id FROM graph_local WHERE host_id = '{$host_id}' AND snmp_query_id = '{$data_query_id}'");
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
update_graph_data_query_cache($graph["id"]);
}
}
$data_sources = db_fetch_assoc("SELECT id FROM data_local WHERE host_id = '{$host_id}' AND snmp_query_id = '{$data_query_id}'");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
update_data_source_data_query_cache($data_source["id"]);
}
}
}
示例8: create_complete_graph_from_template
//.........这里部分代码省略.........
if (sql_column_exists("data_template_data", $suggested_value["field_name"]) &&
(!substr_count($subs_string, "|"))) {
db_execute("update data_template_rrd set " . $suggested_value["field_name"] . "='" . $subs_string . "' where local_data_id=" . $cache_array["local_data_id"]{$data_template["id"]});
}
}
}
}
}
}
if (is_array($snmp_query_array)) {
$data_input_field = array_rekey(db_fetch_assoc("select
data_input_fields.id,
data_input_fields.type_code
from (snmp_query
cross join data_input
cross join data_input_fields)
where snmp_query.data_input_id=data_input.id
and data_input.id=data_input_fields.data_input_id
and (data_input_fields.type_code='index_type' or data_input_fields.type_code='index_value' or data_input_fields.type_code='output_type')
and snmp_query.id=" . $snmp_query_array["snmp_query_id"]), "type_code", "id");
$snmp_cache_value = db_fetch_cell("select field_value from host_snmp_cache where host_id='$host_id' and snmp_query_id='" . $snmp_query_array["snmp_query_id"] . "' and field_name='" . $snmp_query_array["snmp_index_on"] . "' and snmp_index='" . $snmp_query_array["snmp_index"] . "'");
/* save the value to index on (ie. ifindex, ifip, etc) */
db_replace("data_input_data",array("data_input_field_id"=>$data_input_field["index_type"],"data_template_data_id"=>$data_template_data_id,"t_value"=>"","value"=>$snmp_query_array["snmp_index_on"]),array("data_input_field_id","data_template_data_id"),true);
/* save the actual value (ie. 3, 192.168.1.101, etc) */
db_replace("data_input_data",array("data_input_field_id"=>$data_input_field["index_value"],"data_template_data_id"=>$data_template_data_id,"t_value"=>"","value"=>addslashes($snmp_cache_value)),array("data_input_field_id","data_template_data_id"),true);
/* set the expected output type (ie. bytes, errors, packets) */
db_replace("data_input_data",array("data_input_field_id"=>$data_input_field["output_type"],"data_template_data_id"=>$data_template_data_id,"t_value"=>"","value"=>$snmp_query_array["snmp_query_graph_id"]),array("data_input_field_id","data_template_data_id"),true);
/* now that we have put data into the 'data_input_data' table, update the snmp cache for ds's */
update_data_source_data_query_cache($cache_array["local_data_id"]{$data_template["id"]});
}
/* suggested values: data source */
if (isset($suggested_values_array[$graph_template_id]["data_template"]{$data_template["id"]})) {
reset($suggested_values_array[$graph_template_id]["data_template"]{$data_template["id"]});
while (list($field_name, $field_value) = each($suggested_values_array[$graph_template_id]["data_template"]{$data_template["id"]})) {
db_execute("update data_template_data set $field_name='$field_value' where local_data_id=" . $cache_array["local_data_id"]{$data_template["id"]});
}
}
/* suggested values: data source item */
if (isset($suggested_values_array[$graph_template_id]["data_template_item"])) {
reset($suggested_values_array[$graph_template_id]["data_template_item"]);
while (list($data_template_item_id, $field_array) = each($suggested_values_array[$graph_template_id]["data_template_item"])) {
while (list($field_name, $field_value) = each($field_array)) {
$data_source_item_id = db_fetch_cell("select id from data_template_rrd where local_data_template_rrd_id=$data_template_item_id and local_data_id=" . $cache_array["local_data_id"]{$data_template["id"]});
db_execute("update data_template_rrd set $field_name='$field_value' where id=$data_source_item_id");
}
}
}
/* suggested values: custom data */
if (isset($suggested_values_array[$graph_template_id]["custom_data"]{$data_template["id"]})) {
reset($suggested_values_array[$graph_template_id]["custom_data"]{$data_template["id"]});
while (list($data_input_field_id, $field_value) = each($suggested_values_array[$graph_template_id]["custom_data"]{$data_template["id"]})) {
db_replace("data_input_data",array("data_input_field_id"=>$data_input_field_id,"data_template_data_id"=>$data_template_data_id,"t_value"=>"","value"=>$field_value),array("data_input_field_id","data_template_data_id"),true);
}
}
update_data_source_title_cache($cache_array["local_data_id"]{$data_template["id"]});
}
}
/* connect the dots: graph -> data source(s) */
$template_item_list = db_fetch_assoc("select
graph_templates_item.id,
data_template_rrd.id as data_template_rrd_id,
data_template_rrd.data_template_id
from (graph_templates_item cross join data_template_rrd)
where graph_templates_item.task_item_id=data_template_rrd.id
and graph_templates_item.graph_template_id=$graph_template_id
and local_graph_id=0
and task_item_id>0");
/* loop through each item affected and update column data */
if (sizeof($template_item_list) > 0) {
foreach ($template_item_list as $template_item) {
$local_data_id = $cache_array["local_data_id"]{$template_item["data_template_id"]};
$graph_template_item_id = db_fetch_cell("select id from graph_templates_item where local_graph_template_item_id=" . $template_item["id"] . " and local_graph_id=" . $cache_array["local_graph_id"]);
$data_template_rrd_id = db_fetch_cell("select id from data_template_rrd where local_data_template_rrd_id=" . $template_item["data_template_rrd_id"] . " and local_data_id=$local_data_id");
if (!empty($data_template_rrd_id)) {
db_execute("update graph_templates_item set task_item_id='$data_template_rrd_id' where id=$graph_template_item_id");
}
}
}
/* this will not work until the ds->graph dots are connected */
if (is_array($snmp_query_array)) {
update_graph_data_query_cache($cache_array["local_graph_id"]);
}
return $cache_array;
}
示例9: form_save
//.........这里部分代码省略.........
$save2['id'] = $_POST['data_template_data_id'];
$save2['local_data_template_data_id'] = $_POST['local_data_template_data_id'];
$save2['data_template_id'] = $_POST['data_template_id'];
$save2['data_input_id'] = form_input_validate($_POST['data_input_id'], 'data_input_id', '', true, 3);
$save2['name'] = form_input_validate($_POST['name'], 'name', '', false, 3);
$save2['data_source_path'] = form_input_validate($_POST['data_source_path'], 'data_source_path', '', true, 3);
$save2['active'] = form_input_validate(isset($_POST['active']) ? $_POST['active'] : '', 'active', '', true, 3);
$save2['rrd_step'] = form_input_validate($_POST['rrd_step'], 'rrd_step', '^[0-9]+$', false, 3);
if (!is_error_message()) {
$local_data_id = sql_save($save1, 'data_local');
$save2['local_data_id'] = $local_data_id;
$data_template_data_id = sql_save($save2, 'data_template_data');
if ($data_template_data_id) {
raise_message(1);
} else {
raise_message(2);
}
}
if (!is_error_message()) {
/* if this is a new data source and a template has been selected, skip item creation this time
otherwise it throws off the templatate creation because of the NULL data */
if (!empty($_POST['local_data_id']) || empty($_POST['data_template_id'])) {
/* if no template was set before the save, there will be only one data source item to save;
otherwise there might be >1 */
if (empty($_POST['_data_template_id'])) {
$rrds[0]['id'] = $_POST['current_rrd'];
} else {
$rrds = db_fetch_assoc_prepared('SELECT id FROM data_template_rrd WHERE local_data_id = ?', array($_POST['local_data_id']));
}
if (sizeof($rrds) > 0) {
foreach ($rrds as $rrd) {
if (empty($_POST['_data_template_id'])) {
$name_modifier = '';
} else {
$name_modifier = '_' . $rrd['id'];
}
$save3['id'] = $rrd['id'];
$save3['local_data_id'] = $local_data_id;
$save3['local_data_template_rrd_id'] = db_fetch_cell_prepared('SELECT local_data_template_rrd_id FROM data_template_rrd WHERE id = ?', array($rrd['id']));
$save3['data_template_id'] = $_POST['data_template_id'];
$save3['rrd_maximum'] = form_input_validate($_POST["rrd_maximum{$name_modifier}"], "rrd_maximum{$name_modifier}", "^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U\$", false, 3);
$save3['rrd_minimum'] = form_input_validate($_POST["rrd_minimum{$name_modifier}"], "rrd_minimum{$name_modifier}", "^(-?([0-9]+(\\.[0-9]*)?|[0-9]*\\.[0-9]+)([eE][+\\-]?[0-9]+)?)|U\$", false, 3);
$save3['rrd_heartbeat'] = form_input_validate($_POST["rrd_heartbeat{$name_modifier}"], "rrd_heartbeat{$name_modifier}", '^[0-9]+$', false, 3);
$save3['data_source_type_id'] = $_POST["data_source_type_id{$name_modifier}"];
$save3['data_source_name'] = form_input_validate($_POST["data_source_name{$name_modifier}"], "data_source_name{$name_modifier}", '^[a-zA-Z0-9_-]{1,19}$', false, 3);
$save3['data_input_field_id'] = form_input_validate(isset($_POST["data_input_field_id{$name_modifier}"]) ? $_POST["data_input_field_id{$name_modifier}"] : '0', "data_input_field_id{$name_modifier}", '', true, 3);
$data_template_rrd_id = sql_save($save3, 'data_template_rrd');
if ($data_template_rrd_id) {
raise_message(1);
} else {
raise_message(2);
}
}
}
}
}
if (!is_error_message()) {
if (!empty($_POST['rra_id'])) {
/* save entries in 'selected rras' field */
db_execute_prepared('DELETE FROM data_template_data_rra WHERE data_template_data_id = ?', array($data_template_data_id));
for ($i = 0; $i < count($_POST['rra_id']); $i++) {
/* ================= input validation ================= */
input_validate_input_number($_POST['rra_id'][$i]);
/* ==================================================== */
db_execute_prepared('INSERT INTO data_template_data_rra (rra_id, data_template_data_id)
VALUES (?, ?)', array($_POST['rra_id'][$i], $data_template_data_id));
}
}
if ($_POST['data_template_id'] != $_POST['_data_template_id']) {
/* update all necessary template information */
change_data_template($local_data_id, $_POST['data_template_id']);
} elseif (!empty($_POST['data_template_id'])) {
update_data_source_data_query_cache($local_data_id);
}
if ($_POST['host_id'] != $_POST['_host_id']) {
/* push out all necessary host information */
push_out_host($_POST['host_id'], $local_data_id);
/* reset current host for display purposes */
$_SESSION['sess_data_source_current_host_id'] = $_POST['host_id'];
}
/* if no data source path has been entered, generate one */
if (empty($_POST['data_source_path'])) {
generate_data_source_path($local_data_id);
}
/* update the title cache */
update_data_source_title_cache($local_data_id);
}
}
/* update the poller cache last to make sure everything is fresh */
if (!is_error_message() && !empty($local_data_id)) {
update_poller_cache($local_data_id, true);
}
if (isset($_POST['save_component_data_source_new']) && empty($_POST['data_template_id'])) {
header('Location: data_sources.php?action=ds_edit&host_id=' . $_POST['host_id'] . '&new=1');
} elseif (is_error_message() || $_POST['data_template_id'] != $_POST['_data_template_id'] || $_POST['data_input_id'] != $_POST['_data_input_id'] || $_POST['host_id'] != $_POST['_host_id']) {
header('Location: data_sources.php?action=ds_edit&id=' . (empty($local_data_id) ? $_POST['local_data_id'] : $local_data_id) . '&host_id=' . $_POST['host_id'] . '&view_rrd=' . (isset($_POST['current_rrd']) ? $_POST['current_rrd'] : '0'));
} else {
header('Location: data_sources.php');
}
}
示例10: create_complete_graph_from_template
function create_complete_graph_from_template($graph_template_id, $host_id, $snmp_query_array, &$suggested_values_array)
{
global $config;
include_once $config["library_path"] . "/data_query.php";
/* create the graph */
$save["id"] = 0;
$save["graph_template_id"] = $graph_template_id;
$save["host_id"] = $host_id;
$cache_array["local_graph_id"] = sql_save($save, "graph_local");
change_graph_template($cache_array["local_graph_id"], $graph_template_id, true);
if (is_array($snmp_query_array)) {
/* suggested values for snmp query code */
$suggested_values = db_fetch_assoc("SELECT text,field_name FROM snmp_query_graph_sv WHERE snmp_query_graph_id=" . $snmp_query_array["snmp_query_graph_id"] . " ORDER BY sequence");
$suggested_values_graph = array();
if (sizeof($suggested_values) > 0) {
foreach ($suggested_values as $suggested_value) {
/* once we find a match; don't try to find more */
if (!isset($suggested_values_graph[$graph_template_id][$suggested_value["field_name"]])) {
$subs_string = substitute_snmp_query_data($suggested_value["text"], $host_id, $snmp_query_array["snmp_query_id"], $snmp_query_array["snmp_index"], read_config_option("max_data_query_field_length"));
/* if there are no '|' characters, all of the substitutions were successful */
if (!strstr($subs_string, "|query")) {
db_execute("UPDATE graph_templates_graph SET " . $suggested_value["field_name"] . "='" . $suggested_value["text"] . "' WHERE local_graph_id=" . $cache_array["local_graph_id"]);
/* once we find a working value, stop */
$suggested_values_graph[$graph_template_id][$suggested_value["field_name"]] = true;
}
}
}
}
}
/* suggested values: graph */
if (isset($suggested_values_array[$graph_template_id]["graph_template"])) {
while (list($field_name, $field_value) = each($suggested_values_array[$graph_template_id]["graph_template"])) {
db_execute("UPDATE graph_templates_graph SET {$field_name}='{$field_value}' WHERE local_graph_id=" . $cache_array["local_graph_id"]);
}
}
/* suggested values: graph item */
if (isset($suggested_values_array[$graph_template_id]["graph_template_item"])) {
while (list($graph_template_item_id, $field_array) = each($suggested_values_array[$graph_template_id]["graph_template_item"])) {
while (list($field_name, $field_value) = each($field_array)) {
$graph_item_id = db_fetch_cell("SELECT id FROM graph_templates_item WHERE local_graph_template_item_id={$graph_template_item_id} AND local_graph_id=" . $cache_array["local_graph_id"]);
db_execute("UPDATE graph_templates_item SET {$field_name}='{$field_value}' WHERE id={$graph_item_id}");
}
}
}
update_graph_title_cache($cache_array["local_graph_id"]);
/* create each data source */
$data_templates = db_fetch_assoc("SELECT\n\t\tdata_template.id,\n\t\tdata_template.name,\n\t\tdata_template_rrd.data_source_name\n\t\tFROM (data_template, data_template_rrd, graph_templates_item)\n\t\tWHERE graph_templates_item.task_item_id=data_template_rrd.id\n\t\tAND data_template_rrd.data_template_id=data_template.id\n\t\tAND data_template_rrd.local_data_id=0\n\t\tAND graph_templates_item.local_graph_id=0\n\t\tAND graph_templates_item.graph_template_id=" . $graph_template_id . "\n\t\tGROUP BY data_template.id\n\t\tORDER BY data_template.name");
if (sizeof($data_templates) > 0) {
foreach ($data_templates as $data_template) {
unset($save);
$save["id"] = 0;
$save["data_template_id"] = $data_template["id"];
$save["host_id"] = $host_id;
$cache_array["local_data_id"][$data_template["id"]] = sql_save($save, "data_local");
change_data_template($cache_array["local_data_id"][$data_template["id"]], $data_template["id"]);
$data_template_data_id = db_fetch_cell("SELECT id FROM data_template_data WHERE local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
if (is_array($snmp_query_array)) {
/* suggested values for snmp query code */
$suggested_values = db_fetch_assoc("SELECT text,field_name FROM snmp_query_graph_rrd_sv WHERE snmp_query_graph_id=" . $snmp_query_array["snmp_query_graph_id"] . " AND data_template_id=" . $data_template["id"] . " ORDER BY sequence");
$suggested_values_ds = array();
if (sizeof($suggested_values) > 0) {
foreach ($suggested_values as $suggested_value) {
/* once we find a match; don't try to find more */
if (!isset($suggested_values_ds[$data_template["id"]][$suggested_value["field_name"]])) {
$subs_string = substitute_snmp_query_data($suggested_value["text"], $host_id, $snmp_query_array["snmp_query_id"], $snmp_query_array["snmp_index"], read_config_option("max_data_query_field_length"));
/* if there are no '|' characters, all of the substitutions were successful */
if (!strstr($subs_string, "|query")) {
if (sizeof(db_fetch_row("show columns FROM data_template_data LIKE '" . $suggested_value["field_name"] . "'"))) {
db_execute("UPDATE data_template_data SET " . $suggested_value["field_name"] . "='" . $suggested_value["text"] . "' WHERE local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
}
/* once we find a working value, stop */
$suggested_values_ds[$data_template["id"]][$suggested_value["field_name"]] = true;
if (sizeof(db_fetch_row("show columns FROM data_template_rrd LIKE '" . $suggested_value["field_name"] . "'")) && !substr_count($subs_string, "|")) {
db_execute("UPDATE data_template_rrd SET " . $suggested_value["field_name"] . "='" . $suggested_value["text"] . "' WHERE local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
}
}
}
}
}
}
if (is_array($snmp_query_array)) {
$data_input_field = array_rekey(db_fetch_assoc("SELECT\n\t\t\t\tdata_input_fields.id,\n\t\t\t\tdata_input_fields.type_code\n\t\t\t\tFROM (snmp_query,data_input,data_input_fields)\n\t\t\t\tWHERE snmp_query.data_input_id=data_input.id\n\t\t\t\tAND data_input.id=data_input_fields.data_input_id\n\t\t\t\tAND (data_input_fields.type_code='index_type'\n\t\t\t\t\tOR data_input_fields.type_code='index_value'\n\t\t\t\t\tOR data_input_fields.type_code='output_type')\n\t\t\t\tAND snmp_query.id=" . $snmp_query_array["snmp_query_id"]), "type_code", "id");
$snmp_cache_value = db_fetch_cell("SELECT field_value\n\t\t\t\tFROM host_snmp_cache\n\t\t\t\tWHERE host_id='{$host_id}'\n\t\t\t\tAND snmp_query_id='" . $snmp_query_array["snmp_query_id"] . "'\n\t\t\t\tAND field_name='" . $snmp_query_array["snmp_index_on"] . "'\n\t\t\t\tAND snmp_index='" . $snmp_query_array["snmp_index"] . "'");
/* save the value to index on (ie. ifindex, ifip, etc) */
db_execute("REPLACE INTO data_input_data\n\t\t\t\t(data_input_field_id, data_template_data_id, t_value, value)\n\t\t\t\tVALUES (" . $data_input_field["index_type"] . ", {$data_template_data_id}, '', '" . $snmp_query_array["snmp_index_on"] . "')");
/* save the actual value (ie. 3, 192.168.1.101, etc) */
db_execute("REPLACE INTO data_input_data\n\t\t\t\t(data_input_field_id,data_template_data_id,t_value,value)\n\t\t\t\tVALUES (" . $data_input_field["index_value"] . ",{$data_template_data_id},'','" . addslashes($snmp_cache_value) . "')");
/* set the expected output type (ie. bytes, errors, packets) */
db_execute("REPLACE INTO data_input_data\n\t\t\t\t(data_input_field_id,data_template_data_id,t_value,value)\n\t\t\t\tVALUES (" . $data_input_field["output_type"] . ",{$data_template_data_id},'','" . $snmp_query_array["snmp_query_graph_id"] . "')");
/* now that we have put data into the 'data_input_data' table, update the snmp cache for ds's */
update_data_source_data_query_cache($cache_array["local_data_id"][$data_template["id"]]);
}
/* suggested values: data source */
if (isset($suggested_values_array[$graph_template_id]["data_template"][$data_template["id"]])) {
reset($suggested_values_array[$graph_template_id]["data_template"][$data_template["id"]]);
while (list($field_name, $field_value) = each($suggested_values_array[$graph_template_id]["data_template"][$data_template["id"]])) {
db_execute("UPDATE data_template_data\n\t\t\t\t\tSET {$field_name}='{$field_value}'\n\t\t\t\t\tWHERE local_data_id=" . $cache_array["local_data_id"][$data_template["id"]]);
}
}
/* suggested values: data source item */
//.........这里部分代码省略.........