Commit version 24.12.13800

This commit is contained in:
2025-01-06 17:35:06 -05:00
parent b7f6a79c2c
commit 55d9218816
6133 changed files with 4239740 additions and 1374287 deletions

View File

@ -4,7 +4,7 @@
define('OBS_QUIET', TRUE); // Disable any additional output from tests
ini_set('opcache.enable', 0);
include(__DIR__ . '/../includes/sql-config.inc.php');
include(__DIR__ . '/../includes/observium.inc.php');
//include(dirname(__FILE__) . '/../includes/defaults.inc.php');
//include(dirname(__FILE__) . '/../config.php');
//include(dirname(__FILE__) . '/../includes/definitions.inc.php');
@ -25,8 +25,8 @@ include(__DIR__ . '/../includes/sql-config.inc.php');
*/
// SNMPsim tests
$snmpsimd_ip = $config['tests']['snmpsim_ip'] ?: '127.0.0.1';
$snmpsimd_port = $config['tests']['snmpsim_port'] ?: 16111;
$snmpsimd_ip = $config['tests']['snmpsim_ip'] ?? '127.0.0.1';
$snmpsimd_port = $config['tests']['snmpsim_port'] ?? 16111;
$snmpsimd_data = $config['tests']['snmpsim_dir'] . '/os';
if (is_dir($snmpsimd_data)) {
snmpsimd_init($snmpsimd_data);
@ -275,15 +275,62 @@ class SnmpDataTest extends \PHPUnit\Framework\TestCase
if ($result)
{
// good response - int greater than 0
$this->assertGreaterThan(0, isSNMPable($device));
$this->assertGreaterThan(0, is_snmpable($device));
} else {
// bad response return 0
$device['snmp_timeout'] = 1;
$this->assertSame(0, isSNMPable($device));
$this->assertSame(0, is_snmpable($device));
}
}
}
/**
* @dataProvider providerIsSNMPable
* @group snmperrors
*/
public function testIsSNMPableError($os, $test_os, $status, $error = OBS_SNMP_ERROR_OK)
{
global $snmpsimd_ip, $snmpsimd_port;
$GLOBALS['config']['snmp']['errors'] = FALSE; // force disable log to db
foreach ([ 'v2c', 'v3' ] as $snmp_version)
//foreach (array('v3') as $snmp_version)
{
switch ($snmp_version)
{
case 'v2c':
$community = $os . '-1';
$device = build_initial_device_array($snmpsimd_ip, $community, $snmp_version, $snmpsimd_port, 'udp');
break;
case 'v3':
$snmp_version = 'v3';
$snmp_v3 = [ 'authlevel' => 'authPriv',
'authname' => 'simulator',
'authpass' => 'auctoritas',
'authalgo' => 'MD5',
'cryptopass' => 'privatus',
'cryptoalgo' => 'DES' ];
$device = build_initial_device_array($snmpsimd_ip, NULL, $snmp_version, $snmpsimd_port, 'udp', $snmp_v3);
$device['snmp_context'] = $os . '-1';
break;
}
$device['snmp_timeout'] = 2;
$device['snmp_retries'] = 1;
//var_dump($device);
if ($test_os)
{
$device['os'] = $test_os;
}
if (!$status) {
// bad response return 0
$device['snmp_timeout'] = 1;
}
is_snmpable($device);
$this->assertSame($error, snmp_error_code());
}
}
public function providerIsSNMPable()
{
return array(
@ -308,9 +355,9 @@ class SnmpDataTest extends \PHPUnit\Framework\TestCase
array('hikvision-cam', '8734hr7hf3f38', TRUE), // simulate os name changed
// Simulate not snmpable device
array('hikvision-XXX', NULL, FALSE), // os not known
array('hikvision-XXX', 'hikvision-cam', FALSE), // known os
array('hikvision-XXX', '8734hr7hf3f38', FALSE), // simulate os name changed
array('hikvision-XXX', NULL, FALSE, OBS_SNMP_ERROR_REQUEST_TIMEOUT), // os not known
array('hikvision-XXX', 'hikvision-cam', FALSE, OBS_SNMP_ERROR_ISSNMPABLE), // known os
array('hikvision-XXX', '8734hr7hf3f38', FALSE, OBS_SNMP_ERROR_REQUEST_TIMEOUT), // simulate os name changed
);
}
}