本文整理汇总了PHP中api_data_source_remove函数的典型用法代码示例。如果您正苦于以下问题:PHP api_data_source_remove函数的具体用法?PHP api_data_source_remove怎么用?PHP api_data_source_remove使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了api_data_source_remove函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: api_device_remove
function api_device_remove($device_id, $remove_dependencies = false) {
require_once(CACTI_BASE_PATH . "/lib/data_source/data_source_info.php");
require_once(CACTI_BASE_PATH . "/lib/data_source/data_source_update.php");
require_once(CACTI_BASE_PATH . "/lib/graph/graph_update.php");
/* sanity checks */
validate_id_die($device_id, "device_id");
db_execute("delete from host where id = " . sql_sanitize($device_id));
db_execute("delete from host_graph where host_id = " . sql_sanitize($device_id));
db_execute("delete from host_data_query where host_id = " . sql_sanitize($device_id));
db_execute("delete from host_data_query_cache where host_id = " . sql_sanitize($device_id));
db_execute("delete from poller_item where host_id = " . sql_sanitize($device_id));
db_execute("delete from graph_tree_items where host_id = " . sql_sanitize($device_id));
if ($remove_dependencies == true) {
/* obtain a list of all data sources associated with this device */
$data_sources = api_data_source_list(array("host_id" => $device_id));
/* delete each data source associated with this device */
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["id"]);
}
}
/* obtain a list of all graphs associated with this device */
$graphs = api_graph_list(array("host_id" => $device_id));
/* delete each graph associated with this device */
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
api_graph_remove($graph["id"]);
}
}
}else{
/* obtain a list of all data sources associated with this device */
$data_sources = api_data_source_list(array("host_id" => $device_id));
/* disable each data source associated with this device */
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_disable($data_source["id"]);
}
}
}
}
示例2: form_actions
function form_actions() {
global $colors, $graph_actions;
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if ($_POST["drp_action"] == "1") { /* delete */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
if (!isset($_POST["delete_type"])) { $_POST["delete_type"] = 1; }
switch ($_POST["delete_type"]) {
case '2': /* delete all data sources referenced by this graph */
$data_sources = db_fetch_assoc("SELECT " .
"data_template_data.local_data_id " .
"FROM " .
"(data_template_rrd, " .
"data_template_data, " .
"graph_templates_item) " .
"WHERE " .
"graph_templates_item.task_item_id=data_template_rrd.id " .
"AND data_template_rrd.local_data_id=data_template_data.local_data_id " .
"AND graph_templates_item.local_graph_id=" . $selected_items[$i] . " " .
"AND data_template_data.local_data_id > 0");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["local_data_id"]);
}
}
break;
}
api_graph_remove($selected_items[$i]);
}
}elseif ($_POST["drp_action"] == "2") { /* change graph template */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("graph_template_id"));
/* ==================================================== */
change_graph_template($selected_items[$i], $_POST["graph_template_id"], true);
}
}elseif ($_POST["drp_action"] == "3") { /* duplicate */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
duplicate_graph($selected_items[$i], 0, $_POST["title_format"]);
}
}elseif ($_POST["drp_action"] == "4") { /* graph -> graph template */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
graph_to_graph_template($selected_items[$i], $_POST["title_format"]);
}
}elseif (ereg("^tr_([0-9]+)$", $_POST["drp_action"], $matches)) { /* place on tree */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("tree_id"));
input_validate_input_number(get_request_var_post("tree_item_id"));
/* ==================================================== */
api_tree_item_save(0, $_POST["tree_id"], TREE_ITEM_TYPE_GRAPH, $_POST["tree_item_id"], "", $selected_items[$i], read_graph_config_option("default_rra_id"), 0, 0, 0, false);
}
}elseif ($_POST["drp_action"] == "5") { /* change host */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("host_id"));
/* ==================================================== */
db_execute("update graph_local set host_id=" . $_POST["host_id"] . " where id=" . $selected_items[$i]);
update_graph_title_cache($selected_items[$i]);
}
}elseif ($_POST["drp_action"] == "6") { /* reapply suggested naming */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
api_reapply_suggested_graph_title($selected_items[$i]);
update_graph_title_cache($selected_items[$i]);
}
}elseif ($_POST["drp_action"] == "7") { /* resize graphs */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
api_resize_graphs($selected_items[$i], $_POST["graph_width"], $_POST["graph_height"]);
//.........这里部分代码省略.........
示例3: form_actions
function form_actions()
{
global $colors, $ds_actions;
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if ($_POST["drp_action"] == "1") {
/* delete */
if (!isset($_POST["delete_type"])) {
$_POST["delete_type"] = 1;
}
switch ($_POST["delete_type"]) {
case '2':
/* delete all graph items tied to this data source */
$data_template_rrds = db_fetch_assoc("select id from data_template_rrd where " . array_to_sql_or($selected_items, "local_data_id"));
/* loop through each data source item */
if (sizeof($data_template_rrds) > 0) {
foreach ($data_template_rrds as $item) {
db_execute("delete from graph_templates_item where task_item_id=" . $item["id"] . " and local_graph_id > 0");
}
}
break;
case '3':
/* delete all graphs tied to this data source */
$graphs = db_fetch_assoc("select\n\t\t\t\t\t\tgraph_templates_graph.local_graph_id\n\t\t\t\t\t\tfrom (data_template_rrd,graph_templates_item,graph_templates_graph)\n\t\t\t\t\t\twhere graph_templates_item.task_item_id=data_template_rrd.id\n\t\t\t\t\t\tand graph_templates_item.local_graph_id=graph_templates_graph.local_graph_id\n\t\t\t\t\t\tand " . array_to_sql_or($selected_items, "data_template_rrd.local_data_id") . "\n\t\t\t\t\t\tand graph_templates_graph.local_graph_id > 0\n\t\t\t\t\t\tgroup by graph_templates_graph.local_graph_id");
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
api_graph_remove($graph["local_graph_id"]);
}
}
break;
}
for ($i = 0; $i < count($selected_items); $i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
api_data_source_remove($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "2") {
/* change graph template */
for ($i = 0; $i < count($selected_items); $i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("data_template_id"));
/* ==================================================== */
change_data_template($selected_items[$i], $_POST["data_template_id"]);
}
} elseif ($_POST["drp_action"] == "3") {
/* change host */
for ($i = 0; $i < count($selected_items); $i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("host_id"));
/* ==================================================== */
db_execute("update data_local set host_id=" . $_POST["host_id"] . " where id=" . $selected_items[$i]);
push_out_host($_POST["host_id"], $selected_items[$i]);
update_data_source_title_cache($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "4") {
/* duplicate */
for ($i = 0; $i < count($selected_items); $i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
duplicate_data_source($selected_items[$i], 0, $_POST["title_format"]);
}
} elseif ($_POST["drp_action"] == "5") {
/* data source -> data template */
for ($i = 0; $i < count($selected_items); $i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
data_source_to_data_template($selected_items[$i], $_POST["title_format"]);
}
} elseif ($_POST["drp_action"] == "6") {
/* data source enable */
for ($i = 0; $i < count($selected_items); $i++) {
api_data_source_enable($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "7") {
/* data source disable */
for ($i = 0; $i < count($selected_items); $i++) {
api_data_source_disable($selected_items[$i]);
}
}
header("Location: data_sources.php");
exit;
}
/* setup some variables */
$ds_list = "";
$i = 0;
/* loop through each of the graphs selected on the previous page and get more info about them */
while (list($var, $val) = each($_POST)) {
if (ereg("^chk_([0-9]+)\$", $var, $matches)) {
/* ================= input validation ================= */
input_validate_input_number($matches[1]);
/* ==================================================== */
$ds_list .= "<li>" . get_data_source_title($matches[1]) . "<br>";
$ds_array[$i] = $matches[1];
}
//.........这里部分代码省略.........
示例4: form_actions
function form_actions() {
global $colors, $device_actions, $fields_host_edit;
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if ($_POST["drp_action"] == "2") { /* Enable Selected Devices */
for ($i=0;($i<count($selected_items));$i++) {
db_execute("update host set disabled='' where id='" . $selected_items[$i] . "'");
/* update poller cache */
$data_sources = db_fetch_assoc("select id from data_local where host_id='" . $selected_items[$i] . "'");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
update_poller_cache($data_source["id"], false);
}
}
}
}elseif ($_POST["drp_action"] == "3") { /* Disable Selected Devices */
for ($i=0;($i<count($selected_items));$i++) {
db_execute("update host set disabled='on' where id='" . $selected_items[$i] . "'");
/* update poller cache */
db_execute("delete from poller_item where host_id='" . $selected_items[$i] . "'");
db_execute("delete from poller_reindex where host_id='" . $selected_items[$i] . "'");
}
}elseif ($_POST["drp_action"] == "4") { /* change snmp options */
for ($i=0;($i<count($selected_items));$i++) {
reset($fields_host_edit);
while (list($field_name, $field_array) = each($fields_host_edit)) {
if (isset($_POST["t_$field_name"])) {
db_execute("update host set $field_name = '" . $_POST[$field_name] . "' where id='" . $selected_items[$i] . "'");
}
}
push_out_host($selected_items[$i]);
}
}elseif ($_POST["drp_action"] == "5") { /* Clear Statisitics for Selected Devices */
for ($i=0;($i<count($selected_items));$i++) {
db_execute("update host set min_time = '9.99999', max_time = '0', cur_time = '0', avg_time = '0',
total_polls = '0', failed_polls = '0', availability = '100.00'
where id = '" . $selected_items[$i] . "'");
}
}elseif ($_POST["drp_action"] == "1") { /* delete */
for ($i=0; $i<count($selected_items); $i++) {
if (!isset($_POST["delete_type"])) { $_POST["delete_type"] = 2; }
switch ($_POST["delete_type"]) {
case '2': /* delete graphs/data sources tied to this device */
$data_sources = db_fetch_assoc("select
data_local.id as local_data_id
from data_local
where " . array_to_sql_or($selected_items, "data_local.host_id"));
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["local_data_id"]);
}
}
$graphs = db_fetch_assoc("select
graph_local.id as local_graph_id
from graph_local
where " . array_to_sql_or($selected_items, "graph_local.host_id"));
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
api_graph_remove($graph["local_graph_id"]);
}
}
break;
}
api_device_remove($selected_items[$i]);
}
}
header("Location: host.php");
exit;
}
/* setup some variables */
$host_list = ""; $i = 0;
/* loop through each of the host templates selected on the previous page and get more info about them */
while (list($var,$val) = each($_POST)) {
if (ereg("^chk_([0-9]+)$", $var, $matches)) {
$host_list .= "<li>" . db_fetch_cell("select description from host where id=" . $matches[1]) . "<br>";
$host_array[$i] = $matches[1];
}
$i++;
}
include_once("./include/top_header.php");
html_start_box("<strong>" . $device_actions{$_POST["drp_action"]} . "</strong>", "60%", $colors["header_panel"], "3", "center", "");
//.........这里部分代码省略.........
示例5: form_actions
function form_actions()
{
global $colors, $graph_actions;
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if ($_POST["drp_action"] == "1") {
/* delete */
for ($i = 0; $i < count($selected_items); $i++) {
if (!isset($_POST["delete_type"])) {
$_POST["delete_type"] = 1;
}
switch ($_POST["delete_type"]) {
case '2':
/* delete all data sources referenced by this graph */
$data_sources = db_fetch_assoc("select distinct\n\t\t\t\t\t\t\tdata_source.id\n\t\t\t\t\t\t\tfrom data_source_item,data_source,graph_item\n\t\t\t\t\t\t\twhere graph_item.data_source_item_id=data_source_item.id\n\t\t\t\t\t\t\tand data_source_item.data_source_id=data_source.id\n\t\t\t\t\t\t\tand " . array_to_sql_or($selected_items, "graph_item.graph_id") . "\n\t\t\t\t\t\t\torder by data_source.name_cache");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["id"]);
}
}
break;
}
api_graph_remove($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "2") {
/* change graph template */
for ($i = 0; $i < count($selected_items); $i++) {
change_graph_template($selected_items[$i], $_POST["graph_template_id"], true);
}
} elseif ($_POST["drp_action"] == "3") {
/* duplicate */
for ($i = 0; $i < count($selected_items); $i++) {
duplicate_graph($selected_items[$i], 0, $_POST["title_format"]);
}
} elseif ($_POST["drp_action"] == "4") {
/* graph -> graph template */
for ($i = 0; $i < count($selected_items); $i++) {
graph_to_graph_template($selected_items[$i], $_POST["title_format"]);
}
} elseif (ereg("^tr_([0-9]+)\$", $_POST["drp_action"], $matches)) {
/* place on tree */
for ($i = 0; $i < count($selected_items); $i++) {
api_tree_item_save(0, $_POST["tree_id"], TREE_ITEM_TYPE_GRAPH, $_POST["tree_item_id"], "", $selected_items[$i], read_graph_config_option("default_rra_id"), 0, 0, 0, false);
}
} elseif ($_POST["drp_action"] == "5") {
/* change host */
for ($i = 0; $i < count($selected_items); $i++) {
db_execute("update graph set host_id = " . $_POST["host_id"] . " where id = " . $selected_items[$i]);
api_graph_title_cache_update($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "6") {
/* reapply suggested naming */
for ($i = 0; $i < count($selected_items); $i++) {
api_reapply_suggested_graph_title($selected_items[$i]);
api_graph_title_cache_update($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "7") {
/* resize graphs */
for ($i = 0; $i < count($selected_items); $i++) {
api_graph_resize($selected_items[$i], $_POST["graph_width"], $_POST["graph_height"]);
}
}
header("Location: graphs.php");
exit;
}
/* setup some variables */
$graph_list = "";
$i = 0;
/* loop through each of the graphs selected on the previous page and get more info about them */
while (list($var, $val) = each($_POST)) {
if (ereg("^chk_([0-9]+)\$", $var, $matches)) {
$graph_list .= "<li>" . db_fetch_cell("select title_cache from graph where id = " . $matches[1]) . "<br>";
$graph_array[$i] = $matches[1];
}
$i++;
}
require_once CACTI_BASE_PATH . "/include/top_header.php";
html_start_box("<strong>" . $graph_actions[$_POST["drp_action"]] . "</strong>", "60%", $colors["header_panel_background"], "3", "center", "");
print "<form action='graphs.php' method='post'>\n";
if ($_POST["drp_action"] == "1") {
/* delete */
$graphs = array();
/* find out which (if any) data sources are being used by this graph, so we can tell the user */
if (isset($graph_array)) {
$data_sources = db_fetch_assoc("select distinct\n\t\t\t\tdata_source.id,\n\t\t\t\tdata_source.name_cache\n\t\t\t\tfrom data_source_item,data_source,graph_item\n\t\t\t\twhere graph_item.data_source_item_id=data_source_item.id\n\t\t\t\tand data_source_item.data_source_id=data_source.id\n\t\t\t\tand " . array_to_sql_or($graph_array, "graph_item.graph_id") . "\n\t\t\t\torder by data_source.name_cache");
}
print "\t<tr>\n\t\t\t\t<td class='textArea' bgcolor='#" . $colors["form_alternate1"] . "'>\n\t\t\t\t\t<p>" . _("Are you sure you want to delete the following graphs?") . "</p>\n\t\t\t\t\t<p>{$graph_list}</p>\n\t\t\t\t\t";
if (sizeof($data_sources) > 0) {
print "<tr bgcolor='#" . $colors["form_alternate1"] . "'><td class='textArea'><p class='textArea'>" . _("The following data sources are in use by these graphs:") . "</p>\n";
foreach ($data_sources as $data_source) {
print "<strong>" . $data_source["name_cache"] . "</strong><br>\n";
}
print "<br>";
form_radio_button("delete_type", "1", "1", _("Leave the data sources untouched."), "1");
print "<br>";
form_radio_button("delete_type", "1", "2", _("Delete all <strong>data sources</strong> referenced by these graphs."), "1");
print "<br>";
print "</td></tr>";
}
//.........这里部分代码省略.........
示例6: data_source_form_actions
function data_source_form_actions() {
global $colors;
require(CACTI_BASE_PATH . "/include/data_source/data_source_arrays.php");
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if (get_request_var_post("drp_action") === DS_ACTION_DELETE) { /* delete */
if (!isset($_POST["delete_type"])) { $_POST["delete_type"] = 1; }
switch (get_request_var_post("delete_type")) {
case '2': /* delete all graph items tied to this data source */
$data_template_rrds = db_fetch_assoc("select id from data_template_rrd where " . array_to_sql_or($selected_items, "local_data_id"));
/* loop through each data source item */
if (sizeof($data_template_rrds) > 0) {
foreach ($data_template_rrds as $item) {
db_execute("delete from graph_templates_item where task_item_id=" . $item["id"] . " and local_graph_id > 0");
}
}
break;
case '3': /* delete all graphs tied to this data source */
$graphs = db_fetch_assoc("select
graph_templates_graph.local_graph_id
from (data_template_rrd,graph_templates_item,graph_templates_graph)
where graph_templates_item.task_item_id=data_template_rrd.id
and graph_templates_item.local_graph_id=graph_templates_graph.local_graph_id
and " . array_to_sql_or($selected_items, "data_template_rrd.local_data_id") . "
and graph_templates_graph.local_graph_id > 0
group by graph_templates_graph.local_graph_id");
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
api_graph_remove($graph["local_graph_id"]);
}
}
break;
}
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
api_data_source_remove($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_CHANGE_TEMPLATE) { /* change graph template */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("data_template_id"));
/* ==================================================== */
change_data_template($selected_items[$i], get_request_var_post("data_template_id"));
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_CHANGE_HOST) { /* change device */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("device_id"));
/* ==================================================== */
db_execute("update data_local set device_id=" . $_POST["device_id"] . " where id=" . $selected_items[$i]);
push_out_device(get_request_var_post("device_id"), $selected_items[$i]);
update_data_source_title_cache($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_DUPLICATE) { /* duplicate */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
duplicate_data_source($selected_items[$i], 0, get_request_var_post("title_format"));
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_CONVERT_TO_TEMPLATE) { /* data source -> data template */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
data_source_to_data_template($selected_items[$i], get_request_var_post("title_format"));
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_ENABLE) { /* data source enable */
for ($i=0;($i<count($selected_items));$i++) {
api_data_source_enable($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_DISABLE) { /* data source disable */
for ($i=0;($i<count($selected_items));$i++) {
api_data_source_disable($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === DS_ACTION_REAPPLY_SUGGESTED_NAMES) { /* reapply suggested data source naming */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
api_reapply_suggested_data_source_title($selected_items[$i]);
update_data_source_title_cache($selected_items[$i]);
//.........这里部分代码省略.........
示例7: remove_files
function remove_files($file_array)
{
global $config, $debug, $archived, $purged;
include_once $config['library_path'] . '/api_graph.php';
include_once $config['library_path'] . '/api_data_source.php';
maint_debug('RRDClean is now running on ' . sizeof($file_array) . ' items');
/* determine the location of the RRA files */
if (isset($config['rra_path'])) {
$rra_path = $config['rra_path'];
} else {
$rra_path = $config['base_path'] . '/rra';
}
/* let's prepare the archive directory */
$rrd_archive = read_config_option('rrd_archive', TRUE);
if ($rrd_archive == '') {
$rrd_archive = $rra_path . '/archive';
}
rrdclean_create_path($rrd_archive);
/* now scan the files */
foreach ($file_array as $file) {
$source_file = $rra_path . '/' . $file['name'];
switch ($file['action']) {
case '1':
if (unlink($source_file)) {
maint_debug('Deleted: ' . $file['name']);
} else {
cacti_log($file['name'] . " Error: unable to delete from {$rra_path}!", true, 'MAINT');
}
$purged++;
break;
case '3':
$target_file = $rrd_archive . '/' . $file['name'];
$target_dir = dirname($target_file);
if (!is_dir($target_dir)) {
rrdclean_create_path($target_dir);
}
if (rename($source_file, $target_file)) {
maint_debug('Moved: ' . $file['name'] . ' to: ' . $rrd_archive);
} else {
cacti_log($file['name'] . " Error: unable to move to {$rrd_archive}!", true, 'MAINT');
}
$archived++;
break;
}
/* drop from data_source_purge_action table */
db_execute_prepared('DELETE FROM `data_source_purge_action` WHERE name = ?', array($file['name']));
maint_debug('Delete from data_source_purge_action: ' . $file['name']);
//fetch all local_graph_id's according to this data source
$lgis = db_fetch_assoc_prepared('SELECT DISTINCT gl.id
FROM graph_local AS gl
INNER JOIN graph_templates_item AS gti
ON gl.id = gti.local_graph_id
INNER JOIN data_template_rrd AS dtr
ON dtr.id=gti.task_item_id
INNER JOIN data_local AS dl
ON dtr.local_data_id=dl.id
WHERE (local_data_id=?)', array($file['local_data_id']));
if (sizeof($lgis)) {
/* anything found? */
cacti_log('Processing ' . sizeof($lgis) . ' Graphs for data source id: ' . $file['local_data_id'], true, 'MAINT');
/* get them all */
foreach ($lgis as $item) {
$remove_lgis[] = $item['id'];
cacti_log('remove local_graph_id=' . $item['id'], true, 'MAINT');
}
/* and remove them in a single run */
if (!empty($remove_lgis)) {
api_graph_remove_multi($remove_lgis);
}
}
/* remove related data source if any */
if ($file['local_data_id'] > 0) {
cacti_log('removing data source: ' . $file['local_data_id'], true, 'MAINT');
api_data_source_remove($file['local_data_id']);
}
}
cacti_log('RRDClean has finished a purge pass of ' . sizeof($file_array) . ' items', true, 'MAINT');
}
示例8: remove_data_source
function remove_data_source($data_source_id, $dry_run) {
$dry_run ? $dry_run = __("DRY RUN >>>") : $dry_run = "";
/* Verify the data source's existance */
if (!db_fetch_cell("SELECT id FROM data_local WHERE id=$data_source_id")) {
printf(__("ERROR: Unknown Data Source ID (%d)\n"), $data_source_id);
exit (1);
}
/*
* get the data sources and graphs to act on
* (code stolen from data_sources.php)
*/
$graphs = db_fetch_assoc("SELECT graph_templates_graph.local_graph_id " .
"FROM (data_template_rrd,graph_templates_item,graph_templates_graph) " .
"WHERE graph_templates_item.task_item_id=data_template_rrd.id " .
"AND graph_templates_item.local_graph_id=graph_templates_graph.local_graph_id " .
"AND data_template_rrd.local_data_id=$data_source_id " .
"AND graph_templates_graph.local_graph_id > 0 " .
"GROUP BY graph_templates_graph.local_graph_id");
if (sizeof($graphs) > 0) {
echo $dry_run . "\n";
echo __("Delete Graph(s): ");
foreach ($graphs as $graph) {
if ($dry_run) {
printf(__("Graph: %d"), $graph["local_graph_id"]);
} else {
echo $graph["local_graph_id"] . " ";
api_graph_remove($graph["local_graph_id"]);
}
}
echo "\n";
}
if ($dry_run) {
echo $dry_run . "\n";
printf(__("Data Source: %d"), $data_source_id);
} else {
printf(__("Delete Data Source: %d", $data_source_id));
api_data_source_remove($data_source_id);
}
if (is_error_message()) {
echo __(" - ERROR: Failed to remove this data source") . "\n";
exit (1);
} else {
printf(__(" - SUCCESS: Removed data-source-id: (%d)\n"), $data_source_id);
}
}
示例9: form_actions
function form_actions()
{
global $colors, $device_actions, $fields_host_edit;
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if ($_POST["drp_action"] == "2") {
/* Enable Selected Devices */
for ($i = 0; $i < count($selected_items); $i++) {
db_execute("update host set disabled='' where id='" . $selected_items[$i] . "'");
/* update poller cache */
$data_sources = db_fetch_assoc("select id from data_local where host_id='" . $selected_items[$i] . "'");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
update_poller_cache($data_source["id"], false);
}
}
}
} elseif ($_POST["drp_action"] == "3") {
/* Disable Selected Devices */
for ($i = 0; $i < count($selected_items); $i++) {
db_execute("update host set disabled='on' where id='" . $selected_items[$i] . "'");
/* update poller cache */
db_execute("delete from poller_item where host_id='" . $selected_items[$i] . "'");
db_execute("delete from poller_reindex where host_id='" . $selected_items[$i] . "'");
}
} elseif ($_POST["drp_action"] == "4") {
/* change snmp options */
for ($i = 0; $i < count($selected_items); $i++) {
reset($fields_host_edit);
while (list($field_name, $field_array) = each($fields_host_edit)) {
if (isset($_POST["t_{$field_name}"])) {
db_execute("update host set {$field_name} = '" . $_POST[$field_name] . "' where id='" . $selected_items[$i] . "'");
}
}
push_out_host($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "6") {
/* change poller */
for ($i = 0; $i < count($selected_items); $i++) {
reset($fields_host_edit);
while (list($field_name, $field_array) = each($fields_host_edit)) {
if (isset($_POST["t_{$field_name}"])) {
db_execute("update host set {$field_name} = '" . $_POST[$field_name] . "' where id='" . $selected_items[$i] . "'");
}
}
push_out_host($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "7") {
/* change availability options */
for ($i = 0; $i < count($selected_items); $i++) {
reset($fields_host_edit);
while (list($field_name, $field_array) = each($fields_host_edit)) {
if (isset($_POST["t_{$field_name}"])) {
db_execute("update host set {$field_name} = '" . $_POST[$field_name] . "' where id='" . $selected_items[$i] . "'");
}
}
push_out_host($selected_items[$i]);
}
} elseif ($_POST["drp_action"] == "5") {
/* Clear Statisitics for Selected Devices */
for ($i = 0; $i < count($selected_items); $i++) {
db_execute("update host set min_time = '9.99999', max_time = '0', cur_time = '0',\tavg_time = '0',\n\t\t\t\t\t\ttotal_polls = '0', failed_polls = '0',\tavailability = '100.00'\n\t\t\t\t\t\twhere id = '" . $selected_items[$i] . "'");
}
} elseif ($_POST["drp_action"] == "1") {
/* delete */
for ($i = 0; $i < count($selected_items); $i++) {
if (!isset($_POST["delete_type"])) {
$_POST["delete_type"] = 2;
}
switch ($_POST["delete_type"]) {
case '1':
/* leave graphs and data_sources in place, but disable the data sources */
$data_sources = db_fetch_assoc("select id from data_source where " . array_to_sql_or($selected_items, "host_id"));
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_disable($data_source["id"]);
}
}
break;
case '2':
/* delete graphs/data sources tied to this device */
$data_sources = db_fetch_assoc("select id from data_source where " . array_to_sql_or($selected_items, "host_id"));
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["id"]);
}
}
$graphs = db_fetch_assoc("select id from graph where " . array_to_sql_or($selected_items, "host_id"));
if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
api_graph_remove($graph["id"]);
}
}
break;
}
api_device_remove($selected_items[$i]);
}
}
header("Location: devices.php");
//.........这里部分代码省略.........
示例10: remove_files
function remove_files($file_array, $debug)
{
global $config;
include_once $config["library_path"] . "/api_graph.php";
include_once $config["library_path"] . "/api_data_source.php";
cacti_log("RRDClean is now running on " . sizeof($file_array) . " items", true, "RRDCLEAN");
/* determine the location of the RRA files */
if (isset($config["rra_path"])) {
$rra_path = $config["rra_path"];
} else {
$rra_path = $config["base_path"] . "/rra";
}
/* let's prepare the directories */
$rrd_backup = read_config_option("rrd_backup", TRUE);
$rrd_archive = read_config_option("rrd_archive", TRUE);
if ($rrd_backup == "") {
$rrd_backup = $rra_path . "/backup";
}
if ($rrd_archive == "") {
$rrd_archive = $rra_path . "/archive";
}
rrdclean_create_path($rrd_backup);
rrdclean_create_path($rrd_archive);
/* now scan the files */
foreach ($file_array as $file) {
$source_file = $rra_path . "/" . $file["name"];
switch ($file['action']) {
case "1":
if (unlink($source_file)) {
cacti_log("Deleted: " . $file["name"], true, "RRDCLEAN");
} else {
cacti_log($file["name"] . " Error: unable to delete from {$rra_path}!", true, "RRDCLEAN");
}
break;
case "2":
$target_file = $rrd_backup . "/" . $file["name"];
$target_dir = dirname($target_file);
if (!is_dir($target_dir)) {
rrdclean_create_path($target_dir);
}
if (copy($source_file, $target_file)) {
cacti_log("Copied: " . $file["name"] . " to: " . $rrd_backup, true, "RRDCLEAN");
} else {
cacti_log($file["name"] . " Error: unable to save to {$rrd_backup}!", true, "RRDCLEAN");
}
break;
case "3":
$target_file = $rrd_archive . "/" . $file["name"];
$target_dir = dirname($target_file);
if (!is_dir($target_dir)) {
rrdclean_create_path($target_dir);
}
if (rename($source_file, $target_file)) {
cacti_log("Moved: " . $file["name"] . " to: " . $rrd_archive, true, "RRDCLEAN");
} else {
cacti_log($file["name"] . " Error: unable to move to {$rrd_archive}!", true, "RRDCLEAN");
}
break;
}
/* drop from plugin_rrdclean_action table */
$sql = "DELETE FROM `plugin_rrdclean_action` WHERE name = '" . $file["name"] . "'";
db_execute($sql);
if (read_config_option("log_verbosity", TRUE) == POLLER_VERBOSITY_DEBUG) {
cacti_log("delete from plugin_rrdclean_action: " . $file["name"], true, "RRDCLEAN");
}
//fetch all local_graph_id's according to this data source
$lgis = db_fetch_assoc("SELECT DISTINCT " . "graph_local.id " . "FROM " . "graph_local " . "INNER JOIN " . "( " . "( data_template_rrd " . "INNER JOIN graph_templates_item " . "ON data_template_rrd.id=graph_templates_item.task_item_id " . ") " . "INNER JOIN " . "data_local " . "ON data_template_rrd.local_data_id=data_local.id " . ") " . "ON graph_local.id = graph_templates_item.local_graph_id " . "WHERE ( " . "local_data_id=" . $file["local_data_id"] . ")");
if (sizeof($lgis)) {
/* anything found? */
cacti_log("Processing " . sizeof($lgis) . " Graphs for data source id: " . $file["local_data_id"], true, "RRDCLEAN");
/* get them all */
foreach ($lgis as $item) {
$remove_lgis[] = $item['id'];
cacti_log("remove local_graph_id=" . $item['id'], true, "RRDCLEAN");
}
/* and remove them in a single run */
if (!empty($remove_lgis)) {
api_graph_remove_multi($remove_lgis);
}
}
/* remove related data source if any */
if ($file["local_data_id"] > 0) {
cacti_log("removing data source: " . $file["local_data_id"], true, "RRDCLEAN");
api_data_source_remove($file["local_data_id"]);
}
}
cacti_log("RRDClean has finished " . sizeof($file_array) . " items", true, "RRDCLEAN");
}
示例11: graph_remove
function graph_remove ($id, $delete_ds) {
# get the data sources and graphs to act on
if ($delete_ds) {
/* delete all data sources referenced by this graph */
$data_sources = db_fetch_assoc("SELECT
data_template_data.local_data_id
FROM (data_template_rrd,data_template_data,graph_templates_item)
WHERE graph_templates_item.task_item_id=data_template_rrd.id
AND data_template_rrd.local_data_id=data_template_data.local_data_id
AND graph_templates_item.local_graph_id=" . $id . "
AND data_template_data.local_data_id > 0");
echo __("Removing graph and all resources for graph id ") . $id;
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["local_data_id"]);
}
}
} else {
echo __("Removing graph but keeping resources for graph id ") . $id;
}
api_graph_remove($id);
if (is_error_message()) {
echo __(". ERROR: Failed to remove this graph") . "\n";
} else {
echo __(". Success - removed graph-id: (%d)", $id) . "\n";
}
}
示例12: graph_form_actions
function graph_form_actions() {
global $colors;
require(CACTI_BASE_PATH . "/include/graph_tree/graph_tree_arrays.php");
require_once(CACTI_BASE_PATH . "/lib/graph/graph_info.php");
/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));
if (get_request_var_post("drp_action") === GRAPH_ACTION_DELETE) { /* delete */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
if (!isset($_POST["delete_type"])) { $_POST["delete_type"] = 1; }
switch (get_request_var_post("delete_type")) {
case '2': /* delete all data sources referenced by this graph */
$data_sources = db_fetch_assoc("SELECT " .
"data_template_data.local_data_id " .
"FROM " .
"(data_template_rrd, " .
"data_template_data, " .
"graph_templates_item) " .
"WHERE " .
"graph_templates_item.task_item_id=data_template_rrd.id " .
"AND data_template_rrd.local_data_id=data_template_data.local_data_id " .
"AND graph_templates_item.local_graph_id=" . $selected_items[$i] . " " .
"AND data_template_data.local_data_id > 0");
if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["local_data_id"]);
}
}
break;
}
api_graph_remove($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === GRAPH_ACTION_CHANGE_TEMPLATE) { /* change graph template */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("graph_template_id"));
/* ==================================================== */
change_graph_template($selected_items[$i], get_request_var_post("graph_template_id"), true);
}
}elseif (get_request_var_post("drp_action") === GRAPH_ACTION_DUPLICATE) { /* duplicate */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
duplicate_graph($selected_items[$i], 0, get_request_var_post("title_format"));
}
}elseif (get_request_var_post("drp_action") === GRAPH_ACTION_CONVERT_TO_TEMPLATE) { /* graph -> graph template */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
graph_to_graph_template($selected_items[$i], get_request_var_post("title_format"));
}
}elseif (preg_match("/^tr_([0-9]+)$/", get_request_var_post("drp_action"), $matches)) { /* place on tree */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("tree_id"));
input_validate_input_number(get_request_var_post("tree_item_id"));
/* ==================================================== */
api_tree_item_save(0, get_request_var_post("tree_id"), TREE_ITEM_TYPE_GRAPH, get_request_var_post("tree_item_id"), "", $selected_items[$i], read_graph_config_option("default_rra_id"), 0, 0, 0, false);
}
}elseif (get_request_var_post("drp_action") === GRAPH_ACTION_CHANGE_HOST) { /* change device */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("device_id"));
/* ==================================================== */
db_execute("update graph_local set device_id=" . $_POST["device_id"] . " where id=" . $selected_items[$i]);
update_graph_title_cache($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === GRAPH_ACTION_REAPPLY_SUGGESTED_NAMES) { /* reapply suggested naming */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */
api_reapply_suggested_graph_title($selected_items[$i]);
update_graph_title_cache($selected_items[$i]);
}
}elseif (get_request_var_post("drp_action") === GRAPH_ACTION_RESIZE) { /* resize graphs */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
//.........这里部分代码省略.........