Conversation
Signed-off-by: Chris Harris <cjh@lbl.gov>
This refactor restructures the existing conman based
service into a more testable and maintainable form.
It builds on changes in SMD to provide console configuration
in a vendor agnostic way. A new websocket interface is
established to allow access to the console without using
conman directly. Having this interface could potentially
allow us to swap out conman for some other approach in
the future. These changes at a high level include:
- Splitting functionality into well defined packages
each with their own configuration. Providing better
separation of concerns and testability.
- Restructure cmd/remote-console into config/service/command
layers that use the newly established packages.
- Added some unit tests for the newly established packages.
- Added a websocket endpoint to allow interactive and tail
mode console sessions.
- Added a comprehensive integration test suite using
testcontainers. This uses an IPMI simulator and a set of
SSH containers to act as mock consoles.
- Remove dependency on HPE node type to determine how to
connect to consoles. This is now done using information
in the redfish endpoints provided by SMD.
Signed-off-by: Chris Harris <cjh@lbl.gov>
Signed-off-by: Chris Harris <cjh@lbl.gov>
763e9f2 to
a1b3681
Compare
Given the number of changes here are few pointers for reviewersThe new package structure is as follows:
Most of the code in these package is derived from the original with the exception of Outline of a review order
The redfish and IPMI emulators can be largely ignore:
|
Signed-off-by: Chris Harris <cjh@lbl.gov>
|
Chris and I conducted a review over a call and that led to the comment/changes above ^ this is a not-review alongside a proper github request for review from me that acknowledges that happened; Chris beat me to writing the acknowledgement of out-of-band review happened with the response to it also circulating this in another out-of-band channel for some other OpenCHAMI-interested staff at NERSC who I know have interest in remote-console, but are even less active on GitHub than I often am. ALSO here but I expect the GitHub notifications may get lost in email purgatory: Tagging @jstile-lbl, who's worked with the older console service code previously and is likely interested to test this, now that it should address some of the shortcomings he encountered. @dfox-lbl also maybe. |
|
Re-running since I don't think newer changes since earlier had enough impact on code/test run strategy since the successful one in https://github.com/OpenCHAMI/remote-console/actions/runs/21960205519/job/63435294660 Wanna try and confirm if that's a flake or consistent timeout. Both are things we'd want to address, but are things that we'd want to address different ways, and I lack enough familiarity with the test internals yet to guess at which is more likely, so moar datas 🤖 🔄 🔴 🟢 who knows yet. |
Very strange, was working fine! Will take a look. |
Signed-off-by: Chris Harris <cjh@lbl.gov>
|
OK, fixed, adding a license header to a test script broke things! Moved the shebang line back up to the top. |
Checklist
make test(or equivalent) locally and all tests passgit commit -s) with my real name and email<filename>.licensesidecarLICENSES/directoryDescription
This refactor restructures the existing conman based
service into a more testable and maintainable form.
It builds on changes in SMD to provide console configuration
in a vendor agnostic way. A new websocket interface is
established to allow access to the console without using
conman directly. Having this interface could potentially
allow us to swap out conman for some other approach in
the future. These changes at a high level include:
each with their own configuration. Providing better
separation of concerns and testability.
layers that use the newly established packages.
mode console sessions.
testcontainers. This uses an IPMI simulator and a set of
SSH containers to act as mock consoles.
connect to consoles. This is now done using information
in the redfish endpoints provided by SMD.
Fixes #(issue)
Type of Change
For more info, see Contributing Guidelines.