mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Configurable device display name (#13528)
* Configurable device display name You can just set the display name in device settings. It also accepts simple template format with the variables: hostname, sysName, sysName_fallback, ip Default controlled by device_display_default, (set from old force_hostname_to_sysname and force_ip_to_sysname settings * remove second argument to format_hostname() * Style fixes * Update schema * update phpstan baseline * Improved settings strings (and add for translation)
This commit is contained in:
@@ -172,50 +172,55 @@ class CommonFunctionsTest extends TestCase
|
||||
'hostname' => 'test.librenms.org',
|
||||
'sysName' => 'Testing DNS',
|
||||
];
|
||||
$invalid_dns = [
|
||||
'hostname' => 'Not DNS',
|
||||
'sysName' => 'Testing Invalid DNS',
|
||||
];
|
||||
$device_ip = [
|
||||
'hostname' => '192.168.1.2',
|
||||
'sysName' => 'Testing IP',
|
||||
];
|
||||
$invalid_ip = [
|
||||
'hostname' => '256.168.1.2',
|
||||
'sysName' => 'Testing Invalid IP',
|
||||
];
|
||||
$custom_display = [
|
||||
'hostname' => 'test.librenms.org',
|
||||
'sysName' => 'sysName',
|
||||
'display' => 'Custom Display ({{ $hostname }} {{ $sysName }})',
|
||||
];
|
||||
|
||||
// both false
|
||||
Config::set('force_ip_to_sysname', false);
|
||||
Config::set('force_hostname_to_sysname', false);
|
||||
// default {{ $hostname }}
|
||||
Config::set('device_display_default', null);
|
||||
$this->assertEquals('test.librenms.org', format_hostname($device_dns));
|
||||
$this->assertEquals('Not DNS', format_hostname($device_dns, 'Not DNS'));
|
||||
$this->assertEquals('192.168.5.5', format_hostname($device_dns, '192.168.5.5'));
|
||||
$this->assertEquals('Not DNS', format_hostname($invalid_dns));
|
||||
$this->assertEquals('192.168.1.2', format_hostname($device_ip));
|
||||
$this->assertEquals('hostname.like', format_hostname($device_ip, 'hostname.like'));
|
||||
$this->assertEquals('10.10.10.10', format_hostname($device_ip, '10.10.10.10'));
|
||||
$this->assertEquals('256.168.1.2', format_hostname($invalid_ip));
|
||||
$this->assertEquals('Custom Display (test.librenms.org sysName)', format_hostname($custom_display));
|
||||
|
||||
// ip to sysname
|
||||
Config::set('force_ip_to_sysname', true);
|
||||
Config::set('force_hostname_to_sysname', false);
|
||||
Config::set('device_display_default', '{{ $sysName_fallback }}');
|
||||
$this->assertEquals('test.librenms.org', format_hostname($device_dns));
|
||||
$this->assertEquals('Not DNS', format_hostname($device_dns, 'Not DNS'));
|
||||
$this->assertEquals('Testing DNS', format_hostname($device_dns, '192.168.5.5'));
|
||||
$this->assertEquals('Not DNS', format_hostname($invalid_dns));
|
||||
$this->assertEquals('Testing IP', format_hostname($device_ip));
|
||||
$this->assertEquals('hostname.like', format_hostname($device_ip, 'hostname.like'));
|
||||
$this->assertEquals('Testing IP', format_hostname($device_ip, '10.10.10.10'));
|
||||
$this->assertEquals('256.168.1.2', format_hostname($invalid_ip));
|
||||
$this->assertEquals('Custom Display (test.librenms.org sysName)', format_hostname($custom_display));
|
||||
|
||||
// dns to sysname
|
||||
Config::set('force_ip_to_sysname', false);
|
||||
Config::set('force_hostname_to_sysname', true);
|
||||
// sysname
|
||||
Config::set('device_display_default', '{{ $sysName }}');
|
||||
$this->assertEquals('Testing DNS', format_hostname($device_dns));
|
||||
$this->assertEquals('Not DNS', format_hostname($device_dns, 'Not DNS'));
|
||||
$this->assertEquals('192.168.5.5', format_hostname($device_dns, '192.168.5.5'));
|
||||
$this->assertEquals('192.168.1.2', format_hostname($device_ip));
|
||||
$this->assertEquals('Testing IP', format_hostname($device_ip, 'hostname.like'));
|
||||
$this->assertEquals('10.10.10.10', format_hostname($device_ip, '10.10.10.10'));
|
||||
|
||||
// both true
|
||||
Config::set('force_ip_to_sysname', true);
|
||||
Config::set('force_hostname_to_sysname', true);
|
||||
$this->assertEquals('Testing DNS', format_hostname($device_dns));
|
||||
$this->assertEquals('Not DNS', format_hostname($device_dns, 'Not DNS'));
|
||||
$this->assertEquals('Testing DNS', format_hostname($device_dns, '192.168.5.5'));
|
||||
$this->assertEquals('Testing Invalid DNS', format_hostname($invalid_dns));
|
||||
$this->assertEquals('Testing IP', format_hostname($device_ip));
|
||||
$this->assertEquals('Testing IP', format_hostname($device_ip, 'hostname.like'));
|
||||
$this->assertEquals('Testing IP', format_hostname($device_ip, '10.10.10.10'));
|
||||
$this->assertEquals('Testing Invalid IP', format_hostname($invalid_ip));
|
||||
$this->assertEquals('Custom Display (test.librenms.org sysName)', format_hostname($custom_display));
|
||||
|
||||
// custom
|
||||
$custom_ip = ['display' => 'IP: {{ $ip }}', 'hostname' => '1.1.1.1', 'ip' => '2.2.2.2'];
|
||||
$this->assertEquals('IP: 1.1.1.1', format_hostname($custom_ip));
|
||||
$custom_ip['hostname'] = 'not_ip';
|
||||
$this->assertEquals('IP: 2.2.2.2', format_hostname($custom_ip));
|
||||
$custom_ip['overwrite_ip'] = '3.3.3.3';
|
||||
$this->assertEquals('IP: 3.3.3.3', format_hostname($custom_ip));
|
||||
}
|
||||
|
||||
public function testPortAssociation()
|
||||
|
||||
Reference in New Issue
Block a user