mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-23 20:25:56 +00:00
3054621cd8
The vSphere Activity tab titled every vCenter event with its class name
("HostConnectedEvent", "HostProfileAppliedEvent"). Its When column
clipped the time on every row at 390, 768, 1024, 1280 and 1440px.
**Why the events read as class names**
Pulse never asked vCenter for the readable text. `QueryEvents` leaves
out each event's `fullFormattedMessage` unless the filter sets
`disableFullMessage` ([Broadcom VI JSON
reference](https://developer.broadcom.com/xapis/virtual-infrastructure-json-api/latest/data-structures/EventFilterSpec/):
"If the property is not set, the collected events do not include the
full formatted message"). On a real vCenter, the drawer's Message row
was therefore always empty too.
**What changes**
- **Readable events.** The client now sends `disableFullMessage: false`.
The provider titles an event change with vCenter's message, falling back
to the class when vCenter sends none, so Patrol's change context gets a
readable reason as well.
- **Stored records.** Events stored before this change still carry the
class as their title, so the page model prefers the message when it has
one.
- **Nothing lost.** The class stays in `vmwareEventType`. Activity
search still finds it, and the drawer shows it as a new Event type row.
The drawer no longer repeats the title in its Message row.
- **When.** It now reads as an age ("1d ago"), as Kubernetes events do,
with the exact time on hover and in the drawer. A vCenter time before
2000, vCenter's marker for an unset time, still shows "-".
- **Registry.** The Activity table moves from the date-time
shared-template rule to the relative-time rule, and the guardrail tests
follow.
**Verification**
- **Private mock stack, before and after.** Event rows read vCenter's
sentence, including records stored before the change. When clips at no
width, where it clipped at five of seven.
- **Trade-off.** The longer sentences truncate on phones and tablets,
with the full text on hover and in the drawer.
- **Drawer.** Checked in light and dark mode.
- **After rebasing onto main** (which now has #2559 and #2560): the
Activity sweep is unchanged, and the Datastores and Networks Health
columns measure exactly as verified in #2559.
- **Tests:** 1,802 frontend tests, the `internal/vmware` package, the
shared-template audit and the completion guard pass.
- **New tests cover:**
- the request flag;
- message-or-class titling;
- the stored-record fallback;
- search by class;
- the drawer rows;
- the relative When and its exact-time hover;
- the pre-2000 guard.
- **Review.** A second reviewer read the change twice and found one
stale assertion, which is fixed. Its first read is what surfaced the
missing `disableFullMessage`.