[
https://issues.apache.org/jira/browse/AMBARI-26662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Himanshu Maurya updated AMBARI-26662:
-------------------------------------
Resolution: Fixed
Status: Resolved (was: Patch Available)
> 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: 0.5h
> 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]