Drop monasca and senlin from the module list and labels - #870
Merged
Merged
Conversation
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>
Eandalf-Bigstack
force-pushed
the
jim.lin/fix/drop-monasca
branch
from
September 14, 2026 05:27
76d98da to
1df4b78
Compare
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
approved these changes
Sep 15, 2026
lizzy-liang-bigstack
left a comment
Collaborator
There was a problem hiding this comment.
LGTM 🚀
Thank you for the update!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Monascadisplay 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
d4550c91back on the yoga train.moduleNameLabelMapstill had asenlinentry. That one was unreachable rather than merely stale: the map is keyed by module names the API can return, andsenlinis 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 aNET00003Iin categoryNet. Changed toneutron.sdk/api.tsis regenerated bypnpm api:generatefrom 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
monasca commit — the
api.tsdiff is two JSDoc@typeunions and two enum members, the exact mirror of what570ec1f3added formetricsDb.senlin commit —
api.tscame back byte-for-byte unchanged fromapi: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.Both commits pin
packages/cube-frontend-api/cube-cos-openapiat that branch — re-pin to the merged SHA before this lands, the same way570ec1f3noted forfeat/metricsdb-service.Verified with
api:generate,pnpm tscacross the workspace projects, eslint, prettier, the full test suite (121 tests, 7 files) andweb-app:build— all clean.This PR needs
Additional documentation
🤖 Generated with Claude Code