Human friendly endpoint table#879
Conversation
There was a problem hiding this comment.
Thanks for this @wanyunSu, this is really good to see.
I've got two main comments that I think would be nice to be implemented.
- SSH table endpoint
With these changes the outcome of the endpoint becomes like so:
I would much prefer if we have the previous behaviour of showing the actual server name, rather than localhost. For example, in develop it looks like this:
This will come in super handy when we're having the multi-shell stuff when we're using two different host, so its good to be able to tell what host its actually running on.
- Suggestion on the actual output of the table.
This is more of a cosmetic thing but I think it'll come in handy. Feel free to discuss with Pawel if you want to implement it or not.
I like that the actual endpoints are shown in the tty; but I'm wondering if its better to shove the actual endpoint IP address in a separate column, eg the 'actual endpoint' column? And also to have this disabled by default, but you can enable this with some flag (for example a status --full or something).
Suggesting mainly because as is the table gets quite long, and tables have a nasty habit of truncating / wrapping around when its in a smaller terminal that makes it shorten relevant info. So maybe its better if its in another column and if its hidden by default, but that you can call up.
I've also left a couple of code suggestions to improve the code itself.
Some other information
- tested against develop as of 6 May 2026
- rebased against master
- msqt passes
- Confirm it fixes #859
- Cannot confirm if it fixes #792 as this needs to be tested on hardware and I don't have access to it. @wanyunSu do you have hardware access? cc @PawelPlesniak
| self.status_receiver_controller = BroadcastHandler(broadcast_configuration=bcch) | ||
|
|
||
|
|
||
| def get_endpoint_display_host_overrides(self) -> dict[str, str]: |
There was a problem hiding this comment.
Any chance this can be pytested?
strong preference if possible, but I don't think this is a blocker for this to go in
|
Following @emmuhamm's comments
|
|
Just checking back in:
Thankfully this already exists: drunc/src/drunc/utils/utils.py Line 200 in b78fe4c And is something I've just used for the PMaaS, so thought it might be useful to flag up here |
|
Thanks @PawelPlesniak @emmuhamm for the comments!
The expected |
emmuhamm
left a comment
There was a problem hiding this comment.
Thanks for the update! I've gone through the code and they look good to me.
Couple of review notes:
- Pytest fails. This is likely not due to this PR, since this is known in develop. See #918
- Still untested on #792
- Most recent changes pass msqt
- The pytest addition still hasn't been addressed. However, as I mentioned in my comment I don't consider this a blocker for this PR.
I'll submit my review as a comment for now. I can't approve on GitHub it since I can't test it against #792, but barring that I'm happy with this.
@PawelPlesniak feel free to test on hardware whenever, and feel free to proceed if you're happy.
Description
Fixes issue #792 #859
The
statustable now shows both user-friendly hostname and the actual endpoints that applications connect to:K8s session:
and in SSH session:
Type of change
List of required branches from other repositories
n/a
Change log
Add a helper function
get_endpoint_display_host_overridesto improve the readability of the controller status table display by replacing raw endpoint IPs with human-readable hostnames when available.Note it only overrides the table when a Process Manager is available, the mapping is populated from
ProcessDescription.metadata.hostnameThis allows Kubernetes node names (or other host metadata) to be used for display.
The default implementation returns {} (no overrides).
The change is purely cosmetic and should not affect connectivity or controller behaviour.
Suggested manual testing checklist
LIST COMMANDS TO DEMONSTRATE CHANGE
Developer checklist
Prior to marking this as "Ready for Review"
Tests ran on: np04 019, with NFD_DEV_260414_A9
Unit tests - some tests can't be ran on the CI. This is documented. If this PR checks a feature that can't be tested with CI, this has been marked appropriately.
Integration tests - the
daqsystemtest_integtest_bundlerequires a lot of resources, and connections to the EHN1 infrastructure. Check the cross referenced list if you can't run these. The developer needs to run at least the .pytest --marker) passeddaqsystemtest_integtest_bundle.sh -k minimal_system_quick_test.pydaqsystemtest_integtest_bundle.shFinal checklist prior to marking this as "Ready for Review"
Reviewer checklist
druncare in the log filesdruncfailure appears:Once the features are validated and both the unit and integration tests pass, the PRs is ready to be merged.
Choose one of the following an complete all substepsPrior to merging
Once completed, the reviewer can merge the PR.
Notification message for a Slack channel
Note - this should be to #dunedaq-integration for general workflow that isn't during a release candidate period, and to #daq-release-prep otherwise.
For an single merge that changes the user workflow
For co-ordinated merge