2007-04-03 14:10:23 +00:00
< ? php
2016-08-21 08:07:14 -05:00
use LibreNMS\Exceptions\HostUnreachableException ;
2015-07-13 20:10:26 +02:00
$no_refresh = true ;
2015-03-21 21:30:55 +00:00
2015-07-13 20:10:26 +02:00
if ( $_SESSION [ 'userlevel' ] < 10 ) {
include 'includes/error-no-perm.inc.php' ;
2012-04-06 13:56:23 +00:00
2015-07-13 20:10:26 +02:00
exit ;
2007-06-24 14:56:47 +00:00
}
2015-07-13 20:10:26 +02:00
if ( $_POST [ 'hostname' ]) {
echo '<div class="row">
2014-10-02 23:14:45 +01:00
<div class="col-sm-3">
</div>
2015-07-13 20:10:26 +02:00
<div class="col-sm-6">' ;
if ( $_SESSION [ 'userlevel' ] > '5' ) {
// Settings common to SNMPv2 & v3
$hostname = mres ( $_POST [ 'hostname' ]);
if ( $_POST [ 'port' ]) {
$port = mres ( $_POST [ 'port' ]);
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
$port = $config [ 'snmp' ][ 'port' ];
}
if ( $_POST [ 'transport' ]) {
$transport = mres ( $_POST [ 'transport' ]);
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
$transport = 'udp' ;
}
if ( $_POST [ 'snmpver' ] === 'v2c' or $_POST [ 'snmpver' ] === 'v1' ) {
if ( $_POST [ 'community' ]) {
$config [ 'snmp' ][ 'community' ] = array ( $_POST [ 'community' ]);
}
$snmpver = mres ( $_POST [ 'snmpver' ]);
print_message ( " Adding host $hostname communit " . ( count ( $config [ 'snmp' ][ 'community' ]) == 1 ? 'y' : 'ies' ) . ' ' . implode ( ', ' , $config [ 'snmp' ][ 'community' ]) . " port $port using $transport " );
2016-08-18 20:28:22 -05:00
} elseif ( $_POST [ 'snmpver' ] === 'v3' ) {
2015-07-13 20:10:26 +02:00
$v3 = array (
'authlevel' => mres ( $_POST [ 'authlevel' ]),
'authname' => mres ( $_POST [ 'authname' ]),
'authpass' => mres ( $_POST [ 'authpass' ]),
'authalgo' => mres ( $_POST [ 'authalgo' ]),
'cryptopass' => mres ( $_POST [ 'cryptopass' ]),
'cryptoalgo' => mres ( $_POST [ 'cryptoalgo' ]),
);
array_push ( $config [ 'snmp' ][ 'v3' ], $v3 );
$snmpver = 'v3' ;
print_message ( " Adding SNMPv3 host $hostname port $port " );
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
print_error ( 'Unsupported SNMP Version. There was a dropdown menu, how did you reach this error ?' );
} //end if
$poller_group = $_POST [ 'poller_group' ];
2016-08-09 15:00:12 -05:00
$force_add = ( $_POST [ 'force_add' ] == 'on' );
2015-07-13 20:10:26 +02:00
2016-01-21 22:04:52 +01:00
$port_assoc_mode = $_POST [ 'port_assoc_mode' ];
2016-08-07 12:16:40 -05:00
try {
$device_id = addHost ( $hostname , $snmpver , $port , $transport , $poller_group , $force_add , $port_assoc_mode );
print_message ( " Device added ( $device_id ) " );
} catch ( HostUnreachableException $e ) {
print_error ( $e -> getMessage ());
foreach ( $e -> getReasons () as $reason ) {
print_error ( $reason );
}
2016-08-18 20:28:22 -05:00
} catch ( Exception $e ) {
2016-08-07 12:16:40 -05:00
print_error ( $e -> getMessage ());
2015-07-13 20:10:26 +02:00
}
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
print_error ( " You don't have the necessary privileges to add hosts. " );
} //end if
echo ' </div>
2014-10-02 23:14:45 +01:00
<div class="col-sm-3">
</div>
2015-07-13 20:10:26 +02:00
</div>' ;
} //end if
2007-04-03 14:10:23 +00:00
2015-07-13 20:10:26 +02:00
$pagetitle [] = 'Add host' ;
2011-10-18 14:41:19 +00:00
2007-04-03 14:10:23 +00:00
?>
2014-10-02 23:14:45 +01:00
<div class="row">
<div class="col-sm-3">
</div>
<div class="col-sm-6">
2014-01-13 10:05:19 +00:00
<form name="form1" method="post" action="" class="form-horizontal" role="form">
2014-10-02 23:14:45 +01:00
<div><h2>Add Device</h2></div>
2014-01-13 10:05:19 +00:00
<div class="alert alert-info">Devices will be checked for Ping and SNMP reachability before being probed. Only devices with recognised OSes will be added.</div>
<div class="well well-lg">
<div class="form-group">
2014-10-02 23:14:45 +01:00
<label for="hostname" class="col-sm-3 control-label">Hostname</label>
<div class="col-sm-9">
2014-01-13 10:05:19 +00:00
<input type="text" id="hostname" name="hostname" class="form-control input-sm" placeholder="Hostname">
</div>
</div>
<div class="form-group">
2014-10-02 23:14:45 +01:00
<label for="snmpver" class="col-sm-3 control-label">SNMP Version</label>
<div class="col-sm-3">
<select name="snmpver" id="snmpver" class="form-control input-sm" onChange="changeForm();">
2014-01-13 10:05:19 +00:00
<option value="v1">v1</option>
<option value="v2c" selected>v2c</option>
<option value="v3">v3</option>
</select>
</div>
2014-10-02 23:14:45 +01:00
<div class="col-sm-3">
2014-01-13 10:05:19 +00:00
<input type="text" name="port" placeholder="port" class="form-control input-sm">
</div>
2014-10-02 23:14:45 +01:00
<div class="col-sm-3">
2014-06-21 08:02:27 -04:00
<select name="transport" id="transport" class="form-control input-sm">
2014-10-11 16:55:32 +00:00
<?php
2015-07-13 20:10:26 +02:00
foreach ($config['snmp']['transports'] as $transport) {
echo "<option value='".$transport."'";
2014-10-11 16:55:32 +00:00
if ($transport == $device['transport']) {
2015-07-13 20:10:26 +02:00
echo " selected='selected'";
2014-10-11 16:55:32 +00:00
}
2015-07-13 20:10:26 +02:00
echo '>'.$transport.'</option>';
2014-10-11 16:55:32 +00:00
}
2016-01-21 22:04:52 +01:00
?>
</select>
</div>
</div>
<div class="form-group">
<label for="port_association_mode" class="col-sm-3 control-label">Port Association Mode</label>
<div class="col-sm-3">
<select name="port_assoc_mode" id="port_assoc_mode" class="form-control input-sm">
<?php
foreach (get_port_assoc_modes() as $mode) {
$selected = "";
2016-08-18 20:28:22 -05:00
if ($mode == $config['default_port_association_mode']) {
2016-01-21 22:04:52 +01:00
$selected = "selected";
2016-08-18 20:28:22 -05:00
}
2016-01-21 22:04:52 +01:00
echo " <option value=\"$mode\" $selected>$mode</option>\n";
}
2014-10-11 16:55:32 +00:00
?>
2014-06-21 08:02:27 -04:00
</select>
</div>
2014-01-13 10:05:19 +00:00
</div>
2014-10-02 23:14:45 +01:00
<div id="snmpv1_2">
<div class="form-group">
<div class="col-sm-12 alert alert-info">
<label class="control-label text-left input-sm">SNMPv1/2c Configuration</label>
</div>
</div>
<div class="form-group">
<label for="community" class="col-sm-3 control-label">Community</label>
<div class="col-sm-9">
<input type="text" name="community" id="community" placeholder="Community" class="form-control input-sm">
</div>
2014-01-13 10:05:19 +00:00
</div>
</div>
2014-10-02 23:14:45 +01:00
<div id="snmpv3">
<div class="form-group">
<div class="col-sm-12 alert alert-info">
<label class="control-label text-left input-sm">SNMPv3 Configuration</label>
</div>
</div>
<div class="form-group">
<label for="authlevel" class="col-sm-3 control-label">Auth Level</label>
<div class="col-sm-3">
<select name="authlevel" id="authlevel" class="form-control input-sm">
2015-08-20 17:06:43 +00:00
<option value="noAuthNoPriv" selected>noAuthNoPriv</option>
<option value="authNoPriv">authNoPriv</option>
<option value="authPriv">authPriv</option>
2014-10-02 23:14:45 +01:00
</select>
</div>
</div>
<div class="form-group">
<label for="authname" class="col-sm-3 control-label">Auth User Name</label>
<div class="col-sm-9">
<input type="text" name="authname" id="authname" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label for="authpass" class="col-sm-3 control-label">Auth Password</label>
<div class="col-sm-9">
<input type="text" name="authpass" id="authpass" placeholder="AuthPass" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label for="authalgo" class="col-sm-3 control-label">Auth Algorithm</label>
<div class="col-sm-9">
<select name="authalgo" id="authalgo" class="form-control input-sm">
<option value="MD5" selected>MD5</option>
<option value="SHA">SHA</option>
</select>
</div>
</div>
<div class="form-group">
<label for="cryptopass" class="col-sm-3 control-label">Crypto Password</label>
<div class="col-sm-9">
<input type="text" name="cryptopass" id="cryptopass" placeholder="Crypto Password" class="form-control input-sm">
</div>
</div>
<div class="form-group">
<label for="cryptoalgo" class="col-sm-3 control-label">Crypto Algorithm</label>
<div class="col-sm-9">
<select name="cryptoalgo" id="cryptoalgo" class="form-control input-sm">
<option value="AES" selected>AES</option>
<option value="DES">DES</option>
</select>
</div>
</div>
2014-01-13 10:05:19 +00:00
</div>
2015-03-15 21:44:35 +00:00
<?php
2015-07-13 20:10:26 +02:00
if ($config['distributed_poller'] === true) {
echo '
2015-03-15 21:44:35 +00:00
<div class="form-group">
<label for="poller_group" class="col-sm-3 control-label">Poller Group</label>
<div class="col-sm-9">
<select name="poller_group" id="poller_group" class="form-control input-sm">
<option value="0"> Default poller group</option>
2015-07-13 20:10:26 +02:00
';
2015-03-15 21:44:35 +00:00
2015-07-13 20:10:26 +02:00
foreach (dbFetchRows('SELECT `id`,`group_name` FROM `poller_groups`') as $group) {
echo '<option value="'.$group['id'].'">'.$group['group_name'].'</option>';
2015-03-15 21:44:35 +00:00
}
2015-07-13 20:10:26 +02:00
echo '
2015-03-15 21:44:35 +00:00
</select>
</div>
</div>
2016-09-14 02:32:45 +01:00
';
}//endif
?>
2015-03-19 22:06:13 +00:00
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<div class="checkbox">
<label>
2016-09-14 02:32:45 +01:00
<input type="checkbox" name="force_add" id="force_add"> Force add - No ICMP or SNMP checks performed
2015-03-19 22:06:13 +00:00
</label>
</div>
</div>
</div>
2015-08-29 18:50:57 +05:30
<hr>
<center><button type="submit" class="btn btn-default" name="Submit">Add Device</button></center>
2011-03-27 10:21:19 +00:00
</div>
2007-04-03 14:10:23 +00:00
</form>
2014-10-02 23:14:45 +01:00
</div>
<div class="col-sm-3">
</div>
</div>
<script>
function changeForm() {
snmpVersion = $("#snmpver").val();
if(snmpVersion == 'v1' || snmpVersion == 'v2c') {
$('#snmpv1_2').show();
$('#snmpv3').hide();
2015-07-13 20:10:26 +02:00
}
else if(snmpVersion == 'v3') {
2014-10-02 23:14:45 +01:00
$('#snmpv1_2').hide();
$('#snmpv3').show();
}
}
$('#snmpv3').toggle();
</script>