[ 
https://issues.apache.org/jira/browse/AMBARI-26662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Himanshu Maurya updated AMBARI-26662:
-------------------------------------
    Status: Patch Available  (was: In Progress)

> Ambari Web React: Fix HDFS NameNode/ZKFC summary labels and incorrect 
> federation detection
> ------------------------------------------------------------------------------------------
>
>                 Key: AMBARI-26662
>                 URL: https://issues.apache.org/jira/browse/AMBARI-26662
>             Project: Ambari
>          Issue Type: Story
>            Reporter: Himanshu Maurya
>            Assignee: Himanshu Maurya
>            Priority: Major
>             Fix For: 3.1.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> h2. Summary
> The HDFS service summary in the React "Modern UI" had two related display 
> bugs:
>  # In the non-federated (single-nameservice) HA view, each NameNode tile 
> always showed the literal HA state string concatenated with {{NAMENODE}} 
> (e.g. {{{}active NAMENODE{}}}, {{{}standby NAMENODE{}}}) instead of a 
> properly cased label, and never accounted for the {{observer}} HA state 
> introduced by consistent-read observer NameNodes — it fell through to the 
> same raw string. The ZKFC tile for each NameNode's host was also rendered as 
> a separate block below all NameNode tiles instead of being grouped next to 
> its NameNode, unlike the classic Ember UI's {{getGroupedMasterComponents}} 
> layout.
>  # HDFS federation detection ({{{}useHDFSConfigUpdater{}}}) derived its 
> namespace groups from the {{dfs.nameservices}} config property rather than 
> from the NameNodes actually installed and reporting HA state. A nameservice 
> declared in {{hdfs-site.xml}} but not yet populated with a running NameNode 
> (e.g. mid-rollout, or an observer-only nameservice) was still counted as a 
> distinct namespace, incorrectly flipping the summary into the federated 
> topology view and causing component counts (including DataNode) to be 
> computed against the wrong grouping.
> h2. Changes
>  * {{{}screens/Services/ServiceComponents.tsx{}}}:
>  ** Added a {{getNameNodeLabel(haStatus)}} helper (mirrors Ember's 
> {{{}display_name_advanced{}}}) mapping 
> {{{}active{}}}/{{{}standby{}}}/{{{}observer{}}} HA states to proper display 
> labels, falling back to the generic "NameNode" label for unknown/empty states.
>  ** Merged the ZKFC tile into the NameNode tile loop so each ZKFC renders 
> immediately after the NameNode on the same host, removing the separate, 
> disconnected ZKFC {{.map()}} block.
>  * {{{}screens/messages.ts{}}}, {{{}locales/en/translation.json{}}}, 
> {{{}locales/zh/translation.json{}}}:
>  ** Added the {{services.service.summary.nameNode.observer}} translation key 
> (English "Observer NameNode" / Chinese "观察者 NameNode") in all three places 
> the app's i18n layer reads from — {{translate()}} resolves through i18next's 
> loaded {{translation.json}} resources first, so the key needed adding there, 
> not just in the {{messages.ts}} fallback map.
>  * {{{}hooks/useHDFSConfigUpdater.ts{}}}:
>  ** Added a {{buildNameNodeGroups(nameNodes, nameSpacePath)}} helper that 
> groups NameNodes into namespace groups using the {{haNameSpace}} tag already 
> resolved onto each NameNode host component, rather than deriving groups 
> directly from the {{dfs.nameservices}} property list.
>  ** Applied this helper in both {{inferNamespace()}} (the config-driven pass) 
> and the poll-driven {{federationNamespaces}} recomputation, so the two paths 
> stay consistent — the poll path previously used the raw {{dfs.nameservices}} 
> parsing on every poll, which would have reintroduced a discarded/unpopulated 
> nameservice as soon as the next poll ran.
>  * {{{}screens/Services/ServiceComponents.test.tsx{}}}:
>  ** Added coverage for the HDFS summary path (previously untested): NameNode 
> HA-state label resolution paired with its host's ZKFC, and a regression test 
> confirming a declared-but-unpopulated namespace no longer flips the view into 
> the federated layout.
> h2. Impact
> HDFS summary tiles now show the correct Active/Standby/Observer NameNode 
> label (translated correctly in both bundled locales) and group the ZKFC 
> status with its NameNode, and HDFS federation topology detection reflects 
> only nameservices with actually installed/reporting NameNodes — a 
> declared-but-unpopulated nameservice no longer causes the UI to incorrectly 
> render the federated layout or miscompute component counts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to