Fix item tag filter, #1594

This commit is contained in:
Alexander Zobnin
2023-03-23 14:40:22 +01:00
parent fc1d809dc1
commit 24285a9483
4 changed files with 39 additions and 20 deletions

View File

@@ -433,10 +433,12 @@ export function parseTags(tagStr: string): any[] {
// Parses string representation of tag into the object
export function parseItemTag(tagStr: string): ZBXItemTag {
const itemTag: ZBXItemTag = { tag: '', value: '' };
const tagParts = tagStr.split(': ');
itemTag.tag = tagParts[0];
if (tagParts[1]) {
itemTag.value = tagParts[1];
const firstIdx = tagStr.indexOf(':');
if (firstIdx > 0) {
itemTag.tag = tagStr.slice(0, firstIdx).trim();
itemTag.value = tagStr.slice(Math.min(firstIdx + 1, tagStr.length)).trim();
} else {
itemTag.tag = tagStr.trim();
}
return itemTag;
}

View File

@@ -7,6 +7,7 @@ import { ShowProblemTypes, ZBXProblem, ZBXTrigger } from '../../../types';
import { APIExecuteScriptResponse, JSONRPCError, ZBXScript } from './types';
import { BackendSrvRequest, getBackendSrv } from '@grafana/runtime';
import { rangeUtil } from '@grafana/data';
import { parseItemTag } from '../../../utils';
const DEFAULT_ZABBIX_VERSION = '3.0.0';
@@ -206,10 +207,9 @@ export class ZabbixAPIConnector {
if (itemTagFilter) {
const allTags = itemTagFilter.split(',');
let tagsParam = [];
const regex = /.*?([a-zA-Z0-9\s\-_]*):\s*([a-zA-Z0-9\-_\/:]*)/;
for (let i = 0; i < allTags.length; i++) {
const matches = allTags[i].match(regex);
tagsParam.push({ tag: matches[1].replace('/', ''), value: matches[2].trim(), operator: '1' });
const tag = parseItemTag(allTags[i]);
tagsParam.push({ tag: tag.tag, value: tag.value, operator: '1' });
}
params.tags = tagsParam;
// Use OR eval type