ozone icon indicating copy to clipboard operation
ozone copied to clipboard

HDDS-10517. Recon - Add a UI component for showing DN decommissioning detailed status and info

Open smitajoshi12 opened this issue 1 year ago • 13 comments

What changes were proposed in this pull request?

UI component has been added with some drill down on a DN which is under decommissioning.

Backend PR For Reference:- https://github.com/apache/ozone/pull/6376##

What is the link to the Apache JIRA (https://issues.apache.org/jira/browse/HDDS-10517)

How was this patch tested?

Manually

New Enhancemnet Tested with Cluster data in local

  1. Added New card with DataNodes Decommission Count

image

  1. After Hovering on UUID Column image

  2. Tooltip has been added before hover image

  3. Once Status becomes Decommissioned decommission details will not be shown. image

  4. From Backend if we get Empty response from decommission api will not showing any details about decommission.

  5. Handled all negative test cases for empty and null data if one Api's fail other apis working

image

  1. With Multiple datanode Decommission

image

image

smitajoshi12 avatar May 24 '24 15:05 smitajoshi12

@smitajoshi12 thanks for working on this patch. Looks like on datanodes page, you wait for /datanodes API to provide the info if any datanode is in decommissioning or not, then you call the decommission info API for that respective UUID, which seems inconsistent behavior, because on overview summary page, you are showing the count of datanodes which are in decommissioning , but when user clicks on summary tile, and taken to datanodes page, you still show all nodes healthy which is wrong. Kindly correct the behavior and make it consistent.

devmadhuu avatar May 29 '24 10:05 devmadhuu

@smitajoshi12 thanks for working on this patch. Looks like on datanodes page, you wait for /datanodes API to provide the info if any datanode is in decommissioning or not, then you call the decommission info API for that respective UUID, which seems inconsistent behavior, because on overview summary page, you are showing the count of datanodes which are in decommissioning , but when user clicks on summary tile, and taken to datanodes page, you still show all nodes healthy which is wrong. Kindly correct the behavior and make it consistent.

@devmadhuu It is taking time to reflect status in /datanodes page. /datanode api is called after each 60 seconds as default behaviour. will think how we can meet this condition.

smitajoshi12 avatar May 29 '24 13:05 smitajoshi12

@devmadhuu Addressed synchronization isssue in latest commit and attached screenshots.

smitajoshi12 avatar Jun 05 '24 17:06 smitajoshi12

@smitajoshi12 we shouldn't show the initial tool tip from datanodes page "It is going to decommission soon!!!". Rather we should call decommission info API and match with what all datanodes are in decommissioning and update their status on UI. Behavior should be consistent across all UI pages for same entity. And also you need to call the decommission info API once , not multiple times as user land up on datanodes page.

devmadhuu avatar Jun 12 '24 05:06 devmadhuu

@smitajoshi12 we shouldn't show the initial tool tip from datanodes page "It is going to decommission soon!!!". Rather we should call decommission info API and match with what all datanodes are in decommissioning and update their status on UI. Behavior should be consistent across all UI pages for same entity. And also you need to call the decommission info API once , not multiple times as user land up on datanodes page.

@devmadhuu Issue with Calling decommision API once is datanode api is called after 1 min if we call decommission API only once then we will not get updated values so checking UUIDs from decommission API and comparision will give incorrect results as i checked with Cluster data. It is going to decommmission soon msg is updated after calling decommision API and datanode API as we discussed previously datanode api is taking time to update records.

smitajoshi12 avatar Jun 13 '24 06:06 smitajoshi12

@smitajoshi12 we shouldn't show the initial tool tip from datanodes page "It is going to decommission soon!!!". Rather we should call decommission info API and match with what all datanodes are in decommissioning and update their status on UI. Behavior should be consistent across all UI pages for same entity. And also you need to call the decommission info API once , not multiple times as user land up on datanodes page.

@devmadhuu Issue with Calling decommision API once is datanode api is called after 1 min if we call decommission API only once then we will not get updated values so checking UUIDs from decommission API and comparision will give incorrect results as i checked with Cluster data. It is going to decommmission soon msg is updated after calling decommision API and datanode API as we discussed previously datanode api is taking time to update records.

@smitajoshi12 As discussed, pls change the operational state column value based on decommission info API on datanodes page. Showing tooltip is wrong because datanode decommissioning has already started.

devmadhuu avatar Jun 13 '24 06:06 devmadhuu

@smitajoshi12 we shouldn't show the initial tool tip from datanodes page "It is going to decommission soon!!!". Rather we should call decommission info API and match with what all datanodes are in decommissioning and update their status on UI. Behavior should be consistent across all UI pages for same entity. And also you need to call the decommission info API once , not multiple times as user land up on datanodes page.

@devmadhuu Issue with Calling decommision API once is datanode api is called after 1 min if we call decommission API only once then we will not get updated values so checking UUIDs from decommission API and comparision will give incorrect results as i checked with Cluster data. It is going to decommmission soon msg is updated after calling decommision API and datanode API as we discussed previously datanode api is taking time to update records.

@smitajoshi12 As discussed, pls change the operational state column value based on decommission info API on datanodes page. Showing tooltip is wrong because datanode decommissioning has already started.

@devmadhuu
I have done changes suggested by you update column manually as comparing uuids from decommission api. If one api fails it will not block other apis attached screenshots. Both Apis handled synchronously called after completing one apis result.

smitajoshi12 avatar Jun 18 '24 10:06 smitajoshi12

@smitajoshi12 kindly resolve the conflicts in your code.

devmadhuu avatar Jun 19 '24 14:06 devmadhuu

@smitajoshi12 kindly resolve the conflicts in your code.

@smitajoshi12 kindly resolve the conflicts in your code.

@devmadhuu Resolved conflicts and added new screenshot of Overview Page as alignment for tile has been changed.

smitajoshi12 avatar Jun 20 '24 06:06 smitajoshi12

@smitajoshi12 Pls resolve your conflicts.

devmadhuu avatar Jun 21 '24 02:06 devmadhuu

@smitajoshi12 kindly resolve the conflicts in your code.

@devmadhuu Hi Devesh Resolved conflicts and merged master with all changes and did testing and pushed changes in latest commit.

smitajoshi12 avatar Jun 21 '24 05:06 smitajoshi12

@dombizita @devabhishekpal Hi Zita and Abhishek Could you review this PR

smitajoshi12 avatar Jun 21 '24 06:06 smitajoshi12

@smitajoshi12 Pls resolve your conflicts.

Resolved Merge Conflicts

smitajoshi12 avatar Jun 24 '24 17:06 smitajoshi12

Can you finish all the pending changes on this patch @smitajoshi12 Make sure you go through all of them

ArafatKhan2198 avatar Jul 09 '24 12:07 ArafatKhan2198

Can you finish all the pending changes on this patch @smitajoshi12 Make sure you go through all of them

@ArafatKhan2198 Solved all merge conflicts after Echart PR and done testing with with cluster data

smitajoshi12 avatar Jul 09 '24 13:07 smitajoshi12

@smitajoshi12 Thanks for improving the patch. Changes LGTM +1

devmadhuu avatar Jul 29 '24 06:07 devmadhuu

Hi @smitajoshi12 , so I was suggesting to change the component layout as below: Frame 1

This would make sure we are not covering too much information for the DN with the popup Also could you let me know what No. of Under-Replicated Containers, No. of Unclosed Pipelines, No. of Unclosed Containers are used for? If it is not very relevant to the user to get this information, we can omit this info I guess. @devmadhuu @ArafatKhan2198 what do you think?

devabhishekpal avatar Jul 29 '24 07:07 devabhishekpal

@devabhishekpal we need that minimal information for a node which is in decommission stage.

devmadhuu avatar Jul 29 '24 07:07 devmadhuu

Thanks for letting me know @devmadhuu. Then I guess we can go with a more vertical layout as I attached in the design file @smitajoshi12.

devabhishekpal avatar Jul 29 '24 07:07 devabhishekpal

@devabhishekpal we need that minimal information for a node which is in decommission stage.

@devabhishekpal https://issues.apache.org/jira/browse/HDDS-10514) I have refered this JIRA for details. Will Check Vertical Layout as it is collapsable if we have less information.

smitajoshi12 avatar Jul 29 '24 07:07 smitajoshi12

Hi @smitajoshi12 , so I was suggesting to change the component layout as below: Frame 1

This would make sure we are not covering too much information for the DN with the popup Also could you let me know what No. of Under-Replicated Containers, No. of Unclosed Pipelines, No. of Unclosed Containers are used for? If it is not very relevant to the user to get this information, we can omit this info I guess. @devmadhuu @ArafatKhan2198 what do you think?

@devabhishekpal

Done the changes in latest commit 8b82426c1568815fa88079d2ddfec738f7b85dbd and other css changes will raise another JIRA as improvement.

image

smitajoshi12 avatar Jul 31 '24 09:07 smitajoshi12

Thanks @smitajoshi12 for improving the patch. Now it LGTM +1

devmadhuu avatar Aug 06 '24 06:08 devmadhuu

Thanks for the patch @smitajoshi12 & thanks @devabhishekpal @devmadhuu for the review.

ArafatKhan2198 avatar Aug 07 '24 06:08 ArafatKhan2198