Skip to content

Drop monasca and senlin from the module list and labels - #870

Merged
github-actions[bot] merged 3 commits into
developfrom
jim.lin/fix/drop-monasca
Sep 15, 2026
Merged

github-actions[bot] merged 3 commits into
developfrom
jim.lin/fix/drop-monasca

Conversation

@Eandalf-Bigstack

Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind bug

What this PR does / why we need it

Stops the UI offering two services CubeCOS no longer ships.

monasca, removed by bigstack-oss/cubecos#672 phase 4. The health page carried a Monasca display label, and — the part that actually matters — the generated SDK still accepted 'monasca' as a module name on both the health-history and the repair-module endpoints. So the repair button could ask the API to repair a module neither side knows about any more. The label alone would have been cosmetic; the enum was not.

senlin, removed by CubeCOS d4550c91 back on the yoga train. moduleNameLabelMap still had a senlin entry. That one was unreachable rather than merely stale: the map is keyed by module names the API can return, and senlin is absent from the generated SDK's module enums — which is exactly why it never surfaced as a type error. Nothing could look it up.

Also refreshes a storybook fixture that used service: 'senlin' as sample data. It was never broken, but it named a service gone for two release trains, and it was self-inconsistent: the event it decorates is a NET00003I in category Net. Changed to neutron.

sdk/api.ts is regenerated by pnpm api:generate from the submodule, not edited by hand.

Which issue(s) this PR fixes

Part of bigstack-oss/cubecos#772, specifically bigstack-oss/cubecos#771 (COS UI > Home > Health page after the OpenStack, InfluxDB and Ceph upgrade).

Special notes for your reviewer

The two commits are deliberately separate, and the generated diffs are the interesting part.

monasca commit — the api.ts diff is two JSDoc @type unions and two enum members, the exact mirror of what 570ec1f3 added for metricsDb.

senlin commitapi.ts came back byte-for-byte unchanged from api:generate. That is not an omission; it is the evidence for the claim above. Senlin was already out of the module enums, so nothing the generator emits moves, and only the submodule pointer changes.

The submodule pins to the openapi PR branch, not its develop.

Both commits pin packages/cube-frontend-api/cube-cos-openapi at that branch — re-pin to the merged SHA before this lands, the same way 570ec1f3 noted for feat/metricsdb-service.

Verified with api:generate, pnpm tsc across the workspace projects, eslint, prettier, the full test suite (121 tests, 7 files) and web-app:build — all clean.

This PR needs

Additional documentation


🤖 Generated with Claude Code

Eandalf-Bigstack and others added 2 commits September 14, 2026 13:21
Monasca was removed from CubeCOS by bigstack-oss/cubecos#672 phase 4, and
cube-cos-api stopped reporting it in the paired change. The UI still offered
it: the health page carried a 'Monasca' display label, and the generated SDK
still accepted 'monasca' as a module name on the health-history and
repair-module endpoints -- so the repair button could ask the API to repair a
module neither side knows about any more.

sdk/api.ts is regenerated by 'pnpm api:generate' from the submodule, not edited
by hand; the diff is confined to two JSDoc @type unions and two enum members,
the exact mirror of what 570ec1f added for metricsDb. The submodule is pinned
to 664909d on cube-cos-openapi.

Verified with api:generate, tsc across the workspace projects, eslint, prettier
and the web-app build -- all clean.

Noticed while here, not changed: moduleNameLabelMap still has a 'senlin' entry.
Senlin went in cubecos d4550c91 and 'senlin' is absent from the generated enum,
so that label is dead too -- worth its own change rather than riding along with
this one.

Signed-off-by: Jim Lin <jim.lin@bigstack.co>
Co-authored-by: Eandalf <clinah@connect.ust.hk>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Senlin was removed from CubeCOS by d4550c91, back on the yoga train.
moduleNameLabelMap still carried a 'senlin' entry, and the storybook event
fixture still used 'senlin' as a sample service name.

The label is unreachable, not merely stale: the map is keyed by the module
names the API can return, and 'senlin' is absent from the generated SDK's
module enums -- which is why this never surfaced as a type error. Nothing can
look it up.

The mock is sample data rather than a lookup, so it was never broken, but it
named a service that has not existed for two release trains. Changed to
'neutron', which also makes the fixture internally consistent: the event it
decorates is a NET00003I in category Net, so a senlin service was wrong on its
own terms.

Also bumps cube-cos-openapi to 6217dc4, which drops senlin from the schema --
the businessLogic module entry and the senlin.debug.enabled tuning, the two
places the earlier half-removal left behind. sdk/api.ts is byte-for-byte
unchanged by that bump, which is the evidence for the paragraph above: senlin
was already out of the module enums, so nothing the generator emits moves. The
pointer targets the openapi branch rather than its develop; re-pin to the
merged SHA before this lands.

Verified with api:generate, tsc across the workspace projects, eslint, prettier,
the full test suite (121 tests, 7 files) and the web-app build -- all clean.

Signed-off-by: Jim Lin <jim.lin@bigstack.co>
Co-authored-by: Eandalf <clinah@connect.ust.hk>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CI's Check and Build jobs fail with twelve TS2741s, one per mock card:

  src/mocks/gpu.ts(17,3): error TS2741: Property 'deviceProfile' is missing
  in type '{...}' but required in type
  'Omit<ListNodeGPUCardsResponseDataInner, "links">'

Not caused by this branch's monasca and senlin work. Re-pinning the
cube-cos-openapi submodule from a34418d to the merged tip -- which the two
earlier commits here said to do -- advanced it by three commits, not one:

  9495246  feat(gpu): document a pgpu card's device profile
  664909d  docs(health): drop monasca from the schema
  6217dc4  docs(health): drop senlin from the schema

9495246 is someone else's, landed in the schema without its cube-cos-ui
counterpart. It adds deviceProfile to ListNodeGPUCardsResponseDataInner as
required-and-nullable (`string | null`), so every object typed against that
interface must carry the key. mockGpuCards is declared
`Omit<ListNodeGPUCardsResponseDataInner, 'links'>[]`, so all twelve fail.
This branch is simply the first UI PR to bump the submodule past it.

Values follow the field's documented semantics: only a pgpu card has a
profile, so the three pgpu cards get one and the other nine are null --
which is what the schema says of every other resource type, not a
placeholder.

The three names are what the product would actually create. CubeCOS builds
them in os_device_profile_create (cubecos core/sdk_sh/modules/sdk_os.sh):
the bracketed model out of the PCI id, lowercased, spaces to underscores,
suffixed with the resource-unit count. So an RTX 4090 reporting
`[GeForce RTX 4090]` yields geforce_rtx_4090_1.

Fixture-only. No UI source reads deviceProfile yet -- the field is schema
and SDK so far -- and the mocks are msw handlers, so nothing shipped
changes. Verified with pnpm lint (tsc across the workspace, eslint,
prettier), web-app:build, and the full suite: 121 tests, 7 files, all clean.

Worth the feature owner's attention: no fixture now exercises the
null-on-a-pgpu-card branch the field's description calls out -- a pgpu card
whose profile has not been created yet or could not be looked up. Left
alone rather than invented, since that is a choice about their feature.

Signed-off-by: Jim Lin <jim.lin@bigstack.co>
Co-authored-by: Eandalf <clinah@connect.ust.hk>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@lizzy-liang-bigstack lizzy-liang-bigstack left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀
Thank you for the update!

@raven-pan raven-pan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM,
Thanks!

@Eandalf-Bigstack Eandalf-Bigstack added the done Merge the pull request label Sep 15, 2026
@github-actions
github-actions Bot merged commit 1d3bf53 into develop Sep 15, 2026
9 checks passed
@Eandalf-Bigstack
Eandalf-Bigstack deleted the jim.lin/fix/drop-monasca branch September 15, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

done Merge the pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants