mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
don't put standard ports in base_url, add dpkg support for packages, fix display of packages in main menubar
git-svn-id: http://www.observium.org/svn/observer/trunk@3070 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
@@ -66,8 +66,12 @@ foreach ($config['device_types'] as $devtype)
|
||||
|
||||
if ($_SESSION['userlevel'] >= '10')
|
||||
{
|
||||
if (count($cache['device_types']))
|
||||
{
|
||||
echo ('
|
||||
<li><hr width="140" /></li>');
|
||||
}
|
||||
echo('
|
||||
<li><hr width="140" /></li>
|
||||
<li><a href="addhost/"><img src="images/16/server_add.png" border="0" align="absmiddle" /> Add Device</a></li>
|
||||
<li><a href="delhost/"><img src="images/16/server_delete.png" border="0" align="absmiddle" /> Delete Device</a></li>');
|
||||
}
|
||||
@@ -489,7 +493,7 @@ if ($_SESSION['userlevel'] >= '5' && ($routing_count['bgp']+$routing_count['ospf
|
||||
<?php
|
||||
}
|
||||
|
||||
$packages = dbFetchCell("SELECT COUNT(package_id) from `packages`");
|
||||
$packages = dbFetchCell("SELECT COUNT(pkg_id) from `packages`");
|
||||
|
||||
if ($packages)
|
||||
{
|
||||
|
@@ -75,11 +75,11 @@ if (isset($_SERVER["SERVER_NAME"]) && isset($_SERVER["SERVER_PORT"]))
|
||||
if (strpos($_SERVER["SERVER_NAME"] , ":"))
|
||||
{
|
||||
# Literal IPv6
|
||||
$config['base_url'] = "http://[" . $_SERVER["SERVER_NAME"] ."]:".$_SERVER["SERVER_PORT"]."/";
|
||||
$config['base_url'] = "http://[" . $_SERVER["SERVER_NAME"] ."]" . ($_SERVER["SERVER_PORT"] != 80 ? ":".$_SERVER["SERVER_PORT"] : '') ."/";
|
||||
}
|
||||
else
|
||||
{
|
||||
$config['base_url'] = "http://" . $_SERVER["SERVER_NAME"] .":".$_SERVER["SERVER_PORT"]."/";
|
||||
$config['base_url'] = "http://" . $_SERVER["SERVER_NAME"] . ($_SERVER["SERVER_PORT"] != 80 ? ":".$_SERVER["SERVER_PORT"] : '') ."/";
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,25 +1,26 @@
|
||||
<?php
|
||||
|
||||
if($device['os_group'] == "unix") {
|
||||
|
||||
echo("Observium UNIX Agent: ");
|
||||
|
||||
$port='6556';
|
||||
|
||||
$agent = fsockopen($device['hostname'], $port, $errno, $errstr, 10);
|
||||
|
||||
if(!$agent)
|
||||
if($device['os_group'] == "unix")
|
||||
{
|
||||
|
||||
echo("Observium UNIX Agent: ");
|
||||
|
||||
$port='6556';
|
||||
|
||||
$agent = fsockopen($device['hostname'], $port, $errno, $errstr, 10);
|
||||
|
||||
if(!$agent)
|
||||
{
|
||||
echo "Connection to UNIX agent failed on port ".$port.".";
|
||||
} else {
|
||||
} else {
|
||||
while (!feof($agent))
|
||||
{
|
||||
$agent_raw .= fgets($agent, 128);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($agent_raw))
|
||||
{
|
||||
if(!empty($agent_raw))
|
||||
{
|
||||
foreach (explode("<<<", $agent_raw) as $section)
|
||||
{
|
||||
|
||||
@@ -65,9 +66,46 @@ if(!empty($agent_raw))
|
||||
}
|
||||
}
|
||||
|
||||
### DPKG
|
||||
if (!empty($agent_data['dpkg']))
|
||||
{
|
||||
echo("\nDEB Packages: ");
|
||||
## Build array of existing packages
|
||||
$manager = "deb";
|
||||
|
||||
$pkgs_db_db = dbFetchRows("SELECT * FROM `packages` WHERE `device_id` = ?", array($device['device_id']));
|
||||
foreach ($pkgs_db_db as $pkg_db)
|
||||
{
|
||||
$pkgs_db[$pkg_db['manager']][$pkg_db['name']][$pkg_db['arch']][$pkg_db['version']][$pkg_db['build']]['id'] = $pkg_db['pkg_id'];
|
||||
$pkgs_db[$pkg_db['manager']][$pkg_db['name']][$pkg_db['arch']][$pkg_db['version']][$pkg_db['build']]['status'] = $pkg_db['status'];
|
||||
$pkgs_db[$pkg_db['manager']][$pkg_db['name']][$pkg_db['arch']][$pkg_db['version']][$pkg_db['build']]['size'] = $pkg_db['size'];
|
||||
$pkgs_db_id[$pkg_db['pkg_id']]['text'] = $pkg_db['manager'] ."-".$pkg_db['name']."-".$pkg_db['arch']."-".$pkg_db['version']."-".$pkg_db['build'];
|
||||
$pkgs_db_id[$pkg_db['pkg_id']]['manager'] = $pkg_db['manager'];
|
||||
$pkgs_db_id[$pkg_db['pkg_id']]['name'] = $pkg_db['name'];
|
||||
$pkgs_db_id[$pkg_db['pkg_id']]['arch'] = $pkg_db['arch'];
|
||||
$pkgs_db_id[$pkg_db['pkg_id']]['version'] = $pkg_db['version'];
|
||||
$pkgs_db_id[$pkg_db['pkg_id']]['build'] = $pkg_db['build'];
|
||||
}
|
||||
|
||||
foreach (explode("\n", $agent_data['dpkg']) as $package)
|
||||
{
|
||||
list($name, $version, $arch, $size) = explode(" ", $package);
|
||||
$build = "";
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['manager'] = $manager;
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['name'] = $name;
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['arch'] = $arch;
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['version'] = $version;
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['build'] = $build;
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['size'] = $size;
|
||||
$pkgs[$manager][$name][$arch][$version][$build]['status'] = '1';
|
||||
$text = $manager."-".$name."-".$arch."-".$version."-".$build;
|
||||
$pkgs_id[] = $pkgs[$manager][$name][$arch][$version][$build];
|
||||
}
|
||||
}
|
||||
|
||||
## This is run for all "packages" and is common to RPM/DEB/etc
|
||||
foreach ($pkgs_id as $pkg) {
|
||||
foreach ($pkgs_id as $pkg)
|
||||
{
|
||||
$name = $pkg['name'];
|
||||
$version = $pkg['version'];
|
||||
$build = $pkg['build'];
|
||||
@@ -98,17 +136,20 @@ if(!empty($agent_raw))
|
||||
}
|
||||
unset($pkgs_db_id[$id]);
|
||||
} else {
|
||||
if (count($pkgs[$manager][$name][$arch], 1) > "10" || count($pkgs_db[$manager][$name][$arch], 1) == '0') {
|
||||
if (count($pkgs[$manager][$name][$arch], 1) > "10" || count($pkgs_db[$manager][$name][$arch], 1) == '0')
|
||||
{
|
||||
dbInsert(array('device_id' => $device['device_id'], 'name' => $name, 'manager' => $manager,
|
||||
'status' => 1, 'version' => $version, 'build' => $build, 'arch' => $arch, 'size' => $size), 'packages');
|
||||
echo("+".$name."-".$version."-".$build."-".$arch);
|
||||
log_event('Package installed: '.$name.' ('.$arch.') version '.$version.'-'.$build, $device, 'package');
|
||||
if ($build != "") { $dbuild = '-' . $build; } else { $dbuild = ''; }
|
||||
echo("+".$name."-".$version.$dbuild."-".$arch);
|
||||
log_event('Package installed: '.$name.' ('.$arch.') version '.$version.$dbuild, $device, 'package');
|
||||
} elseif(count($pkgs_db[$manager][$name][$arch], 1)) {
|
||||
$pkg_c = dbFetchRow("SELECT * FROM `packages` WHERE `device_id` = ? AND `manager` = ? AND `name` = ? and `arch` = ? ORDER BY version DESC, build DESC", array($device['device_id'], $manager, $name, $arch));
|
||||
echo("U(".$pkg_c['name']."-".$pkg_c['version']."-".$pkg_c['build']."|".$name."-".$version."-".$build.")");
|
||||
if ($pkg_c['build'] != "") { $pkg_c_dbuild = '-'.$pkg_c['build']; } else { $pkg_c_dbuild = ''; }
|
||||
echo("U(".$pkg_c['name']."-".$pkg_c['version'].$pkg_c_dbuild."|".$name."-".$version.$dbuild.")");
|
||||
$pkg_update = array('version' => $version, 'build' => $build, 'status' => '1', 'size' => $size);
|
||||
dbUpdate($pkg_update, 'packages', '`pkg_id` = ?', array($pkg_c['pkg_id']));
|
||||
log_event('Package updated: '.$name.' ('.$arch.') from '.$pkg_c['version'].'-'.$pkg_c['build'] .' to '.$version.'-'.$build, $device, 'package');
|
||||
log_event('Package updated: '.$name.' ('.$arch.') from '.$pkg_c['version'].$pkg_c_dbuild .' to '.$version.$dbuild, $device, 'package');
|
||||
unset($pkgs_db_id[$pkg_c['pkg_id']]);
|
||||
}
|
||||
}
|
||||
@@ -158,7 +199,7 @@ if(!empty($agent_raw))
|
||||
}
|
||||
}
|
||||
|
||||
### DRBd
|
||||
### DRBD
|
||||
if (!empty($agent_data['drbd']))
|
||||
{
|
||||
$agent_data['drbd_raw'] = $agent_data['drbd'];
|
||||
@@ -177,7 +218,7 @@ if(!empty($agent_raw))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset($pkg);
|
||||
unset($pkgs_db_id);
|
||||
@@ -186,8 +227,7 @@ if(!empty($agent_raw))
|
||||
unset($pkgs_db);
|
||||
unset($pkgs_db_db);
|
||||
|
||||
echo("\n");
|
||||
|
||||
echo("\n");
|
||||
}
|
||||
|
||||
?>
|
||||
|
Reference in New Issue
Block a user