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:
   
   ![Recon Bucket page showing the Replication Type 
column](https://raw.githubusercontent.com/stantheman0128/ozone/screenshots/HDDS-13625-buckets-replication-type.png)
   
   * `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]

Reply via email to