Werk #6972: Support SQL-style quoting for filtering dict-valued columns

Komponente Livestatus
Titel Support SQL-style quoting for filtering dict-valued columns
Datum 07.06.2019
Checkmk Edition Checkmk Raw (CRE)
Checkmk-Version 1.6.0b2 2.0.0i1
Level Kleine Änderung
Klasse Neues Feature
Kompatibilität Kompatibel - benötigt kein manuelles Eingreifen

Some Livestatus columns do not contain a simple value or a list of such values, they contain a dictionary of key/value pairs. More concretely, the

  • custom_variables
  • label_sources
  • labels
  • tags

columns in the

  • contacts
  • hosts
  • hostsbygroup
  • services
  • servicesbygroup
  • servicesbyhostgroup

tables contain dictionary values. Livestatus filter for such columns have a special syntax:

Filter: COLUMN OPERATOR KEY VALUE

As an example, the query:

GET hosts
Filter: tag = agent cmk-agent

returns all hosts where the tag "agent" has the value "cmk-agent". Note that the key and the value are separated by whitespace. But this makes it impossible to query for a tag name with spaces. To support more general keys and values in such filters, Livestatus now additionally supports SQL-style quoting for such column filters:

Filter: labels = 'It''s so' 'cool, man!'

This filter matches a label with key "It's so" and value "cool, man!". Note the use of 2 consecutive single quotes to represent 1 single quote. The previous syntax still works, the new syntax is triggered by a leading single quote in the key and/or value.

Zur Liste aller Werks