ArafatKhan2198 commented on code in PR #5521:
URL: https://github.com/apache/ozone/pull/5521#discussion_r1461681745


##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {
+    this.setState({
+      loading: true,
+      nextClickable: true,
+      prevClickable: true
+    });
+
+    //Cancel any previous pending request
+    cancelRequests([
+      cancelMismatchedEndpointSignal,
+      cancelOpenKeysSignal,
+      cancelDeletePendingSignal,
+      cancelDeletedKeysSignal,
+      cancelRowExpandSignal,
+      cancelDeletedPendingDirSignal
+    ]);
+
+    let deletePendingDirEndpoint;
+    if (prevKeyDirDelete === "" || prevKeyDirDelete === undefined ) {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}`;
+    }
+    else {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}&prevKey=${prevKeyDirDelete}`;

Review Comment:
   Use the constant DELETE_PENDING_DIR_ENDPOINT here as well.



##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {
+    this.setState({
+      loading: true,
+      nextClickable: true,
+      prevClickable: true
+    });
+
+    //Cancel any previous pending request
+    cancelRequests([
+      cancelMismatchedEndpointSignal,
+      cancelOpenKeysSignal,
+      cancelDeletePendingSignal,
+      cancelDeletedKeysSignal,
+      cancelRowExpandSignal,
+      cancelDeletedPendingDirSignal
+    ]);
+
+    let deletePendingDirEndpoint;
+    if (prevKeyDirDelete === "" || prevKeyDirDelete === undefined ) {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}`;

Review Comment:
   We can wrap it into a constant and use it in different places. 
   
   ```
   const DELETE_PENDING_DIR_ENDPOINT = "/api/v1/keys/deletePending/dirs";
   ```



##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {
+    this.setState({
+      loading: true,
+      nextClickable: true,
+      prevClickable: true
+    });
+
+    //Cancel any previous pending request
+    cancelRequests([
+      cancelMismatchedEndpointSignal,
+      cancelOpenKeysSignal,
+      cancelDeletePendingSignal,
+      cancelDeletedKeysSignal,
+      cancelRowExpandSignal,
+      cancelDeletedPendingDirSignal
+    ]);
+
+    let deletePendingDirEndpoint;
+    if (prevKeyDirDelete === "" || prevKeyDirDelete === undefined ) {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}`;
+    }
+    else {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}&prevKey=${prevKeyDirDelete}`;
+    }
+
+    const { request, controller } = AxiosGetHelper(deletePendingDirEndpoint, 
cancelDeletedPendingDirSignal);
+    cancelDeletedPendingDirSignal = controller 
+    request.then(deletePendingDirResponse => {
+      const deletedDirInfo = deletePendingDirResponse && 
deletePendingDirResponse.data && deletePendingDirResponse.data.deletedDirInfo;
+      if (deletePendingDirResponse && deletePendingDirResponse.data && 
deletePendingDirResponse.data.lastKey === "") {
+        //last key of api is empty may be last record no further records
+        dirPendingPrevList =[""];
+        this.setState({
+          loading: false,
+          nextClickable: false,
+          pendingDeleteDirDataSource: deletedDirInfo
+        })
+      }
+      else {
+           if (this.state.prevKeyDirDelete === "" || 
this.state.prevKeyDirDelete === undefined ) {
+            this.setState({ prevClickable: false })
+        }
+        if (dirPendingPrevList.includes(deletePendingDirResponse.data.lastKey) 
=== false) {
+          dirPendingPrevList.push(deletePendingDirResponse.data.lastKey);
+        }

Review Comment:
   ```suggestion
         if (!dirPendingPrevList.includes(lastKey)) {
           dirPendingPrevList.push(lastKey);
         }
   ```



##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {
+    this.setState({
+      loading: true,
+      nextClickable: true,
+      prevClickable: true
+    });
+
+    //Cancel any previous pending request
+    cancelRequests([
+      cancelMismatchedEndpointSignal,
+      cancelOpenKeysSignal,
+      cancelDeletePendingSignal,
+      cancelDeletedKeysSignal,
+      cancelRowExpandSignal,
+      cancelDeletedPendingDirSignal
+    ]);
+
+    let deletePendingDirEndpoint;
+    if (prevKeyDirDelete === "" || prevKeyDirDelete === undefined ) {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}`;
+    }
+    else {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}&prevKey=${prevKeyDirDelete}`;
+    }
+
+    const { request, controller } = AxiosGetHelper(deletePendingDirEndpoint, 
cancelDeletedPendingDirSignal);
+    cancelDeletedPendingDirSignal = controller 
+    request.then(deletePendingDirResponse => {
+      const deletedDirInfo = deletePendingDirResponse && 
deletePendingDirResponse.data && deletePendingDirResponse.data.deletedDirInfo;

Review Comment:
   Store the value of `deletePendingDirResponse.data.lastKey` into another 
constant called `lastKey` and use it everywhere instead of accessing it again 
and again from the the response. 
   ```    
   const lastKey = deletePendingDirResponse?.data?.lastKey || "";
   ```



##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {

Review Comment:
   Can you please change the name of the variable `prevKeyDirDelete` to 
`prevKeyDeletedDirectory`



##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {
+    this.setState({
+      loading: true,
+      nextClickable: true,
+      prevClickable: true
+    });
+
+    //Cancel any previous pending request
+    cancelRequests([
+      cancelMismatchedEndpointSignal,
+      cancelOpenKeysSignal,
+      cancelDeletePendingSignal,
+      cancelDeletedKeysSignal,
+      cancelRowExpandSignal,
+      cancelDeletedPendingDirSignal
+    ]);
+
+    let deletePendingDirEndpoint;
+    if (prevKeyDirDelete === "" || prevKeyDirDelete === undefined ) {

Review Comment:
   Replace `prevKeyDirDelete === ""` with `!previousKeyForDeletion`



##########
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/views/insights/om/om.tsx:
##########
@@ -777,6 +820,66 @@ export class Om extends React.Component<Record<string, 
object>, IOmdbInsightsSta
     });
   };
 
+  // Pending Delete Directories
+  fetchDeletePendingDir = (limit: number, prevKeyDirDelete: string) => {
+    this.setState({
+      loading: true,
+      nextClickable: true,
+      prevClickable: true
+    });
+
+    //Cancel any previous pending request
+    cancelRequests([
+      cancelMismatchedEndpointSignal,
+      cancelOpenKeysSignal,
+      cancelDeletePendingSignal,
+      cancelDeletedKeysSignal,
+      cancelRowExpandSignal,
+      cancelDeletedPendingDirSignal
+    ]);
+
+    let deletePendingDirEndpoint;
+    if (prevKeyDirDelete === "" || prevKeyDirDelete === undefined ) {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}`;
+    }
+    else {
+      deletePendingDirEndpoint = 
`/api/v1/keys/deletePending/dirs?limit=${limit}&prevKey=${prevKeyDirDelete}`;
+    }
+
+    const { request, controller } = AxiosGetHelper(deletePendingDirEndpoint, 
cancelDeletedPendingDirSignal);
+    cancelDeletedPendingDirSignal = controller 
+    request.then(deletePendingDirResponse => {
+      const deletedDirInfo = deletePendingDirResponse && 
deletePendingDirResponse.data && deletePendingDirResponse.data.deletedDirInfo;
+      if (deletePendingDirResponse && deletePendingDirResponse.data && 
deletePendingDirResponse.data.lastKey === "") {
+        //last key of api is empty may be last record no further records
+        dirPendingPrevList =[""];
+        this.setState({
+          loading: false,
+          nextClickable: false,
+          pendingDeleteDirDataSource: deletedDirInfo
+        })
+      }
+      else {
+           if (this.state.prevKeyDirDelete === "" || 
this.state.prevKeyDirDelete === undefined ) {

Review Comment:
   ```suggestion
              if (!this.state.prevKeyDirDelete) {
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to