@@ -71,49 +71,50 @@ export class OCIDataSource extends DataSourceWithBackend<OCIQuery, OCIDataSource
7171 */
7272 applyTemplateVariables ( query : OCIQuery , scopedVars : ScopedVars ) {
7373 const templateSrv = getTemplateSrv ( ) ;
74+ const interpolatedQ = _ . cloneDeep ( query ) ;
7475
7576 const TimeStart = parseInt ( getTemplateSrv ( ) . replace ( "${__from}" ) , 10 )
7677 const TimeEnd = parseInt ( getTemplateSrv ( ) . replace ( "${__to}" ) , 10 )
77- if ( this . isVariable ( query . interval ) ) {
78- query . interval = templateSrv . replace ( query . interval , scopedVars ) ;
79- }
80- if ( query . interval === QueryPlaceholder . Interval || query . interval === "auto" || query . interval === undefined ) {
81- query . interval = SetAutoInterval ( TimeStart , TimeEnd ) ;
82- }
83- query . region = templateSrv . replace ( query . region , scopedVars ) ;
84- query . tenancy = templateSrv . replace ( query . tenancy , scopedVars ) ;
85- query . compartment = templateSrv . replace ( query . compartment , scopedVars , this . compartmentFormatter ) ;
86- query . namespace = templateSrv . replace ( query . namespace , scopedVars ) ;
87- query . resourcegroup = templateSrv . replace ( query . resourcegroup , scopedVars ) ;
88- query . metric = templateSrv . replace ( query . metric , scopedVars ) ;
89- query . queryTextRaw = templateSrv . replace ( query . queryTextRaw , scopedVars ) ;
90-
91- if ( query . dimensionValues ) {
92- for ( let i = 0 ; i < query . dimensionValues . length ; i ++ ) {
93- query . dimensionValues [ i ] = templateSrv . replace ( query . dimensionValues [ i ] , scopedVars ) ;
78+ if ( this . isVariable ( interpolatedQ . interval ) ) {
79+ interpolatedQ . interval = templateSrv . replace ( interpolatedQ . interval , scopedVars ) ;
80+ }
81+ if ( interpolatedQ . interval === QueryPlaceholder . Interval || interpolatedQ . interval === "auto" || interpolatedQ . interval === undefined ) {
82+ interpolatedQ . interval = SetAutoInterval ( TimeStart , TimeEnd ) ;
83+ }
84+ interpolatedQ . region = templateSrv . replace ( interpolatedQ . region , scopedVars ) ;
85+ interpolatedQ . tenancy = templateSrv . replace ( interpolatedQ . tenancy , scopedVars ) ;
86+ interpolatedQ . compartment = templateSrv . replace ( interpolatedQ . compartment , scopedVars , this . compartmentFormatter ) ;
87+ interpolatedQ . namespace = templateSrv . replace ( interpolatedQ . namespace , scopedVars ) ;
88+ interpolatedQ . resourcegroup = templateSrv . replace ( interpolatedQ . resourcegroup , scopedVars ) ;
89+ interpolatedQ . metric = templateSrv . replace ( interpolatedQ . metric , scopedVars ) ;
90+ interpolatedQ . queryTextRaw = templateSrv . replace ( interpolatedQ . queryTextRaw , scopedVars ) ;
91+
92+ if ( interpolatedQ . dimensionValues ) {
93+ for ( let i = 0 ; i < interpolatedQ . dimensionValues . length ; i ++ ) {
94+ interpolatedQ . dimensionValues [ i ] = templateSrv . replace ( interpolatedQ . dimensionValues [ i ] , scopedVars ) ;
9495 }
9596 }
96- if ( query . tenancy ) {
97- query . tenancy = templateSrv . replace ( query . tenancy , scopedVars ) ;
97+ if ( interpolatedQ . tenancy ) {
98+ interpolatedQ . tenancy = templateSrv . replace ( interpolatedQ . tenancy , scopedVars ) ;
9899 }
99- if ( query . compartment ) {
100- query . compartment = templateSrv . replace ( query . compartment , scopedVars , this . compartmentFormatter ) ;
100+ if ( interpolatedQ . compartment ) {
101+ interpolatedQ . compartment = templateSrv . replace ( interpolatedQ . compartment , scopedVars , this . compartmentFormatter ) ;
101102 }
102- if ( query . resourcegroup ) {
103- query . resourcegroup = templateSrv . replace ( query . resourcegroup , scopedVars ) ;
103+ if ( interpolatedQ . resourcegroup ) {
104+ interpolatedQ . resourcegroup = templateSrv . replace ( interpolatedQ . resourcegroup , scopedVars ) ;
104105 }
105106
106- const queryModel = new QueryModel ( query , getTemplateSrv ( ) ) ;
107+ const queryModel = new QueryModel ( interpolatedQ , getTemplateSrv ( ) ) ;
107108 if ( queryModel . isQueryReady ( ) ) {
108- if ( query . rawQuery === false && query . queryTextRaw !== '' ) {
109- query . queryTextRaw = templateSrv . replace ( query . queryTextRaw , scopedVars ) ;
110- query . queryText = queryModel . buildQuery ( String ( query . queryTextRaw ) ) ;
109+ if ( interpolatedQ . rawQuery === false && interpolatedQ . queryTextRaw !== '' ) {
110+ interpolatedQ . queryTextRaw = templateSrv . replace ( interpolatedQ . queryTextRaw , scopedVars ) ;
111+ interpolatedQ . queryText = queryModel . buildQuery ( String ( interpolatedQ . queryTextRaw ) ) ;
111112 } else {
112- query . queryText = queryModel . buildQuery ( String ( query . metric ) ) ;
113+ interpolatedQ . queryText = queryModel . buildQuery ( String ( interpolatedQ . metric ) ) ;
113114 }
114115
115116 }
116- return query ;
117+ return interpolatedQ ;
117118 }
118119
119120
0 commit comments