Skip to content

HDDS-15007. SCM Web UI search box should filter the entire datanodes set, not just the displayed rows #10076

Open
navinko wants to merge 2 commits intoapache:masterfrom
navinko:HDDS-15007
Open

HDDS-15007. SCM Web UI search box should filter the entire datanodes set, not just the displayed rows #10076
navinko wants to merge 2 commits intoapache:masterfrom
navinko:HDDS-15007

Conversation

@navinko
Copy link
Copy Markdown
Contributor

@navinko navinko commented Apr 13, 2026

What changes were proposed in this pull request?

Implemented globalSearch for Node Status Search bar.
'HDDS-15007. SCM Web UI search box should filter the entire datanodes set, not just the displayed rows '

In the existing design, the search box on the SCM Web UI "Node Status" table had a page-level filter where we could only search across the currently visible rows governed by 'Show' dropdown (e.g., 10 ,20, 50 , All nodes at a time). Finding a specific datanode in a large cluster requires :
1: Either change the 'Show' dropdown to have more records in the table manually + search -> If target match found Ok else clicking through multiple pages in (previous - next ) fashion until the target node appeared on the active page.
2: Keep searching on the table with default size 10

Proposed Changes:
This PR introduces a global search mechanism to the SCM Web UI. The search input now filters against the entire master dataset of datanodes before the pagination slicing occurs, allowing users to instantly find nodes regardless of which page they originally resided on. Also it shows the pagination .

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-15007

How was this patch tested?

  • **Validated the existing implementation first **

-> page-1

image

-> page-2

image

-> Search "ozone-ha-datanode-7.ozone-ha_default" UUID on serach bar at Page-1

image

If we could have search on page-2, we have the target match , and since have one more records on 3rd page next navigation is enable.

image
  • Validated Proposed Implementation

Scaled the cluster to 21 datanodes using docker-compose up --scale datanode=21 to force multiple pages of records.
Navigated to Page 1 and searched for a datanode known to be located on Page 2. Verified that the node immediately appeared in the table. Verified that the pagination text dynamically updated to reflect the search results (e.g., "Showing 1 to 1 of the total 1 entries.") and that the Next/Previous buttons disabled appropriately to prevent navigating to empty pages.
Cleared the search box and verified that the table restored the full cluster view and correct pagination.

-> page-1

1  page-1

-> page-2 (taken ozone-ha-datanode-19.ozone-ha_default for global serach)

2  Page-2

-> page-3

3  Page-3

-> global serach found! (ozone-ha-datanode-19.ozone-ha_default -found)

GlobalSearch-Found

-> prev, next navigation disabled

globalsearch_prev_next-disabled

@navinko navinko marked this pull request as draft April 13, 2026 20:54
@navinko navinko marked this pull request as ready for review April 13, 2026 21:02
@jojochuang jojochuang requested a review from smengcl April 13, 2026 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant