mirror of
https://github.com/grafana/grafana.git
synced 2025-02-10 07:35:45 -06:00
Prometheus: Add backslash escaping for template variables (#26205)
* Run query on splitOpen action
* Escape \ in prometheusRegularEscape
* Revert "Run query on splitOpen action"
This reverts commit 3559b6c573
.
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
This commit is contained in:
parent
bf5d52c5c7
commit
bf835af74b
@ -415,9 +415,17 @@ describe('PrometheusDatasource', () => {
|
||||
expect(prometheusRegularEscape("looking'glass")).toEqual("looking\\\\'glass");
|
||||
});
|
||||
|
||||
it('should escape \\', () => {
|
||||
expect(prometheusRegularEscape('looking\\glass')).toEqual('looking\\\\glass');
|
||||
});
|
||||
|
||||
it('should escape multiple characters', () => {
|
||||
expect(prometheusRegularEscape("'looking'glass'")).toEqual("\\\\'looking\\\\'glass\\\\'");
|
||||
});
|
||||
|
||||
it('should escape multiple different characters', () => {
|
||||
expect(prometheusRegularEscape("'loo\\king'glass'")).toEqual("\\\\'loo\\\\king\\\\'glass\\\\'");
|
||||
});
|
||||
});
|
||||
|
||||
describe('Prometheus regexes escaping', () => {
|
||||
|
@ -764,11 +764,9 @@ export function extractRuleMappingFromGroups(groups: any[]) {
|
||||
}
|
||||
|
||||
export function prometheusRegularEscape(value: any) {
|
||||
return typeof value === 'string' ? value.replace(/'/g, "\\\\'") : value;
|
||||
return typeof value === 'string' ? value.replace(/\\/g, '\\\\').replace(/'/g, "\\\\'") : value;
|
||||
}
|
||||
|
||||
export function prometheusSpecialRegexEscape(value: any) {
|
||||
return typeof value === 'string'
|
||||
? prometheusRegularEscape(value.replace(/\\/g, '\\\\\\\\').replace(/[$^*{}\[\]+?.()|]/g, '\\\\$&'))
|
||||
: value;
|
||||
return typeof value === 'string' ? value.replace(/\\/g, '\\\\\\\\').replace(/[$^*{}\[\]\'+?.()|]/g, '\\\\$&') : value;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user