stantheman0128 opened a new pull request, #10968: URL: https://github.com/apache/ozone/pull/10968
## What changes were proposed in this pull request? The Recon UI Bucket list page does not show how each bucket is replicated, so a reader cannot tell a Ratis bucket from an EC one without looking somewhere else. This adds a `Replication Type` column to that page. The bucket endpoint already returns the information as `BucketObjectDBInfo#replicationConfigInfo`, a serialized `DefaultReplicationConfig`, so no backend change is needed. The frontend was not reading the field. The column renders the replication strings Ozone uses elsewhere: | Bucket default replication | Column value | | --- | --- | | Ratis, factor `THREE` | `Ratis-3` | | EC, RS 6-3 with 1 MB chunks | `RS-6-3-1024k` | | Standalone | `Standalone-1` | | No default replication config | `NA` | `getReplication()` carries `@JsonIgnore` on both `RatisReplicationConfig` and `ECReplicationConfig`, so the ready-made string does not reach the browser. The column composes it from the fields that are serialized: `requiredNodes` for Ratis and Standalone, and `codec`, `data`, `parity`, `ecChunkSize` for EC. Sorting uses the rendered string. The Jira description asks to reuse the `themeIcon` component. That component is generalized in HDDS-13623, whose PR #9003 was closed without merging, so this change renders plain text and does not depend on it. An icon can be layered on top once HDDS-13623 lands. Three of the five mock buckets in `api/db.json` now carry a `replicationConfigInfo`, so the column can be exercised with `pnpm dev`. The other two are left without one to cover the `NA` case. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-13625 ## How was this patch tested? * New unit tests in `src/__tests__/buckets/BucketsTable.test.tsx` cover Ratis, EC, Standalone, a config that carries only the outer `type`, and the `undefined` and `null` cases. `npx vitest run` reports 74 passing tests with one pre-existing skip. * `npx vite build` succeeds. * `npx eslint` on the touched files reports no warning that is not already present on the same files before the change. * Manually checked against the mock API with `pnpm dev`. The five mock buckets cover all four rendered forms:  * `build-branch` workflow run on the fork: https://github.com/stantheman0128/ozone/actions/runs/31186914918 43 of the 44 jobs pass. The `kubernetes` job fails on the fork runner across all three attempts because the minikube cluster never leaves safe mode: `HealthyPipelineSafeModeRule` reports a pipeline count of 0, so no datanode pipeline forms. The Recon pod itself starts normally in those runs. Generated-by: Claude Code (claude-opus-5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
