-
Notifications
You must be signed in to change notification settings - Fork 210
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Endpoint for moving subscription offsets to the latest position (#1662)
* Move consumers offsets to the latest value before subscription removal * Move consumers offsets to the latest positions endpoint * Move consumers offsets to the latest offset endpoint * UI draft for moving subscription offsets * Display errors when missing consumer group while moving offsets * Fix checkstyle errors * Fix checkstyle errors * Improve placeholder for moving offsets
- Loading branch information
Showing
26 changed files
with
396 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
49 changes: 49 additions & 0 deletions
49
hermes-console/static/js/console/subscriptionoffsets/SubscriptionOffsetsController.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
var subscriptionOffsets = angular.module('hermes.subscriptionOffsets', ['hermes.subscriptionOffsets.service']); | ||
|
||
subscriptionOffsets.controller('SubscriptionOffsetsController', ['$scope', 'SubscriptionService', 'toaster', | ||
function ($scope, subscriptionService, toaster) { | ||
$scope.error = null; | ||
$scope.subscriptionFullName = ''; | ||
|
||
$scope.moveOffsets = function () { | ||
var subscription = parseSubscription($scope.subscriptionFullName); | ||
subscriptionService.moveOffsets(subscription.topicName, subscription.subscriptionName) | ||
.then(function () { | ||
clearError(); | ||
clearData(); | ||
displaySuccess(); | ||
}) | ||
.catch(function (e) { | ||
displayError(e); | ||
}); | ||
}; | ||
|
||
function displayError(msg) { | ||
$scope.error = msg; | ||
} | ||
|
||
function clearError() { | ||
$scope.error = null; | ||
} | ||
|
||
function displaySuccess() { | ||
toaster.pop('success', 'Success', 'Offsets moved successfully'); | ||
} | ||
|
||
function clearData() { | ||
$scope.subscriptionFullName = ""; | ||
} | ||
|
||
function parseSubscription(subscriptionFullName) { | ||
var subscriptionChunks = subscriptionFullName.split('.'); | ||
var subscriptionName = subscriptionChunks.pop(); | ||
return { | ||
topicName: subscriptionChunks.join('.'), | ||
subscriptionName: subscriptionName, | ||
}; | ||
} | ||
|
||
function validate() { | ||
|
||
} | ||
}]); |
17 changes: 17 additions & 0 deletions
17
hermes-console/static/js/console/subscriptionoffsets/SubsriptionService.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
var service = angular.module('hermes.subscriptionOffsets.service', ['hermes.discovery']); | ||
|
||
repository.factory('SubscriptionService', ['DiscoveryService', '$resource', | ||
function (discovery, $resource) { | ||
var subscriptionOffsetsEndpoint = $resource(discovery.resolve('/topics/:topicName/subscriptions/:subscriptionName/moveOffsetsToTheEnd'), null, { | ||
query: { | ||
method: 'POST', | ||
isArray: true | ||
} | ||
}); | ||
|
||
return { | ||
moveOffsets: function (topicName, subscriptionName) { | ||
return subscriptionOffsetsEndpoint.save({topicName: topicName, subscriptionName: subscriptionName}, {}).$promise; | ||
} | ||
}; | ||
}]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<section ng-controller="SubscriptionOffsetsController"> | ||
|
||
<ol class="breadcrumb"> | ||
<li><a href="#/">home</a></li> | ||
<li class="active">subscription-offsets</li> | ||
</ol> | ||
|
||
<div class="alert alert-danger" role="alert" ng-if="error"> | ||
Error during moving offsets for subscription:<br> | ||
{{error}} | ||
</div> | ||
|
||
<h1>Move subscription offsets to the end</h1> | ||
<div class="container"> | ||
<div class="row"> | ||
<form name="moveOffsetsForm" class="form col-md-10"> | ||
<div class="row"> | ||
<div class="col-md-6 padding-lr-2"> | ||
<div class="form-group"> | ||
<input name="subscriptionFullName" class="form-control" placeholder="groupName.topicName.subscriptionName" | ||
ng-model="subscriptionFullName" required pattern="(.+)\.(.+)\.(.+)"/> | ||
</div> | ||
</div> | ||
<div class="col-md-2 padding-lr-2"> | ||
<button type="submit" class="btn btn-primary" ng-disabled="moveOffsetsForm.$invalid" ng-click="moveOffsets()">Move</button> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
</section> |
1 change: 0 additions & 1 deletion
1
...pl/allegro/tech/hermes/consumers/consumer/receiver/kafka/KafkaMessageReceiverFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
.../hermes/management/infrastructure/kafka/MovingSubscriptionOffsetsValidationException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package pl.allegro.tech.hermes.management.infrastructure.kafka; | ||
|
||
import pl.allegro.tech.hermes.api.ErrorCode; | ||
import pl.allegro.tech.hermes.management.domain.ManagementException; | ||
|
||
public class MovingSubscriptionOffsetsValidationException extends ManagementException { | ||
public MovingSubscriptionOffsetsValidationException(String msg) { | ||
super(msg); | ||
} | ||
|
||
@Override | ||
public ErrorCode getCode() { | ||
return ErrorCode.MOVING_SUBSCRIPTION_OFFSETS_VALIDATION_ERROR; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.