mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Support regex in os field replace (#14563)
* Support regex in os field replace * Support regex in os field replace
This commit is contained in:
@@ -165,10 +165,20 @@ trait YamlOSDiscovery
|
||||
{
|
||||
foreach ($this->osFields as $field) {
|
||||
foreach ($os_yaml["{$field}_replace"] ?? [] as $replacements) {
|
||||
$search = $replacements;
|
||||
$replacement = '';
|
||||
|
||||
// check for a given replacement string (otherwise, remove)
|
||||
if (is_array($replacements) && count($replacements) == 2) {
|
||||
$device->$field = str_replace($replacements[0], $replacements[1], $device->$field);
|
||||
} elseif (is_string($replacements)) {
|
||||
$device->$field = str_replace($replacements, '', $device->$field);
|
||||
$search = $replacements[0];
|
||||
$replacement = $replacements[1];
|
||||
}
|
||||
|
||||
// check for regex
|
||||
if (preg_match($search, $device->$field)) {
|
||||
$device->$field = preg_replace($search, $replacement, $device->$field);
|
||||
} else {
|
||||
$device->$field = str_replace($search, $replacement, $device->$field);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user