Skip to content

Commit 70517a0

Browse files
committed
Add dropdown options to pause and stop connectors
1 parent fd5fedf commit 70517a0

File tree

6 files changed

+84
-4
lines changed

6 files changed

+84
-4
lines changed

api/src/main/java/io/kafbat/ui/client/RetryingKafkaConnectClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,11 @@ public Mono<Void> pauseConnector(String connectorName) throws WebClientResponseE
190190
return withRetryOnConflict(super.pauseConnector(connectorName));
191191
}
192192

193+
@Override
194+
public Mono<Void> stopConnector(String connectorName) throws WebClientResponseException {
195+
return withRetryOnConflict(super.stopConnector(connectorName));
196+
}
197+
193198
@Override
194199
public Mono<ResponseEntity<Void>> pauseConnectorWithHttpInfo(String connectorName) throws WebClientResponseException {
195200
return withRetryOnConflict(super.pauseConnectorWithHttpInfo(connectorName));

api/src/main/java/io/kafbat/ui/service/KafkaConnectService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,8 @@ public Mono<Void> updateConnectorState(KafkaCluster cluster, String connectName,
229229
t -> t.getStatus().getState() == ConnectorTaskStatusDTO.FAILED);
230230
case PAUSE:
231231
return client.pauseConnector(connectorName);
232+
case STOP:
233+
return client.stopConnector(connectorName);
232234
case RESUME:
233235
return client.resumeConnector(connectorName);
234236
default:

contract/src/main/resources/swagger/kafbat-ui-api.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1542,7 +1542,7 @@ paths:
15421542
post:
15431543
tags:
15441544
- Kafka Connect
1545-
summary: update connector state (restart, pause or resume)
1545+
summary: update connector state (restart, pause, stop or resume)
15461546
operationId: updateConnectorState
15471547
parameters:
15481548
- name: clusterName
@@ -3482,6 +3482,7 @@ components:
34823482
- RESTART_FAILED_TASKS
34833483
- PAUSE
34843484
- RESUME
3485+
- STOP
34853486

34863487
TaskAction:
34873488
type: string
@@ -3867,7 +3868,16 @@ components:
38673868

38683869
KafkaAcl:
38693870
type: object
3870-
required: [resourceType, resourceName, namePatternType, principal, host, operation, permission]
3871+
required:
3872+
[
3873+
resourceType,
3874+
resourceName,
3875+
namePatternType,
3876+
principal,
3877+
host,
3878+
operation,
3879+
permission,
3880+
]
38713881
properties:
38723882
resourceType:
38733883
$ref: '#/components/schemas/KafkaAclResourceType'

contract/src/main/resources/swagger/kafka-connect-api.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,22 @@ paths:
230230
202:
231231
description: Accepted
232232

233+
/connectors/{connectorName}/stop:
234+
put:
235+
tags:
236+
- KafkaConnectClient
237+
summary: stop the connector
238+
operationId: stopConnector
239+
parameters:
240+
- name: connectorName
241+
in: path
242+
required: true
243+
schema:
244+
type: string
245+
responses:
246+
204:
247+
description: No Content
248+
233249
/connectors/{connectorName}/tasks:
234250
get:
235251
tags:

frontend/src/components/Connect/Details/Actions/Actions.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ const Actions: React.FC = () => {
5959
stateMutation.mutateAsync(ConnectorAction.RESTART_FAILED_TASKS);
6060
const pauseConnectorHandler = () =>
6161
stateMutation.mutateAsync(ConnectorAction.PAUSE);
62+
const stopConnectorHandler = () =>
63+
stateMutation.mutateAsync(ConnectorAction.STOP);
6264
const resumeConnectorHandler = () =>
6365
stateMutation.mutateAsync(ConnectorAction.RESUME);
6466
return (
@@ -84,7 +86,20 @@ const Actions: React.FC = () => {
8486
Pause
8587
</ActionDropdownItem>
8688
)}
87-
{connector?.status.state === ConnectorState.PAUSED && (
89+
{connector?.status.state === ConnectorState.RUNNING && (
90+
<ActionDropdownItem
91+
onClick={stopConnectorHandler}
92+
disabled={isMutating}
93+
permission={{
94+
resource: ResourceType.CONNECT,
95+
action: Action.EDIT,
96+
value: routerProps.connectName,
97+
}}
98+
>
99+
Stop Connector
100+
</ActionDropdownItem>
101+
)}
102+
{(connector?.status.state === ConnectorState.PAUSED || connector?.status.state === ConnectorState.STOPPED) && (
88103
<ActionDropdownItem
89104
onClick={resumeConnectorHandler}
90105
disabled={isMutating}

frontend/src/components/Connect/List/ActionsCell.tsx

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,15 @@ const ActionsCell: React.FC<CellContext<FullConnectorInfo, unknown>> = ({
5858
const restartFailedTasksHandler = () =>
5959
stateMutation.mutateAsync(ConnectorAction.RESTART_FAILED_TASKS);
6060

61+
const pauseConnectorHandler = () =>
62+
stateMutation.mutateAsync(ConnectorAction.PAUSE);
63+
64+
const stopConnectorHandler = () =>
65+
stateMutation.mutateAsync(ConnectorAction.STOP);
66+
6167
return (
6268
<Dropdown>
63-
{status.state === ConnectorState.PAUSED && (
69+
{(status.state === ConnectorState.PAUSED || status.state === ConnectorState.STOPPED) && (
6470
<ActionDropdownItem
6571
onClick={resumeConnectorHandler}
6672
disabled={isMutating}
@@ -73,6 +79,32 @@ const ActionsCell: React.FC<CellContext<FullConnectorInfo, unknown>> = ({
7379
Resume
7480
</ActionDropdownItem>
7581
)}
82+
{status.state === ConnectorState.RUNNING && (
83+
<ActionDropdownItem
84+
onClick={pauseConnectorHandler}
85+
disabled={isMutating}
86+
permission={{
87+
resource: ResourceType.CONNECT,
88+
action: Action.EDIT,
89+
value: connect,
90+
}}
91+
>
92+
Pause Connector
93+
</ActionDropdownItem>
94+
)}
95+
{status.state === ConnectorState.RUNNING && (
96+
<ActionDropdownItem
97+
onClick={stopConnectorHandler}
98+
disabled={isMutating}
99+
permission={{
100+
resource: ResourceType.CONNECT,
101+
action: Action.EDIT,
102+
value: connect,
103+
}}
104+
>
105+
Stop Connector
106+
</ActionDropdownItem>
107+
)}
76108
<ActionDropdownItem
77109
onClick={restartConnectorHandler}
78110
disabled={isMutating}

0 commit comments

Comments
 (0)