diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | frontends/php/include/forms.inc.php | 4 | ||||
-rw-r--r-- | frontends/php/include/nodes.inc.php | 23 | ||||
-rw-r--r-- | frontends/php/nodes.php | 10 |
4 files changed, 25 insertions, 13 deletions
@@ -1,5 +1,6 @@ Changes for 1.3.4: + - added possibility to add Node with pre-defined NodeID (Eugene) - support of macros in remote commands (Alexei) - minor fix for simple checks (Alexei) - fixed calculation of some functions where item is integer. (Alexei) diff --git a/frontends/php/include/forms.inc.php b/frontends/php/include/forms.inc.php index 5adf0938..919d9955 100644 --- a/frontends/php/include/forms.inc.php +++ b/frontends/php/include/forms.inc.php @@ -402,6 +402,7 @@ 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']; @@ -411,6 +412,7 @@ } 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'); @@ -426,6 +428,8 @@ $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()'); diff --git a/frontends/php/include/nodes.inc.php b/frontends/php/include/nodes.inc.php index 9c296ca8..967e2421 100644 --- a/frontends/php/include/nodes.inc.php +++ b/frontends/php/include/nodes.inc.php @@ -46,7 +46,7 @@ return $result; } - function add_node($name,$timezone,$ip,$port,$slave_history,$slave_trends,$node_type) + function add_node($new_nodeid,$name,$timezone,$ip,$port,$slave_history,$slave_trends,$node_type) { global $ZBX_CURNODEID, $ZBX_CURMASTERID; @@ -75,25 +75,30 @@ break; } - $nodeid = DBfetch(DBselect('select max(nodeid) as max from nodes')); - $nodeid = $nodeid['max'] + 1; + if(DBfetch(DBselect('select nodeid from nodes where nodeid='.$new_nodeid))) + { + error('Node with same ID already exist.'); + return false; + } + $result = DBexecute('insert into nodes (nodeid,name,timezone,ip,port,slave_history,slave_trends,'. 'event_lastid,history_lastid,nodetype,masterid) values ('. - $nodeid.','.zbx_dbstr($name).','.$timezone.','.zbx_dbstr($ip).','.$port.','.$slave_history.','.$slave_trends.','. + $new_nodeid.','.zbx_dbstr($name).','.$timezone.','.zbx_dbstr($ip).','.$port.','.$slave_history.','.$slave_trends.','. '0,0,'.$nodetype.','.$masterid.')'); if($result && $node_type == ZBX_NODE_MASTER) { - DBexecute('update nodes set masterid='.$nodeid.' where nodeid='.$ZBX_CURNODEID); - $ZBX_CURMASTERID = $nodeid; /* applay Master node for this script */ + DBexecute('update nodes set masterid='.$new_nodeid.' where nodeid='.$ZBX_CURNODEID); + $ZBX_CURMASTERID = $new_nodeid; /* applay Master node for this script */ } - return ($result ? $nodeid : $result); + return ($result ? $new_nodeid : $result); } - function update_node($nodeid,$name,$timezone,$ip,$port,$slave_history,$slave_trends) + function update_node($nodeid,$new_nodeid,$name,$timezone,$ip,$port,$slave_history,$slave_trends) { - $result = DBexecute('update nodes set name='.zbx_dbstr($name).',timezone='.$timezone.',ip='.zbx_dbstr($ip).',port='.$port.','. + $result = DBexecute('update nodes set nodeid='.$new_nodeid.',name='.zbx_dbstr($name).','. + 'timezone='.$timezone.',ip='.zbx_dbstr($ip).',port='.$port.','. 'slave_history='.$slave_history.',slave_trends='.$slave_trends. ' where nodeid='.$nodeid); return $result; diff --git a/frontends/php/nodes.php b/frontends/php/nodes.php index 9d0ce999..c215251c 100644 --- a/frontends/php/nodes.php +++ b/frontends/php/nodes.php @@ -36,6 +36,7 @@ include_once "include/page_header.php"; // media form "nodeid"=> array(T_ZBX_INT, O_NO, null, DB_ID, '{form}=="update"'), + "new_nodeid"=> array(T_ZBX_INT, O_OPT, null, DB_ID, 'isset({save})'), "name"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, 'isset({save})'), "timezone"=> array(T_ZBX_INT, O_OPT, null, BETWEEN(-12,+13), 'isset({save})'), "ip"=> array(T_ZBX_IP, O_OPT, null, null, 'isset({save})'), @@ -57,7 +58,7 @@ include_once "include/page_header.php"; $accessible_nodes = get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_LIST); - if(isset($_REQUEST["nodeid"]) && !in_array($_REQUEST["nodeid"], explode(',',$accessible_nodes))) + if(!in_array($ZBX_CURNODEID, explode(',',$accessible_nodes))) { access_deny(); } @@ -69,7 +70,7 @@ include_once "include/page_header.php"; if(isset($_REQUEST['nodeid'])) { /* update */ $audit_action = AUDIT_ACTION_UPDATE; - $result = update_node($_REQUEST['nodeid'], + $result = update_node($_REQUEST['nodeid'],$_REQUEST['new_nodeid'], $_REQUEST['name'], $_REQUEST['timezone'], $_REQUEST['ip'], $_REQUEST['port'], $_REQUEST['slave_history'], $_REQUEST['slave_trends']); $nodeid = $_REQUEST['nodeid']; @@ -78,7 +79,7 @@ include_once "include/page_header.php"; else { /* add */ $audit_action = AUDIT_ACTION_ADD; - $result = add_node( + $result = add_node($_REQUEST['new_nodeid'], $_REQUEST['name'], $_REQUEST['timezone'], $_REQUEST['ip'], $_REQUEST['port'], $_REQUEST['slave_history'], $_REQUEST['slave_trends'], $_REQUEST['node_type']); $nodeid = $result; @@ -115,7 +116,7 @@ include_once "include/page_header.php"; show_table_header(S_NODES_BIG,$form); $table=new CTableInfo(S_NO_NODES_DEFINED); - $table->SetHeader(array(S_NAME,S_TYPE,S_TIME_ZONE,S_IP.':'.S_PORT)); + $table->SetHeader(array(S_ID,S_NAME,S_TYPE,S_TIME_ZONE,S_IP.':'.S_PORT)); $db_nodes = DBselect('select * from nodes where nodeid in ('. get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_LIST).') '. @@ -127,6 +128,7 @@ include_once "include/page_header.php"; $node_type_name = node_type2str($node_type); $table->AddRow(array( + $row['nodeid'], array( get_node_path($row['masterid']), new CLink( |