Added support for adding / editing with a poller group selected

This commit is contained in:
laf
2015-03-19 12:00:03 +00:00
parent e62f0bc7f4
commit ec595c3eda
3 changed files with 38 additions and 9 deletions

View File

@@ -50,7 +50,8 @@ if ($_POST['hostname'])
{
print_error("Unsupported SNMP Version. There was a dropdown menu, how did you reach this error ?");
}
$result = addHost($hostname, $snmpver, $port, $transport);
$poller_group = $_POST['poller_group'];
$result = addHost($hostname, $snmpver, $port, $transport,0,$poller_group);
if ($result)
{
print_message("Device added ($result)");
@@ -186,8 +187,8 @@ if ($config['distributed_poller'] === TRUE) {
<option value="0"> Default poller group</option>
');
foreach (dbFetchRows("SELECT `id`,`poller_name` FROM `pollers`") as $poller) {
echo '<option value="' . $poller['id'] . '">' . $poller['poller_name'] . '</option>';
foreach (dbFetchRows("SELECT `id`,`group_name` FROM `poller_groups`") as $group) {
echo '<option value="' . $group['id'] . '">' . $group['group_name'] . '</option>';
}
echo('

View File

@@ -10,6 +10,7 @@ if ($_POST['editing'])
$port = $_POST['port'] ? mres($_POST['port']) : $config['snmp']['port'];
$timeout = mres($_POST['timeout']);
$retries = mres($_POST['retries']);
$poller_group = mres($_POST['poller_group']);
$v3 = array (
'authlevel' => mres($_POST['authlevel']),
'authname' => mres($_POST['authname']),
@@ -24,7 +25,8 @@ if ($_POST['editing'])
'community' => $community,
'snmpver' => $snmpver,
'port' => $port,
'transport' => $transport
'transport' => $transport,
'poller_group' => $poller_group
);
if ($_POST['timeout']) { $update['timeout'] = $timeout; }
@@ -169,6 +171,31 @@ echo(" </select>
</div>
</div>");
if ($config['distributed_poller'] === TRUE) {
echo('
<div class="form-group">
<label for="poller_group" class="col-sm-2 control-label">Poller Group</label>
<div class="col-sm-4">
<select name="poller_group" id="poller_group" class="form-control input-sm">
<option value="0"> Default poller group</option>
');
foreach (dbFetchRows("SELECT `id`,`group_name` FROM `poller_groups`") as $group) {
echo '<option value="' . $group['id'] . '"';
if ($device['poller_group'] == $group['id']) {
echo ' selected';
}
echo '>' . $group['group_name'] . '</option>';
}
echo('
</select>
</div>
</div>
');
}
echo('
<button type="submit" name="Submit" class="btn btn-default">Save</button>
</form>

View File

@@ -266,7 +266,7 @@ function delete_device($id)
return $ret;
}
function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0')
function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0', $poller_group = '0')
{
global $config;
@@ -315,7 +315,7 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0
$snmphost = snmp_get($device, "sysName.0", "-Oqv", "SNMPv2-MIB");
if (empty($snmphost) or ($snmphost == $host || $hostshort = $host))
{
$device_id = createHost ($host, NULL, $snmpver, $port, $transport, $v3);
$device_id = createHost ($host, NULL, $snmpver, $port, $transport, $v3, $poller_group);
return $device_id;
} else {
if($quiet == '0') {print_error("Given hostname does not match SNMP-read hostname ($snmphost)!"); }
@@ -337,7 +337,7 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0
$snmphost = snmp_get($device, "sysName.0", "-Oqv", "SNMPv2-MIB");
if (empty($snmphost) || ($snmphost && ($snmphost == $host || $hostshort = $host)))
{
$device_id = createHost ($host, $community, $snmpver, $port, $transport);
$device_id = createHost ($host, $community, $snmpver, $port, $transport,array(),$poller_group);
return $device_id;
} else {
if($quiet == '0') { print_error("Given hostname does not match SNMP-read hostname ($snmphost)!"); }
@@ -520,7 +520,7 @@ function utime()
return $sec + $usec;
}
function createHost($host, $community = NULL, $snmpver, $port = 161, $transport = 'udp', $v3 = array())
function createHost($host, $community = NULL, $snmpver, $port = 161, $transport = 'udp', $v3 = array(), $poller_group='0')
{
$host = trim(strtolower($host));
@@ -530,7 +530,8 @@ function createHost($host, $community = NULL, $snmpver, $port = 161, $transport
'port' => $port,
'transport' => $transport,
'status' => '1',
'snmpver' => $snmpver
'snmpver' => $snmpver,
'poller_group' => $poller_group
);
$device = array_merge($device, $v3);