mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 08:05:43 -06:00
(cloudwatch) don't expand variable when panel or row repeat is used (#6618)
* (cloudwatch) don't expand variable when panel or row repeat is used * fix test
This commit is contained in:
parent
be26c017f6
commit
5f6a3ecd56
@ -112,10 +112,18 @@ function (angular, _, kbn) {
|
||||
this._grafanaVariables[name] = value;
|
||||
};
|
||||
|
||||
this.variableExists = function(expression) {
|
||||
this.getVariableName = function(expression) {
|
||||
this._regex.lastIndex = 0;
|
||||
var match = this._regex.exec(expression);
|
||||
return match && (self._index[match[1] || match[2]] !== void 0);
|
||||
if (!match) {
|
||||
return null;
|
||||
}
|
||||
return match[1] || match[2];
|
||||
};
|
||||
|
||||
this.variableExists = function(expression) {
|
||||
var name = this.getVariableName(expression);
|
||||
return name && (self._index[name] !== void 0);
|
||||
};
|
||||
|
||||
this.highlightVariablesAsHtml = function(str) {
|
||||
|
@ -31,7 +31,7 @@ function (angular, _, moment, dateMath, kbn, CloudWatchAnnotationQuery) {
|
||||
|
||||
var queries = [];
|
||||
options = angular.copy(options);
|
||||
options.targets = this.expandTemplateVariable(options.targets, templateSrv);
|
||||
options.targets = this.expandTemplateVariable(options.targets, options.scopedVars, templateSrv);
|
||||
_.each(options.targets, function(target) {
|
||||
if (target.hide || !target.namespace || !target.metricName || _.isEmpty(target.statistics)) {
|
||||
return;
|
||||
@ -412,12 +412,12 @@ function (angular, _, moment, dateMath, kbn, CloudWatchAnnotationQuery) {
|
||||
return str.indexOf('$' + variableName) !== -1;
|
||||
};
|
||||
|
||||
this.expandTemplateVariable = function(targets, templateSrv) {
|
||||
this.expandTemplateVariable = function(targets, scopedVars, templateSrv) {
|
||||
var self = this;
|
||||
return _.chain(targets)
|
||||
.map(function(target) {
|
||||
var dimensionKey = _.findKey(target.dimensions, function(v) {
|
||||
return templateSrv.variableExists(v);
|
||||
return templateSrv.variableExists(v) && !_.has(scopedVars, templateSrv.getVariableName(v));
|
||||
});
|
||||
|
||||
if (dimensionKey) {
|
||||
|
@ -139,6 +139,7 @@ describe('CloudWatchDatasource', function() {
|
||||
]
|
||||
}
|
||||
],
|
||||
getVariableName: function (e) { return 'instance_id'; },
|
||||
variableExists: function (e) { return true; },
|
||||
containsVariable: function (str, variableName) { return str.indexOf('$' + variableName) !== -1; }
|
||||
};
|
||||
@ -156,7 +157,7 @@ describe('CloudWatchDatasource', function() {
|
||||
}
|
||||
];
|
||||
|
||||
var result = ctx.ds.expandTemplateVariable(targets, templateSrv);
|
||||
var result = ctx.ds.expandTemplateVariable(targets, {}, templateSrv);
|
||||
expect(result[0].dimensions.InstanceId).to.be('i-34567890');
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user