|
@@ -1,5 +1,9 @@
|
|
package com.provectus.kafka.ui.controller;
|
|
package com.provectus.kafka.ui.controller;
|
|
|
|
|
|
|
|
+import static com.provectus.kafka.ui.model.ConnectorActionDTO.RESTART;
|
|
|
|
+import static com.provectus.kafka.ui.model.ConnectorActionDTO.RESTART_ALL_TASKS;
|
|
|
|
+import static com.provectus.kafka.ui.model.ConnectorActionDTO.RESTART_FAILED_TASKS;
|
|
|
|
+
|
|
import com.provectus.kafka.ui.api.KafkaConnectApi;
|
|
import com.provectus.kafka.ui.api.KafkaConnectApi;
|
|
import com.provectus.kafka.ui.model.ConnectDTO;
|
|
import com.provectus.kafka.ui.model.ConnectDTO;
|
|
import com.provectus.kafka.ui.model.ConnectorActionDTO;
|
|
import com.provectus.kafka.ui.model.ConnectorActionDTO;
|
|
@@ -17,6 +21,7 @@ import com.provectus.kafka.ui.service.KafkaConnectService;
|
|
import com.provectus.kafka.ui.service.rbac.AccessControlService;
|
|
import com.provectus.kafka.ui.service.rbac.AccessControlService;
|
|
import java.util.Comparator;
|
|
import java.util.Comparator;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.Set;
|
|
import javax.validation.Valid;
|
|
import javax.validation.Valid;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -30,6 +35,8 @@ import reactor.core.publisher.Mono;
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
@Slf4j
|
|
@Slf4j
|
|
public class KafkaConnectController extends AbstractController implements KafkaConnectApi {
|
|
public class KafkaConnectController extends AbstractController implements KafkaConnectApi {
|
|
|
|
+ private static final Set<ConnectorActionDTO> RESTART_ACTIONS
|
|
|
|
+ = Set.of(RESTART, RESTART_FAILED_TASKS, RESTART_ALL_TASKS);
|
|
private final KafkaConnectService kafkaConnectService;
|
|
private final KafkaConnectService kafkaConnectService;
|
|
private final AccessControlService accessControlService;
|
|
private final AccessControlService accessControlService;
|
|
|
|
|
|
@@ -172,10 +179,17 @@ public class KafkaConnectController extends AbstractController implements KafkaC
|
|
ConnectorActionDTO action,
|
|
ConnectorActionDTO action,
|
|
ServerWebExchange exchange) {
|
|
ServerWebExchange exchange) {
|
|
|
|
|
|
|
|
+ ConnectAction[] connectActions;
|
|
|
|
+ if (RESTART_ACTIONS.contains(action)) {
|
|
|
|
+ connectActions = new ConnectAction[] {ConnectAction.VIEW, ConnectAction.RESTART};
|
|
|
|
+ } else {
|
|
|
|
+ connectActions = new ConnectAction[] {ConnectAction.VIEW, ConnectAction.EDIT};
|
|
|
|
+ }
|
|
|
|
+
|
|
Mono<Void> validateAccess = accessControlService.validateAccess(AccessContext.builder()
|
|
Mono<Void> validateAccess = accessControlService.validateAccess(AccessContext.builder()
|
|
.cluster(clusterName)
|
|
.cluster(clusterName)
|
|
.connect(connectName)
|
|
.connect(connectName)
|
|
- .connectActions(ConnectAction.VIEW, ConnectAction.EDIT)
|
|
|
|
|
|
+ .connectActions(connectActions)
|
|
.build());
|
|
.build());
|
|
|
|
|
|
return validateAccess.then(
|
|
return validateAccess.then(
|
|
@@ -253,16 +267,11 @@ public class KafkaConnectController extends AbstractController implements KafkaC
|
|
if (orderBy == null) {
|
|
if (orderBy == null) {
|
|
return defaultComparator;
|
|
return defaultComparator;
|
|
}
|
|
}
|
|
- switch (orderBy) {
|
|
|
|
- case CONNECT:
|
|
|
|
- return Comparator.comparing(FullConnectorInfoDTO::getConnect);
|
|
|
|
- case TYPE:
|
|
|
|
- return Comparator.comparing(FullConnectorInfoDTO::getType);
|
|
|
|
- case STATUS:
|
|
|
|
- return Comparator.comparing(fullConnectorInfoDTO -> fullConnectorInfoDTO.getStatus().getState());
|
|
|
|
- case NAME:
|
|
|
|
- default:
|
|
|
|
- return defaultComparator;
|
|
|
|
- }
|
|
|
|
|
|
+ return switch (orderBy) {
|
|
|
|
+ case CONNECT -> Comparator.comparing(FullConnectorInfoDTO::getConnect);
|
|
|
|
+ case TYPE -> Comparator.comparing(FullConnectorInfoDTO::getType);
|
|
|
|
+ case STATUS -> Comparator.comparing(fullConnectorInfoDTO -> fullConnectorInfoDTO.getStatus().getState());
|
|
|
|
+ default -> defaultComparator;
|
|
|
|
+ };
|
|
}
|
|
}
|
|
}
|
|
}
|