[
https://issues.apache.org/jira/browse/AMBARI-26627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jialiang Cai reassigned AMBARI-26627:
-------------------------------------
Assignee: Jialiang Cai
> Align React Services and Configs workflows with Classic Ambari
> --------------------------------------------------------------
>
> Key: AMBARI-26627
> URL: https://issues.apache.org/jira/browse/AMBARI-26627
> Project: Ambari
> Issue Type: Improvement
> Reporter: Jialiang Cai
> Assignee: Jialiang Cai
> Priority: Major
>
> h2. Description
> The React frontend does not fully preserve the Classic Ambari behavior for
> service navigation, global and per-service operations, Quick Links, service
> configuration, configuration groups, Add Service, and Reassign Master.
> A source-level audit of all 60 non-Metrics Module 04 feature IDs found
> incorrect
> REST resources and payloads, incomplete permission and feature-flag gates,
> unowned asynchronous operations, incomplete retry behavior, and wizard
> persistence differences. Metrics and Module 03 Hosts-owned behavior are
> explicitly outside this change.
> h2. Proposed Changes
> * Converge service routes, invalid service IDs, unauthorized Configs tabs, and
> browser Back/Forward navigation.
> * Align Start/Stop All, Restart All Required, maintenance mode, service
> checks,
> custom commands, client downloads, and Flume handler operations.
> * Correct Quick Link descriptor, protocol, placeholder, public-host,
> configured
> host, and running-host resolution.
> * Save complete desired-config replacements, await all owned requests,
> preserve
> deleted custom properties, and recover correctly from failed saves.
> * Align configuration history permissions, Make Current behavior, and config
> group copy, membership move, deletion, and retry semantics.
> * Preserve Add Service ownership without changing cluster provisioning state.
> * Validate Reassign Master topology before mutation, load component-specific
> manual steps, await database checks, and provide the Classic narrow
> rollback.
> * Add focused Vitest coverage for API contracts, state transitions, failures,
> retries, persistence, and compatibility decisions.
> * Record all remaining runtime-only and Module 03 integration scenarios in the
> Module 04 acceptance matrix.
> h2. Compatibility Decisions
> * Preserve Classic global Restart All Required as one stale-component request;
> rolling and scheduled restart remain per-service behaviors.
> * Preserve the Classic outer all-services menu permission gate.
> * Treat desired-config PUT operations as full config-type replacements.
> * Keep browser-managed downloads and external Quick Links as direct
> navigation.
> * Do not update cluster provisioning state when Add Service completes.
> * Do not duplicate or modify Module 03 Hosts-owned action helpers.
> * Exclude all Metrics functionality.
> h2. Acceptance Criteria
> * Every non-Metrics Module 04 feature ID has an evidence-backed React status.
> * Corrected REST methods, resources, predicates, parameters, and payloads have
> focused executable coverage.
> * Permission, feature-flag, wizard, upgrade, and direct-route gates match the
> reviewed Classic behavior.
> * Owned asynchronous operations settle deterministically and expose recovery.
> * No Hosts-owned or Metrics files are modified.
> * Focused and full Vitest suites pass.
> * TypeScript and Vite production build passes.
> * ESLint introduces no findings on added lines.
> * {{git diff --check}} passes.
> h2. Verification
> * Focused Vitest: 15 files, 50 tests passed.
> * Full Vitest: 29 files, 113 tests passed.
> * TypeScript/Vite production build passed.
> * Full ESLint was executed and reported the existing repository baseline of
> 5,776 errors and 455 warnings.
> * New Module 04 files and all added lines have zero ESLint findings.
> * {{git diff --check}} passed.
> * Live Ambari Server acceptance scenarios remain explicitly pending.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]