refactor: move macros expanding to utils
This commit is contained in:
45
dist/datasource-zabbix/utils.js
vendored
45
dist/datasource-zabbix/utils.js
vendored
@@ -3,7 +3,7 @@
|
||||
System.register(['lodash', 'moment'], function (_export, _context) {
|
||||
"use strict";
|
||||
|
||||
var _, moment, regexPattern;
|
||||
var _, moment, MACRO_PATTERN, regexPattern;
|
||||
|
||||
/**
|
||||
* Expand Zabbix item name
|
||||
@@ -58,6 +58,47 @@ System.register(['lodash', 'moment'], function (_export, _context) {
|
||||
return params;
|
||||
}
|
||||
|
||||
///////////
|
||||
// MACRO //
|
||||
///////////
|
||||
|
||||
function containsMacro(itemName) {
|
||||
return MACRO_PATTERN.test(itemName);
|
||||
}
|
||||
|
||||
_export('containsMacro', containsMacro);
|
||||
|
||||
function replaceMacro(item, macros) {
|
||||
var itemName = item.name;
|
||||
var item_macros = itemName.match(MACRO_PATTERN);
|
||||
_.forEach(item_macros, function (macro) {
|
||||
var host_macros = _.filter(macros, function (m) {
|
||||
if (m.hostid) {
|
||||
return m.hostid === item.hostid;
|
||||
} else {
|
||||
// Add global macros
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
var macro_def = _.find(host_macros, { macro: macro });
|
||||
if (macro_def && macro_def.value) {
|
||||
var macro_value = macro_def.value;
|
||||
var macro_regex = new RegExp(escapeMacro(macro));
|
||||
itemName = itemName.replace(macro_regex, macro_value);
|
||||
}
|
||||
});
|
||||
|
||||
return itemName;
|
||||
}
|
||||
|
||||
_export('replaceMacro', replaceMacro);
|
||||
|
||||
function escapeMacro(macro) {
|
||||
macro = macro.replace(/\$/, '\\\$');
|
||||
return macro;
|
||||
}
|
||||
|
||||
// Pattern for testing regex
|
||||
function isRegex(str) {
|
||||
return regexPattern.test(str);
|
||||
@@ -186,6 +227,8 @@ System.register(['lodash', 'moment'], function (_export, _context) {
|
||||
moment = _moment.default;
|
||||
}],
|
||||
execute: function () {
|
||||
MACRO_PATTERN = /{\$[A-Z0-9_\.]+}/g;
|
||||
|
||||
_export('regexPattern', regexPattern = /^\/(.*)\/([gmi]*)$/m);
|
||||
|
||||
_export('regexPattern', regexPattern);
|
||||
|
||||
2
dist/datasource-zabbix/utils.js.map
vendored
2
dist/datasource-zabbix/utils.js.map
vendored
File diff suppressed because one or more lines are too long
41
dist/datasource-zabbix/zabbix.js
vendored
41
dist/datasource-zabbix/zabbix.js
vendored
@@ -3,7 +3,7 @@
|
||||
System.register(['angular', 'lodash', './utils', './zabbixAPI.service.js', './zabbixCachingProxy.service.js'], function (_export, _context) {
|
||||
"use strict";
|
||||
|
||||
var angular, _, utils, _createClass, MACRO_PATTERN;
|
||||
var angular, _, utils, _createClass;
|
||||
|
||||
function _toConsumableArray(arr) {
|
||||
if (Array.isArray(arr)) {
|
||||
@@ -152,8 +152,8 @@ System.register(['angular', 'lodash', './utils', './zabbixAPI.service.js', './za
|
||||
var hostids = getHostIds(items);
|
||||
return this.getMacros(hostids).then(function (macros) {
|
||||
_.forEach(items, function (item) {
|
||||
if (containsMacro(item.name)) {
|
||||
item.name = replaceMacro(item, macros);
|
||||
if (utils.containsMacro(item.name)) {
|
||||
item.name = utils.replaceMacro(item, macros);
|
||||
}
|
||||
});
|
||||
return items;
|
||||
@@ -267,39 +267,6 @@ System.register(['angular', 'lodash', './utils', './zabbixAPI.service.js', './za
|
||||
});
|
||||
return _.uniq(_.flatten(hostIds));
|
||||
}
|
||||
|
||||
function containsMacro(itemName) {
|
||||
return MACRO_PATTERN.test(itemName);
|
||||
}
|
||||
|
||||
function replaceMacro(item, macros) {
|
||||
var itemName = item.name;
|
||||
var item_macros = itemName.match(MACRO_PATTERN);
|
||||
_.forEach(item_macros, function (macro) {
|
||||
var host_macros = _.filter(macros, function (m) {
|
||||
if (m.hostid) {
|
||||
return m.hostid === item.hostid;
|
||||
} else {
|
||||
// Add global macros
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
var macro_def = _.find(host_macros, { macro: macro });
|
||||
if (macro_def && macro_def.value) {
|
||||
var macro_value = macro_def.value;
|
||||
var macro_regex = new RegExp(escapeMacro(macro));
|
||||
itemName = itemName.replace(macro_regex, macro_value);
|
||||
}
|
||||
});
|
||||
|
||||
return itemName;
|
||||
}
|
||||
|
||||
function escapeMacro(macro) {
|
||||
macro = macro.replace(/\$/, '\\\$');
|
||||
return macro;
|
||||
}
|
||||
return {
|
||||
setters: [function (_angular) {
|
||||
angular = _angular.default;
|
||||
@@ -327,7 +294,7 @@ System.register(['angular', 'lodash', './utils', './zabbixAPI.service.js', './za
|
||||
};
|
||||
}();
|
||||
|
||||
angular.module('grafana.services').factory('Zabbix', ZabbixFactory);MACRO_PATTERN = /{\$[A-Z0-9_\.]+}/g;
|
||||
angular.module('grafana.services').factory('Zabbix', ZabbixFactory);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
2
dist/datasource-zabbix/zabbix.js.map
vendored
2
dist/datasource-zabbix/zabbix.js.map
vendored
File diff suppressed because one or more lines are too long
41
dist/test/datasource-zabbix/utils.js
vendored
41
dist/test/datasource-zabbix/utils.js
vendored
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
||||
});
|
||||
exports.regexPattern = undefined;
|
||||
exports.expandItemName = expandItemName;
|
||||
exports.containsMacro = containsMacro;
|
||||
exports.replaceMacro = replaceMacro;
|
||||
exports.isRegex = isRegex;
|
||||
exports.isTemplateVariable = isTemplateVariable;
|
||||
exports.buildRegex = buildRegex;
|
||||
@@ -76,6 +78,45 @@ function splitKeyParams(paramStr) {
|
||||
return params;
|
||||
}
|
||||
|
||||
///////////
|
||||
// MACRO //
|
||||
///////////
|
||||
|
||||
var MACRO_PATTERN = /{\$[A-Z0-9_\.]+}/g;
|
||||
|
||||
function containsMacro(itemName) {
|
||||
return MACRO_PATTERN.test(itemName);
|
||||
}
|
||||
|
||||
function replaceMacro(item, macros) {
|
||||
var itemName = item.name;
|
||||
var item_macros = itemName.match(MACRO_PATTERN);
|
||||
_lodash2.default.forEach(item_macros, function (macro) {
|
||||
var host_macros = _lodash2.default.filter(macros, function (m) {
|
||||
if (m.hostid) {
|
||||
return m.hostid === item.hostid;
|
||||
} else {
|
||||
// Add global macros
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
var macro_def = _lodash2.default.find(host_macros, { macro: macro });
|
||||
if (macro_def && macro_def.value) {
|
||||
var macro_value = macro_def.value;
|
||||
var macro_regex = new RegExp(escapeMacro(macro));
|
||||
itemName = itemName.replace(macro_regex, macro_value);
|
||||
}
|
||||
});
|
||||
|
||||
return itemName;
|
||||
}
|
||||
|
||||
function escapeMacro(macro) {
|
||||
macro = macro.replace(/\$/, '\\\$');
|
||||
return macro;
|
||||
}
|
||||
|
||||
// Pattern for testing regex
|
||||
var regexPattern = exports.regexPattern = /^\/(.*)\/([gmi]*)$/m;
|
||||
|
||||
|
||||
39
dist/test/datasource-zabbix/zabbix.js
vendored
39
dist/test/datasource-zabbix/zabbix.js
vendored
@@ -165,8 +165,8 @@ function ZabbixFactory(zabbixAPIService, ZabbixCachingProxy) {
|
||||
var hostids = getHostIds(items);
|
||||
return this.getMacros(hostids).then(function (macros) {
|
||||
_lodash2.default.forEach(items, function (item) {
|
||||
if (containsMacro(item.name)) {
|
||||
item.name = replaceMacro(item, macros);
|
||||
if (utils.containsMacro(item.name)) {
|
||||
item.name = utils.replaceMacro(item, macros);
|
||||
}
|
||||
});
|
||||
return items;
|
||||
@@ -287,38 +287,3 @@ function getHostIds(items) {
|
||||
});
|
||||
return _lodash2.default.uniq(_lodash2.default.flatten(hostIds));
|
||||
}
|
||||
|
||||
var MACRO_PATTERN = /{\$[A-Z0-9_\.]+}/g;
|
||||
|
||||
function containsMacro(itemName) {
|
||||
return MACRO_PATTERN.test(itemName);
|
||||
}
|
||||
|
||||
function replaceMacro(item, macros) {
|
||||
var itemName = item.name;
|
||||
var item_macros = itemName.match(MACRO_PATTERN);
|
||||
_lodash2.default.forEach(item_macros, function (macro) {
|
||||
var host_macros = _lodash2.default.filter(macros, function (m) {
|
||||
if (m.hostid) {
|
||||
return m.hostid === item.hostid;
|
||||
} else {
|
||||
// Add global macros
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
var macro_def = _lodash2.default.find(host_macros, { macro: macro });
|
||||
if (macro_def && macro_def.value) {
|
||||
var macro_value = macro_def.value;
|
||||
var macro_regex = new RegExp(escapeMacro(macro));
|
||||
itemName = itemName.replace(macro_regex, macro_value);
|
||||
}
|
||||
});
|
||||
|
||||
return itemName;
|
||||
}
|
||||
|
||||
function escapeMacro(macro) {
|
||||
macro = macro.replace(/\$/, '\\\$');
|
||||
return macro;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user