-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add CLI http comms method #5267
base: master
Are you sure you want to change the base?
Conversation
f62e73e
to
a378ca5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice.
We should be able to add the HTTPS comms method to the existing test battery. I've had a crack at the config here but haven't tried it out yet: https://github.com/oliver-sanders/cylc-flow/pull/new/swarm-https
Due to the way the test battery works there are two hosts:
- The one where tests run:
- This is either your own machine or the GitHub actions runner.
- It has cylc-flow installed.
- The job host:
- This is the docker image, pretending to be another host.
- It will have the UIS installed and the hub running.
So existing tests would try submitting jobs to the host which has the UIS running on it. This isn't how HTTPS comms would be used IRL as we would expect it to be installed on a third machine, however, this should be good enough for testing purposes. Jobs will contact the hub (on the same host) which will then TCP back to the test machine.
Any tests which define REQUIRE_PLATFORM
that matches _remote_background_indep_https
(e.g. *
& tcp:*
) would be run against HTTPS mode comms.
To write tests specifically for HTTPS comms use REQUIRE_PLATFORM='comms:https'
. You can ssh $CYLC_TEST_HOST
to test communication the more natural way around.
cylc/flow/cfgspec/globalcfg.py
Outdated
http | ||
Via the running Hub proxy and/or UI-Server (requires UI | ||
Server installation) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does cylc-flow know which port to contact the hub on when it doesn't share a filesystem with the hub? Do we need to configure this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the user might need to copy/replicate the ~/.cylc/uiserver/api_info.json
file (if we don't figure out a way to automate it), because the server in question might not have ssh access (if just for CLI purposes)..
The other issue is, if the UIS gets restarted then the token will change.. Will having the scheduler monitor this be an issue? would we test with each job submission?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ATM clients are generally short lived (with the exception of the cylc tui
client) so this isn't a biggie.
I guess reload this file if we get a comms failure and retry (once) if the file contents has changed.
a378ca5
to
9eea620
Compare
Should we merge that branch into this? Question:
|
I would label it |
9eea620
to
09adfe7
Compare
3aeffc4
to
0a4231f
Compare
* Add a new docker image with cylc-uiserver/cylc-hub installed. * Start the hub on a configured port.
7fb0fef
to
ffc423f
Compare
ffc423f
to
d607339
Compare
Partially address #5235
Sibling to cylc/cylc-uiserver#396
Description to come.
Check List
CONTRIBUTING.md
and added my name as a Code Contributor.setup.cfg
andconda-environment.yml
.CHANGES.md
entry included if this is a change that can affect users?.?.x
branch.