function api_device_save($device_id, &$_fields_device) { require_once(CACTI_BASE_PATH . "/lib/device/device_info.php"); /* sanity checks */ validate_id_die($device_id, "device_id", true); /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $device_id); /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_device, api_device_form_list()); /* check for an empty field list */ if (sizeof($_fields) == 1) { return true; } if (db_replace("host", $_fields, array("id"))) { if (empty($device_id)) { return db_fetch_insert_id(); }else{ return $device_id; } }else{ return false; } }
function api_data_preset_gprint_save($data_preset_gprint_id, $_fields_data_preset_gprint) { require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_gprint_info.php"); /* sanity checks */ validate_id_die($data_preset_gprint_id, "data_preset_gprint_id", true); /* make sure that there is at least one field to save */ if (sizeof($_fields_data_preset_gprint) == 0) { return false; } /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $data_preset_gprint_id); /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_data_preset_gprint, api_data_preset_gprint_form_list()); if (db_replace("preset_gprint", $_fields, array("id"))) { if (empty($data_preset_gprint_id)) { $data_preset_gprint_id = db_fetch_insert_id(); } return $data_preset_gprint_id; }else{ return false; } }
function api_data_query_field_save($data_query_field_id, &$_fields_data_query_fields) { require_once(CACTI_BASE_PATH . "/lib/data_query/data_query_info.php"); /* sanity check for $data_query_field_id */ if (!is_numeric($data_query_field_id)) { return false; } /* sanity check for $data_query_id */ if ((empty($data_query_field_id)) && (empty($_fields_data_query_fields["data_query_id"]))) { log_save("Required data_query_id when data_query_field_id = 0", SEV_ERROR); return false; } else if ((isset($_fields_data_query_fields["data_query_id"])) && (!is_numeric($_fields_data_query_fields["data_query_id"]))) { return false; } /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $data_query_field_id); /* field: graph_id */ if (!empty($_fields_data_query_fields["data_query_id"])) { $_fields["data_query_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_data_query_fields["data_query_id"]); } /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_data_query_fields, api_data_query_field_form_list()); /* check for an empty field list */ if (sizeof($_fields) == 1) { return true; } if (db_replace("data_query_field", $_fields, array("id"))) { if (empty($data_query_field_id)) { return db_fetch_insert_id(); }else{ return $data_query_field_id; } }else{ return false; } }
function api_data_preset_rra_item_save($data_preset_rra_item_id, $_fields_data_preset_rra_item) { require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_rra_info.php"); /* sanity checks */ validate_id_die($data_preset_rra_item_id, "data_preset_rra_item_id", true); /* make sure that there is at least one field to save */ if (sizeof($_fields_data_preset_rra_item) == 0) { return false; } /* sanity check for $preset_rra_id */ if ((empty($data_preset_rra_item_id)) && (empty($_fields_data_preset_rra_item["preset_rra_id"]))) { log_save("Required preset_rra_id when data_preset_rra_item_id = 0", SEV_ERROR); return false; } else if ((isset($_fields_data_preset_rra_item["preset_rra_id"])) && (!db_integer_validate($_fields_data_preset_rra_item["preset_rra_id"]))) { return false; } /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $data_preset_rra_item_id); /* field: preset_rra_id */ if (!empty($_fields_data_preset_rra_item["preset_rra_id"])) { $_fields["preset_rra_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_data_preset_rra_item["preset_rra_id"]); } /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_data_preset_rra_item, api_data_preset_rra_item_form_list()); if (db_replace("preset_rra_item", $_fields, array("id"))) { if (empty($data_preset_rra_item_id)) { $data_preset_rra_item_id = db_fetch_insert_id(); } return $data_preset_rra_item_id; }else{ return false; } }
function api_graph_tree_item_save($graph_tree_item_id, &$_fields_graph_tree_item) { require_once(CACTI_BASE_PATH . "/include/graph_tree/graph_tree_constants.php"); require_once(CACTI_BASE_PATH . "/lib/graph_tree/graph_tree_utility.php"); require_once(CACTI_BASE_PATH . "/lib/graph_tree/graph_tree_info.php"); /* sanity checks */ validate_id_die($graph_tree_item_id, "graph_tree_item_id", true); /* sanity check for $graph_tree_id */ if ((empty($graph_tree_item_id)) && (empty($_fields_graph_tree_item["graph_tree_id"]))) { log_save("Required graph_tree_id when graph_tree_item_id = 0", SEV_ERROR); return false; }else if ((isset($_fields_graph_tree_item["graph_tree_id"])) && (!db_integer_validate($_fields_graph_tree_item["graph_tree_id"]))) { return false; } /* sanity check for $item_type */ if ((!isset($_fields_graph_tree_item["item_type"])) || (!db_integer_validate($_fields_graph_tree_item["item_type"]))) { log_save("Missing required item_type", SEV_ERROR); return false; } /* sanity check for $item_value */ if ((empty($graph_tree_item_id)) && (empty($_fields_graph_tree_item["item_value"]))) { log_save("Required item_value when graph_tree_item_id = 0", SEV_ERROR); return false; }else if ((isset($_fields_graph_tree_item["item_value"])) && ( (($_fields_graph_tree_item["item_type"] == TREE_ITEM_TYPE_GRAPH) || ($_fields_graph_tree_item["item_type"] == TREE_ITEM_TYPE_HOST)) && (!db_integer_validate($_fields_graph_tree_item["item_value"])) )) { return false; } /* sanity check for $parent_item_id */ if ((!isset($_fields_graph_tree_item["parent_item_id"])) || (!db_integer_validate($_fields_graph_tree_item["parent_item_id"], true))) { log_save("Missing required parent_item_id", SEV_ERROR); return false; } /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $graph_tree_item_id); /* field: graph_tree_id */ if (isset($_fields_graph_tree_item["graph_tree_id"])) { $_fields["graph_tree_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_graph_tree_item["graph_tree_id"]); } /* get a copy of the parent tree item id */ if ($_fields_graph_tree_item["parent_item_id"] == "0") { $parent_order_key = ""; $parent_sort_type = TREE_ORDERING_NONE; }else{ $parent_graph_tree_item = api_graph_tree_item_get($_fields_graph_tree_item["parent_item_id"]); $parent_order_key = $parent_graph_tree_item["order_key"]; $parent_sort_type = $parent_graph_tree_item["sort_children_type"]; } /* generate a new order key if this is a new graph tree item */ if (empty($graph_tree_item_id)) { $_fields["order_key"] = array("type" => DB_TYPE_STRING, "value" => api_graph_tree_item_available_order_key_get($_fields_graph_tree_item["graph_tree_id"], $parent_order_key)); }else{ $graph_tree_item = api_graph_tree_item_get($graph_tree_item_id); $_fields["order_key"] = array("type" => DB_TYPE_STRING, "value" => $graph_tree_item["order_key"]); } /* if this item is a graph, make sure it is not being added to the same branch twice */ $search_key = substr($parent_order_key, 0, (api_graph_tree_item_depth_get($parent_order_key) * CHARS_PER_TIER)); if (($_fields_graph_tree_item["item_type"] == TREE_ITEM_TYPE_GRAPH) && (sizeof(db_fetch_assoc("select id from graph_tree_items where item_value = " . $_fields_graph_tree_item["item_value"] . " and item_type = " . TREE_ITEM_TYPE_GRAPH . " and graph_tree_id = " . $_fields_graph_tree_item["graph_tree_id"] . " and order_key like '$search_key" . str_repeat('_', CHARS_PER_TIER) . str_repeat('0', (MAX_TREE_DEPTH * CHARS_PER_TIER) - (strlen($search_key) + CHARS_PER_TIER)) . "'")) > 0)) { return true; } /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_graph_tree_item, api_graph_tree_item_form_list()); /* check for an empty field list */ if (sizeof($_fields) == 1) { return true; } if (db_replace("graph_tree_items", $_fields, array("id"))) { if (empty($graph_tree_item_id)) { $graph_tree_item_id = db_fetch_insert_id(); } /* re-parent the branch if the parent item has changed */ if ($_fields_graph_tree_item["parent_item_id"] != api_graph_tree_item_parent_get_bykey($_fields["order_key"]["value"], $_fields_graph_tree_item["graph_tree_id"])) { api_graph_tree_item_reparent($graph_tree_item_id, $_fields_graph_tree_item["parent_item_id"]); } $parent_tree = api_graph_tree_get($_fields_graph_tree_item["graph_tree_id"]); /* tree item ordering */ if ($parent_tree["sort_type"] == TREE_ORDERING_NONE) { /* resort our parent */ if ($parent_sort_type != TREE_ORDERING_NONE) { echo $parent_sort_type; api_graph_tree_item_sort(SORT_TYPE_TREE_ITEM, $_fields_graph_tree_item["parent_item_id"], $parent_sort_type); } /* if this is a header, sort direct children */ if (($_fields_graph_tree_item["item_type"] == TREE_ITEM_TYPE_HEADER) && ($parent_sort_type != TREE_ORDERING_NONE)) { api_graph_tree_item_sort(SORT_TYPE_TREE_ITEM, $graph_tree_item_id, $parent_sort_type); } /* tree ordering */ }else{ /* potential speed savings for large trees */ if (api_graph_tree_item_depth_get($_fields["order_key"]["value"]) == 1) { api_graph_tree_item_sort(SORT_TYPE_TREE, $_fields_graph_tree_item["graph_tree_id"], $parent_tree["sort_type"]); }else{ api_graph_tree_item_sort(SORT_TYPE_TREE_ITEM, $_fields_graph_tree_item["parent_item_id"], $parent_tree["sort_type"]); } } /* if the user checked the 'Propagate Changes' box */ if (($_fields_graph_tree_item["item_type"] == TREE_ITEM_TYPE_HEADER) && (isset($_fields_graph_tree_item["sort_children_type"])) && (!empty($_fields_graph_tree_item["propagate_changes"]))) { $graph_tree_items = api_graph_tree_item_list($_fields_graph_tree_item["graph_tree_id"], array("item_type" => TREE_ITEM_TYPE_HEADER), $graph_tree_item_id, false, false); if (is_array($graph_tree_items) > 0) { foreach ($graph_tree_items as $graph_tree_item) { db_update("graph_tree_items", array( "id" => array("type" => DB_TYPE_INTEGER, "value" => $graph_tree_item["id"]), "sort_children_type" => array("type" => DB_TYPE_INTEGER, "value" => $_fields_graph_tree_item["sort_children_type"]) ), array("id")); if ($_fields_graph_tree_item["sort_children_type"] != TREE_ORDERING_NONE) { api_graph_tree_item_sort(SORT_TYPE_TREE_ITEM, $graph_tree_item["id"], $_fields_graph_tree_item["sort_children_type"]); } } } } return $graph_tree_item_id; }else{ return false; } }
function api_data_source_item_save($data_source_item_id, &$_fields_data_source_item) { require_once(CACTI_BASE_PATH . "/lib/data_source/data_source_info.php"); /* sanity checks */ validate_id_die($data_source_item_id, "data_source_item_id", true); /* sanity check for $data_source_id */ if ((empty($data_source_item_id)) && (empty($_fields_data_source_item["data_source_id"]))) { log_save("Required data_source_id when data_source_item_id = 0", SEV_ERROR); return false; } else if ((isset($_fields_data_source_item["data_source_id"])) && (!is_numeric($_fields_data_source_item["data_source_id"]))) { return false; } /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $data_source_item_id); /* field: data_source_id */ if (!empty($_fields_data_source_item["data_source_id"])) { $_fields["data_source_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_data_source_item["data_source_id"]); } /* field: data_template_item_id */ if (!empty($_fields_data_source_item["data_template_item_id"])) { $_fields["data_template_item_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_data_source_item["data_template_item_id"]); } /* field: field_input_value */ if (isset($_fields_data_source_item["field_input_value"])) { $_fields["field_input_value"] = array("type" => DB_TYPE_STRING, "value" => $_fields_data_source_item["field_input_value"]); } /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_data_source_item, api_data_source_item_form_list()); /* check for an empty field list */ if (sizeof($_fields) == 1) { return true; } if (db_replace("data_source_item", $_fields, array("id"))) { if (!empty($_fields_data_source_item["data_source_id"])) { /* since the data source path is based in part on the data source item name, it makes sense * to update it here */ api_data_source_path_get_update($_fields_data_source_item["data_source_id"]); } return true; }else{ return false; } }
function api_graph_item_save($graph_item_id, &$_fields_graph_item) { require_once(CACTI_BASE_PATH . "/lib/sys/sequence.php"); require_once(CACTI_BASE_PATH . "/lib/graph/graph_info.php"); /* sanity check for $graph_item_id */ if (!is_numeric($graph_item_id)) { return false; } /* sanity check for $graph_id */ if ((empty($graph_item_id)) && (empty($_fields_graph_item["graph_id"]))) { log_save("Required graph_id when graph_item_id = 0", SEV_ERROR); return false; } else if ((isset($_fields_graph_item["graph_id"])) && (!is_numeric($_fields_graph_item["graph_id"]))) { return false; } /* field: id */ $_fields["id"] = array("type" => DB_TYPE_INTEGER, "value" => $graph_item_id); /* field: graph_id */ if (!empty($_fields_graph_item["graph_id"])) { $_fields["graph_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_graph_item["graph_id"]); } /* field: graph_template_item_id */ if (isset($_fields_graph_item["graph_template_item_id"])) { $_fields["graph_template_item_id"] = array("type" => DB_TYPE_INTEGER, "value" => $_fields_graph_item["graph_template_item_id"]); } /* field: sequence */ if (empty($graph_item_id)) { $_fields["sequence"] = array("type" => DB_TYPE_INTEGER, "value" => seq_get_current($_fields_graph_item["id"], "sequence", "graph_item", "graph_id = " . sql_sanitize($_fields_graph_item["graph_id"]))); } /* check for an empty field list */ if (sizeof($_fields) == 1) { return true; } /* convert the input array into something that is compatible with db_replace() */ $_fields += sql_get_database_field_array($_fields_graph_item, api_graph_item_form_list()); if (db_replace("graph_item", $_fields, array("id"))) { return true; }else{ return false; } }