Commit a8e3f731 by Torkel Ödegaard

feat(influxdb): began work on influxdb policy selector

parent 0cb68b86
......@@ -12,6 +12,7 @@ export default class InfluxQuery {
constructor(target) {
this.target = target;
target.policy = target.policy || 'default';
target.dsType = 'influxdb';
target.resultFormat = target.resultFormat || 'time_series';
target.tags = target.tags || [];
......
......@@ -46,6 +46,9 @@
FROM
</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>
</li>
<li class="tight-form-item query-keyword" style="padding-left: 15px; padding-right: 15px;">
......
......@@ -62,6 +62,9 @@ function (_) {
} else if (type === 'FIELDS') {
query = 'SHOW FIELD KEYS FROM "' + this.target.measurement + '"';
return query;
} else if (type === 'RETENTION POLICIES') {
query = 'SHOW RETENTION POLICIES';
return query;
}
if (measurement) {
......
......@@ -28,6 +28,8 @@ function (angular, _, InfluxQueryBuilder, InfluxQuery, queryPart) {
{text: 'Table', value: 'table'},
];
$scope.policySegment = uiSegmentSrv.newSegment($scope.target.policy);
if (!$scope.target.measurement) {
$scope.measurementSegment = uiSegmentSrv.newSelectMeasurement();
} else {
......@@ -131,6 +133,18 @@ function (angular, _, InfluxQueryBuilder, InfluxQuery, queryPart) {
$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.target.rawQuery = !$scope.target.rawQuery;
};
......
......@@ -70,6 +70,10 @@ describe('InfluxQueryBuilder', function() {
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