!SDKYnTgYyOXNBpJySp:matrix.org

cylc protocols & APIs

21 Members
HTTPS, WebSocket, ZeroMQ; REST, GraphQL1 Servers

Load older messages


SenderMessageTime
7 Dec 2022
@dwsutherland:matrix.orgDavid SutherlandWill add the above to the issue08:26:36
@davidmatthews:matrix.orgDavid MatthewsI'd have thought the platform configuration is sufficient but maybe I'm getting confused as to how we see this method being used. Perhaps one to debate further at the next VC?13:42:49
@oliver-sanders2:matrix.orgoliver sandersYep, the comms method is only for jobs ATM, however, I think there may be legit use cases for allowing it to be configurable e.g. if the required ports are not open between the client machine and the Scheduler hosts (in which case SSH+TCP would make sense). I think this was just an oversight :( Should be simple to resolve though, just need to load the global config in the client factory function thinngy that decides which client we get. I've put up an issue for this: https://github.com/cylc/cylc-flow/issues/5235#issuecomment-134060494717:45:02
@dwsutherland:matrix.orgDavid SutherlandDefinitely a use case if http/hub-proxy has more reach than the tcp local network .. you can just copy the api info, then run commands remotely19:41:03
@dwsutherland:matrix.orgDavid Sutherlandthis will allow for websockets, next, so we can have graphql subs on the command line (while I work on sch subs)20:06:14
@dwsutherland:matrix.orgDavid Sutherland

I know the justification of CLI http, but I'm not sure there's any justification for job communications over HTTP (even though it can easily be done).. do I or don't I add an option to platforms:

            Conf('communication method',
                 VDR.V_STRING, 'zmq',
                 options=[meth.value for meth in CommsMeth], desc=f'''
                The means by which task progress messages are reported back to
                the running workflow.

                Options:

                zmq
                   Direct client-server TCP communication via network ports
                poll
                   The workflow polls for task status (no task messaging)
                ssh
                   Use non-interactive ssh for task communications

                .. versionchanged:: 8.0.0

                   {REPLACES}``global.rc[hosts][<host>]task communication
                   method``.
            ''')
22:09:12
@dwsutherland:matrix.orgDavid Sutherlandbecause if they can ssh jobs to remote platforms, won't they ssh back to invoke the job messaging if needed?22:10:20
@dwsutherland:matrix.orgDavid Sutherlandor is it one way? and if so, is there ever the case tcp comms are blocked from the remote but http open I vaguely remember in our NZ gathering, someone talking about needed HTTP CLI access on a remote machine 22:12:20
@dwsutherland:matrix.orgDavid Sutherland * or is it one way? and if so, is there ever the case tcp comms are blocked from the remote but http open I vaguely remember in our NZ gathering, someone talking about needing HTTP CLI access on a remote machine 22:12:38
@dwsutherland:matrix.orgDavid Sutherlandthis can go through the hub proxy (BTW)22:13:46
@dwsutherland:matrix.orgDavid Sutherland * this http can go through the hub proxy (BTW)22:14:02
@dwsutherland:matrix.orgDavid Sutherland * this http can go through the hub proxy (BTW), If I manage to know what url it's using when writing the api_info.json 22:14:56
@revilo666:matrix.orgHilary OliverIf it's easy to support multiple comms methods here, fine. However, at some point we probably have say "this is how Cylc works; if you want to use Cylc make the business case to your HPC admins that they need to open the appropriate comms channels" 22:15:28
@dwsutherland:matrix.orgDavid Sutherland * this http can go through the hub proxy (BTW), If I manage to know what host and port it's using when writing the api_info.json 22:15:30
@dwsutherland:matrix.orgDavid SutherlandYeah, this is easy to support.. I'm just using UIS existing libs at the moment, and requiring UIS installation22:16:45
@dwsutherland:matrix.orgDavid Sutherland Actually sorry, just installed a new environment to check, I did install the requests library in the UIS env. But there may/will be other libraries that can make requests and are already included. 22:45:54
8 Dec 2022
@davidmatthews:matrix.orgDavid MatthewsTim Whitcomb raised the requirement to use https for task comms, see https://cylc.github.io/cylc-admin/feb2020-workshop-notes07:37:15
16 Dec 2022
@dwsutherland:matrix.orgDavid Sutherland

oliver sanders:

In practice sites would want to set [platforms][localhost]communications method to match [CLI]communications method so I don't think there is any benefit to separating the two.

How does comms method poll make sense for cylc broadcast?

If I use the same [platforms][localhost]communications method should I keep a set of poll applicable tasks to check this against then default to zmq if not applicable?

05:11:36
@dwsutherland:matrix.orgDavid Sutherland *

oliver sanders:

In practice sites would want to set [platforms][localhost]communications method to match [CLI]communications method so I don't think there is any benefit to separating the two.

How does comms method poll make sense for cylc broadcast?

If I use the same [platforms][localhost]communications method should I keep a set of poll applicable commands to check this against then default to zmq if not applicable?

05:12:29
@dwsutherland:matrix.orgDavid Sutherland

Also why just localhost I assume people will be able to define remote platforms with https as the comms method?.. (which, I assume, will be carried over by CYLC_TASK_COMMS_METHOD in the job environment)..

localhost is only really use in any interactive scenario, I suppose, so that's what I'd lookup in the global conf

Guess I answered my own question 😅

05:49:01
@dwsutherland:matrix.orgDavid Sutherland *

Also why just localhost I assume people will be able to define remote platforms with https as the comms method?.. (which, I assume, will be carried over by CYLC_TASK_COMMS_METHOD in the job environment)..

localhost is only really use in any interactive scenario, I suppose, so that's what I'd lookup in the global conf (in the absence of CYLC_TASK_COMMS_METHOD)

Guess I answered my own question 😅

05:53:59
@dwsutherland:matrix.orgDavid Sutherland *

Also why just localhost I assume people will be able to define remote platforms with https as the comms method?.. (which, I assume, will be carried over by CYLC_TASK_COMMS_METHOD in the job environment)..

localhost is only really used in any interactive scenario, I suppose, so that's what I'd lookup in the global conf (in the absence of CYLC_TASK_COMMS_METHOD)

Guess I answered my own question 😅

06:29:46
@oliver-sanders2:matrix.orgoliver sanders
In reply to @dwsutherland:matrix.org

oliver sanders:

In practice sites would want to set [platforms][localhost]communications method to match [CLI]communications method so I don't think there is any benefit to separating the two.

How does comms method poll make sense for cylc broadcast?

If I use the same [platforms][localhost]communications method should I keep a set of poll applicable commands to check this against then default to zmq if not applicable?

Poll doesn't make sense for localhost job comms either.
11:10:19
@oliver-sanders2:matrix.orgoliver sanders
In reply to @dwsutherland:matrix.org

Also why just localhost I assume people will be able to define remote platforms with https as the comms method?.. (which, I assume, will be carried over by CYLC_TASK_COMMS_METHOD in the job environment)..

localhost is only really used in any interactive scenario, I suppose, so that's what I'd lookup in the global conf (in the absence of CYLC_TASK_COMMS_METHOD)

Guess I answered my own question 😅

Because this comms method must be set in the global config on the host it applies to it will always be locahost that we configure this for.
11:11:56
@dwsutherland:matrix.orgDavid Sutherland That was kinda my point.. but I have seen workflows with poll set for all jobs XD 11:12:12
@dwsutherland:matrix.orgDavid Sutherland * That was kinda my point.. but I have seen workflows with poll set for all tasks XD 11:12:28
@oliver-sanders2:matrix.orgoliver sandersBy workflows you mean global configurations?11:12:37
@oliver-sanders2:matrix.orgoliver sanders(we can't set communications method at the workflow level in Cylc 8)11:12:49
@dwsutherland:matrix.orgDavid Sutherland
In reply to @oliver-sanders2:matrix.org
(we can't set communications method at the workflow level in Cylc 8)
Cylc7
11:13:05
@dwsutherland:matrix.orgDavid SutherlandWe still have to make sure things don't break when someone does something weird11:13:44

Show newer messages


Back to Room ListRoom Version: 1