function delete_node($nodeid) { $result = false; $node = DBfetch(DBselect('SELECT n.nodeid,n.masterid FROM nodes n WHERE n.nodeid=' . zbx_dbstr($nodeid))); $nodetype = detect_node_type($node['nodeid'], $node['masterid']); if ($nodetype == ZBX_NODE_LOCAL) { error(_('Unable to remove local node.')); } else { $result = DBexecute('UPDATE nodes SET masterid=NULL WHERE masterid=' . zbx_dbstr($nodeid)) && DBexecute('DELETE FROM nodes WHERE nodeid=' . zbx_dbstr($nodeid)); if ($nodetype != ZBX_NODE_MASTER) { error(_('Please be aware that database still contains data related to the deleted node.')); } } return $result; }
else if ($action != "last") debug_log("$action");*/ srand(make_seed()); // BFL - Big F*****g Lock if (!in_array($action, $skip_bfl)) { bfl_lock(); } $users = array(); read_files(); // Second param is always username if ($argc > 2) { $username = trim($argv[2]); $username = preg_replace("/\\s/", "", $username); // No whitespace in username $userdata = setup_paths($username); } detect_node_type(); // ACTIONS switch ($action) { // Login or create user case "login": $password = $argv[3]; if (array_key_exists($username, $users)) { if ($users[$username]["status"] == "active") { debug_log("already logged in {$username}"); print $users[$username]["port"]; // Already logged in, print port } else { if ($users[$username]["status"] == "inactive") { activate_user($username, $password); } }
function insert_node_form() { global $ZBX_CURMASTERID; $frm_title = S_NODE; if (isset($_REQUEST['nodeid'])) { $node_data = get_node_by_nodeid($_REQUEST['nodeid']); $node_type = detect_node_type($node_data); $masterid = $node_data['masterid']; $frm_title = S_NODE . ' "' . $node_data['name'] . '"'; } $frmNode = new CFormTable($frm_title); $frmNode->SetHelp("node.php"); if (isset($_REQUEST['nodeid'])) { $frmNode->addVar('nodeid', $_REQUEST['nodeid']); } if (isset($_REQUEST['nodeid']) && (!isset($_REQUEST["form_refresh"]) || isset($_REQUEST["register"]))) { $new_nodeid = $node_data['nodeid']; $name = $node_data['name']; $timezone = $node_data['timezone']; $ip = $node_data['ip']; $port = $node_data['port']; $slave_history = $node_data['slave_history']; $slave_trends = $node_data['slave_trends']; } else { $new_nodeid = get_request('new_nodeid', 0); $name = get_request('name', ''); $timezone = get_request('timezone', 0); $ip = get_request('ip', '127.0.0.1'); $port = get_request('port', 10051); $slave_history = get_request('slave_history', 90); $slave_trends = get_request('slave_trends', 365); $node_type = get_request('node_type', ZBX_NODE_REMOTE); $masterid = get_request('masterid', get_current_nodeid(false)); } $master_node = DBfetch(DBselect('SELECT name FROM nodes WHERE nodeid=' . $masterid)); $frmNode->addRow(S_NAME, new CTextBox('name', $name, 40)); $frmNode->addRow(S_ID, new CNumericBox('new_nodeid', $new_nodeid, 10)); if (!isset($_REQUEST['nodeid'])) { $cmbNodeType = new CComboBox('node_type', $node_type, 'submit()'); $cmbNodeType->addItem(ZBX_NODE_REMOTE, S_REMOTE); if ($ZBX_CURMASTERID == 0) { $cmbNodeType->addItem(ZBX_NODE_MASTER, S_MASTER); } } else { $cmbNodeType = new CTextBox('node_type_name', node_type2str($node_type), null, 'yes'); } $frmNode->addRow(S_TYPE, $cmbNodeType); if ($node_type == ZBX_NODE_REMOTE) { $frmNode->addRow(S_MASTER_NODE, new CTextBox('master_name', $master_node['name'], 40, 'yes')); } $cmbTimeZone = new CComboBox('timezone', $timezone); for ($i = -12; $i <= 13; $i++) { $cmbTimeZone->addItem($i, "GMT" . sprintf("%+03d:00", $i)); } $frmNode->addRow(S_TIME_ZONE, $cmbTimeZone); $frmNode->addRow(S_IP, new CTextBox('ip', $ip, 15)); $frmNode->addRow(S_PORT, new CNumericBox('port', $port, 5)); $frmNode->addRow(S_DO_NOT_KEEP_HISTORY_OLDER_THAN, new CNumericBox('slave_history', $slave_history, 6)); $frmNode->addRow(S_DO_NOT_KEEP_TRENDS_OLDER_THAN, new CNumericBox('slave_trends', $slave_trends, 6)); $frmNode->addItemToBottomRow(new CButton('save', S_SAVE)); if (isset($_REQUEST['nodeid']) && $node_type != ZBX_NODE_LOCAL) { $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonDelete("Delete selected node?", url_param("form") . url_param("nodeid"))); } $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonCancel(url_param("config"))); $frmNode->Show(); }
function delete_node($nodeid) { $result = false; $node_data = DBfetch(DBselect('select * from nodes where nodeid=' . $nodeid)); $node_type = detect_node_type($node_data); if ($node_type == ZBX_NODE_LOCAL) { error(S_UNABLE_TO_REMOVE_LOCAL_NODE); } else { // $housekeeperid = get_dbid('housekeeper','housekeeperid'); $result = DBexecute('delete from nodes where nodeid=' . $nodeid) && DBexecute('update nodes set masterid=0 where masterid=' . $nodeid); error(S_DATABASE_STILL_CONTAINS_DATA_RELATED_DELETED_NODE); } return $result; }
function delete_node($nodeid) { $result = false; $node_data = DBfetch(DBselect('select * from nodes where nodeid=' . $nodeid)); $node_type = detect_node_type($node_data); if ($node_type == ZBX_NODE_LOCAL) { error('Unable to remove local node'); } else { $housekeeperid = get_dbid('housekeeper', 'housekeeperid'); $result = DBexecute("insert into housekeeper (housekeeperid,tablename,field,value)" . " values ({$housekeeperid},'nodes','nodeid',{$nodeid})") && DBexecute('delete from nodes where nodeid=' . $nodeid) && DBexecute('update nodes set masterid=0 where masterid=' . $nodeid); error('Please be aware that database still contains data related to the deleted Node'); } return $result; }
$has_master = !$master_node ? true : false; $frmNode = new CFormTable($frm_title); $frmNode->setHelp('node.php'); if (isset($_REQUEST['nodeid'])) { $frmNode->addVar('nodeid', $_REQUEST['nodeid']); } if (isset($_REQUEST['nodeid']) && !isset($_REQUEST['form_refresh'])) { $new_nodeid = $node_data['nodeid']; $name = $node_data['name']; $timezone = $node_data['timezone']; $ip = $node_data['ip']; $port = $node_data['port']; $slave_history = $node_data['slave_history']; $slave_trends = $node_data['slave_trends']; $masterid = $node_data['masterid']; $node_type = detect_node_type($node_data); } else { $new_nodeid = get_request('new_nodeid', 0); $name = get_request('name', ''); $timezone = get_request('timezone', 0); $ip = get_request('ip', '127.0.0.1'); $port = get_request('port', 10051); $slave_history = get_request('slave_history', 90); $slave_trends = get_request('slave_trends', 365); $node_type = get_request('node_type', ZBX_NODE_CHILD); $masterid = get_request('masterid', get_current_nodeid(false)); } $frmNode->addRow(S_NAME, new CTextBox('name', $name, 40)); $frmNode->addRow(S_ID, new CNumericBox('new_nodeid', $new_nodeid, 10)); if (isset($_REQUEST['nodeid'])) { $cmbNodeType = new CTextBox('node_type_name', node_type2str($node_type), null, 'yes');
$cmbTimeZone = new CComboBox('timezone', $timezone); for ($i = -12; $i <= 13; $i++) { $cmbTimeZone->addItem($i, 'GMT' . sprintf('%+03d:00', $i)); } $frmNode->addRow(S_TIME_ZONE, $cmbTimeZone); $frmNode->addRow(S_IP, new CTextBox('ip', $ip, 15)); $frmNode->addRow(S_PORT, new CNumericBox('port', $port, 5)); $frmNode->addRow(S_DO_NOT_KEEP_HISTORY_OLDER_THAN, new CNumericBox('slave_history', $slave_history, 6)); $frmNode->addRow(S_DO_NOT_KEEP_TRENDS_OLDER_THAN, new CNumericBox('slave_trends', $slave_trends, 6)); $frmNode->addItemToBottomRow(new CButton('save', S_SAVE)); if (isset($_REQUEST['nodeid']) && $node_type != ZBX_NODE_LOCAL) { $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonDelete('Delete selected node?', url_param('form') . url_param('nodeid'))); } $frmNode->addItemToBottomRow(SPACE); $frmNode->addItemToBottomRow(new CButtonCancel(url_param('config'))); $frmNode->Show(); } else { show_table_header(S_NODES_BIG); $table = new CTableInfo(S_NO_NODES_DEFINED); $table->SetHeader(array(make_sorting_link(S_ID, 'n.nodeid'), make_sorting_link(S_NAME, 'n.name'), make_sorting_link(S_TYPE, 'n.nodetype'), make_sorting_link(S_TIME_ZONE, 'n.timezone'), make_sorting_link(S_IP . ':' . S_PORT, 'n.ip'))); $sql = 'SELECT n.* ' . ' FROM nodes n' . ' WHERE ' . DBcondition('n.nodeid', $available_nodes) . order_by('n.nodeid,n.name,n.nodetype,n.timezone,n.ip', 'n.masterid'); $db_nodes = DBselect($sql); while ($row = DBfetch($db_nodes)) { $node_type = detect_node_type($row); $node_type_name = node_type2str($node_type); $table->AddRow(array($row['nodeid'], array(get_node_path($row['masterid']), new CLink($row['nodetype'] ? new CSpan($row['name'], 'bold') : $row['name'], '?&form=update&nodeid=' . $row['nodeid'], 'action')), $node_type == ZBX_NODE_LOCAL ? new CSpan($node_type_name, 'bold') : $node_type_name, new CSpan('GMT' . sprintf('%+03d:00', $row['timezone']), $row['nodetype'] ? 'bold' : null), new CSpan($row['ip'] . ':' . $row['port'], $row['nodetype'] ? 'bold' : null))); } $table->Show(); } include_once 'include/page_footer.php';