-
Problem report
-
Resolution: Fixed
-
Minor
-
4.0.6
-
Redhat VM
-
Sprint 52 (May 2019)
-
1
Scenario: Discovering temperature sensors on a Cisco switch using SNMP. I want to use context based macro's so that i can set a different temperature limit for all sensors.
However with the discovered values (Temperature sensor names) i get some odd results.
Trigger prototype configuration
The macro {#SENSOR_NAME} is discovered with the discovery rule.
temperature.entity"{#SENSOR_NAME}".last() > {$MAX_TEMP:"{#SENSOR_NAME}"}
Discovered names
This all works great in the template expression constructor. However when i run the discovery rule i get the following values for {#SENSOR_NAME} back:
Switch 1 - WS-C3850-48T - Temp inlet Sensor 0
Switch 1 - WS-C3850-48T - Temp Outlet Sensor 0
The discovered triggers looks like this:
temperature.entity["Switch 1 - WS-C3850-48T - Temp inlet Sensor 0"].last() > {$MAX_TEMP:"Switch 1 - WS-C3850-48T - Temp inlet Sensor 0"}
However the expression constructor shows why the trigger is failing.
It seems like the last 2 letters of the word "sensor" are being treated as a logical OR.
The formal stuff:
Steps to reproduce:
- Making an trigger prototype using a context based macro with a value that ends / has the text "or"
Result:
- The trigger will use the text "or" as logical OR operator
Expected:
- The trigger expression would be valid with only 1 operation
It this behavior intentional, am i formatting the expression wrong, it there a workaround (other than using the SNMPINDEX in the key and context macro) or am i dealing with a bug here?
Thanks in advance.