Pārlūkot izejas kodu

ISSUE-1444: Additional params added to connector restart endpoint to be able to… (#1445)

* Additional params added to connector restart endpoint to be able to restart not only connector instance, but all its tasks
* RESTARTING state added to ConnectorTaskStatus
* Restart connector button rename

Co-authored-by: iliax <ikuramshin@provectus.com>
Ilya Kuramshin 3 gadi atpakaļ
vecāks
revīzija
f85a340b79

+ 2 - 1
kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/KafkaConnectService.java

@@ -266,7 +266,8 @@ public class KafkaConnectService {
     switch (action) {
     switch (action) {
       case RESTART:
       case RESTART:
         kafkaClientCall =
         kafkaClientCall =
-            connect -> KafkaConnectClients.withBaseUrl(connect).restartConnector(connectorName);
+            connect -> KafkaConnectClients.withBaseUrl(connect)
+                .restartConnector(connectorName, true, false);
         break;
         break;
       case PAUSE:
       case PAUSE:
         kafkaClientCall =
         kafkaClientCall =

+ 17 - 1
kafka-ui-contract/src/main/resources/swagger/kafka-connect-api.yaml

@@ -169,7 +169,7 @@ paths:
     post:
     post:
       tags:
       tags:
         - KafkaConnectClient
         - KafkaConnectClient
-      summary: restart the connector
+      summary: restart the connector and its tasks
       operationId: restartConnector
       operationId: restartConnector
       parameters:
       parameters:
         - name: connectorName
         - name: connectorName
@@ -177,6 +177,21 @@ paths:
           required: true
           required: true
           schema:
           schema:
             type: string
             type: string
+        - name: includeTasks
+          in: query
+          required: false
+          schema:
+            type: boolean
+            default: false
+          description: Specifies whether to restart the connector instance and task instances or just the connector instance
+        - name: onlyFailed
+          in: query
+          required: false
+          schema:
+            type: boolean
+            default: false
+          description: Specifies whether to restart just the instances with a FAILED status or all instances
+
       responses:
       responses:
         200:
         200:
           description: OK
           description: OK
@@ -406,6 +421,7 @@ components:
             - RUNNING
             - RUNNING
             - FAILED
             - FAILED
             - PAUSED
             - PAUSED
+            - RESTARTING
             - UNASSIGNED
             - UNASSIGNED
         worker_id:
         worker_id:
           type: string
           type: string

+ 1 - 0
kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml

@@ -2396,6 +2396,7 @@ components:
         - RUNNING
         - RUNNING
         - FAILED
         - FAILED
         - PAUSED
         - PAUSED
+        - RESTARTING
         - UNASSIGNED
         - UNASSIGNED
 
 
     ConnectorState:
     ConnectorState:

+ 1 - 1
kafka-ui-react-app/src/components/Connect/Details/Actions/Actions.tsx

@@ -126,7 +126,7 @@ const Actions: React.FC<ActionsProps> = ({
         <span>
         <span>
           <i className="fas fa-sync-alt" />
           <i className="fas fa-sync-alt" />
         </span>
         </span>
-        <span>Restart All Tasks</span>
+        <span>Restart Connector</span>
       </Button>
       </Button>
       <Button
       <Button
         buttonSize="M"
         buttonSize="M"

+ 1 - 1
kafka-ui-react-app/src/components/Connect/Details/Actions/__tests__/Actions.spec.tsx

@@ -148,7 +148,7 @@ describe('Actions', () => {
     it('calls restartConnector when restart button clicked', () => {
     it('calls restartConnector when restart button clicked', () => {
       const restartConnector = jest.fn();
       const restartConnector = jest.fn();
       const wrapper = mount(setupWrapper({ restartConnector }));
       const wrapper = mount(setupWrapper({ restartConnector }));
-      wrapper.find({ children: 'Restart All Tasks' }).simulate('click');
+      wrapper.find({ children: 'Restart Connector' }).simulate('click');
       expect(restartConnector).toHaveBeenCalledTimes(1);
       expect(restartConnector).toHaveBeenCalledTimes(1);
       expect(restartConnector).toHaveBeenCalledWith(
       expect(restartConnector).toHaveBeenCalledWith(
         clusterName,
         clusterName,

+ 6 - 6
kafka-ui-react-app/src/components/Connect/Details/Actions/__tests__/__snapshots__/Actions.spec.tsx.snap

@@ -141,7 +141,7 @@ exports[`Actions view matches snapshot 1`] = `
       />
       />
     </span>
     </span>
     <span>
     <span>
-      Restart All Tasks
+      Restart Connector
     </span>
     </span>
   </button>
   </button>
   <a
   <a
@@ -334,7 +334,7 @@ exports[`Actions view matches snapshot when deleting connector 1`] = `
       />
       />
     </span>
     </span>
     <span>
     <span>
-      Restart All Tasks
+      Restart Connector
     </span>
     </span>
   </button>
   </button>
   <a
   <a
@@ -512,7 +512,7 @@ exports[`Actions view matches snapshot when failed 1`] = `
       />
       />
     </span>
     </span>
     <span>
     <span>
-      Restart All Tasks
+      Restart Connector
     </span>
     </span>
   </button>
   </button>
   <a
   <a
@@ -705,7 +705,7 @@ exports[`Actions view matches snapshot when paused 1`] = `
       />
       />
     </span>
     </span>
     <span>
     <span>
-      Restart All Tasks
+      Restart Connector
     </span>
     </span>
   </button>
   </button>
   <a
   <a
@@ -898,7 +898,7 @@ exports[`Actions view matches snapshot when running connector action 1`] = `
       />
       />
     </span>
     </span>
     <span>
     <span>
-      Restart All Tasks
+      Restart Connector
     </span>
     </span>
   </button>
   </button>
   <a
   <a
@@ -1076,7 +1076,7 @@ exports[`Actions view matches snapshot when unassigned 1`] = `
       />
       />
     </span>
     </span>
     <span>
     <span>
-      Restart All Tasks
+      Restart Connector
     </span>
     </span>
   </button>
   </button>
   <a
   <a