Commit a8e3f731 by Torkel Ödegaard

feat(influxdb): began work on influxdb policy selector

parent 0cb68b86
...@@ -12,6 +12,7 @@ export default class InfluxQuery { ...@@ -12,6 +12,7 @@ export default class InfluxQuery {
constructor(target) { constructor(target) {
this.target = target; this.target = target;
target.policy = target.policy || 'default';
target.dsType = 'influxdb'; target.dsType = 'influxdb';
target.resultFormat = target.resultFormat || 'time_series'; target.resultFormat = target.resultFormat || 'time_series';
target.tags = target.tags || []; target.tags = target.tags || [];
......
...@@ -46,6 +46,9 @@ ...@@ -46,6 +46,9 @@
FROM FROM
</li> </li>
<li> <li>
<metric-segment segment="policySegment" get-options="getPolicySegments()" on-change="policyChanged()"></metric-segment>
</li>
<li>
<metric-segment segment="measurementSegment" get-options="getMeasurements()" on-change="measurementChanged()"></metric-segment> <metric-segment segment="measurementSegment" get-options="getMeasurements()" on-change="measurementChanged()"></metric-segment>
</li> </li>
<li class="tight-form-item query-keyword" style="padding-left: 15px; padding-right: 15px;"> <li class="tight-form-item query-keyword" style="padding-left: 15px; padding-right: 15px;">
......
...@@ -62,6 +62,9 @@ function (_) { ...@@ -62,6 +62,9 @@ function (_) {
} else if (type === 'FIELDS') { } else if (type === 'FIELDS') {
query = 'SHOW FIELD KEYS FROM "' + this.target.measurement + '"'; query = 'SHOW FIELD KEYS FROM "' + this.target.measurement + '"';
return query; return query;
} else if (type === 'RETENTION POLICIES') {
query = 'SHOW RETENTION POLICIES';
return query;
} }
if (measurement) { if (measurement) {
......
...@@ -28,6 +28,8 @@ function (angular, _, InfluxQueryBuilder, InfluxQuery, queryPart) { ...@@ -28,6 +28,8 @@ function (angular, _, InfluxQueryBuilder, InfluxQuery, queryPart) {
{text: 'Table', value: 'table'}, {text: 'Table', value: 'table'},
]; ];
$scope.policySegment = uiSegmentSrv.newSegment($scope.target.policy);
if (!$scope.target.measurement) { if (!$scope.target.measurement) {
$scope.measurementSegment = uiSegmentSrv.newSelectMeasurement(); $scope.measurementSegment = uiSegmentSrv.newSelectMeasurement();
} else { } else {
...@@ -131,6 +133,18 @@ function (angular, _, InfluxQueryBuilder, InfluxQuery, queryPart) { ...@@ -131,6 +133,18 @@ function (angular, _, InfluxQueryBuilder, InfluxQuery, queryPart) {
$scope.get_data(); $scope.get_data();
}; };
$scope.getPolicySegments = function() {
var policiesQuery = $scope.queryBuilder.buildExploreQuery('RETENTION POLICIES');
return $scope.datasource.metricFindQuery(policiesQuery)
.then($scope.transformToSegments(false))
.then(null, $scope.handleQueryError);
};
$scope.policyChanged = function() {
$scope.target.policy = $scope.policySegment.value;
$scope.get_data();
};
$scope.toggleQueryMode = function () { $scope.toggleQueryMode = function () {
$scope.target.rawQuery = !$scope.target.rawQuery; $scope.target.rawQuery = !$scope.target.rawQuery;
}; };
......
...@@ -70,6 +70,10 @@ describe('InfluxQueryBuilder', function() { ...@@ -70,6 +70,10 @@ describe('InfluxQueryBuilder', function() {
expect(query).to.be('SHOW FIELD KEYS FROM "cpu"'); expect(query).to.be('SHOW FIELD KEYS FROM "cpu"');
}); });
it('should build show retention policies query', function() {
var builder = new InfluxQueryBuilder({measurement: 'cpu', tags: []});
var query = builder.buildExploreQuery('RETENTION POLICIES');
expect(query).to.be('SHOW RETENTION POLICIES');
});
}); });
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment