-
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
UIS Delta subscriptions & GraphQL null stripping back-end #3500
Conversation
91b38c4
to
892af23
Compare
892af23
to
86cbb92
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.
Scanning through the code, looks good so far, a couple of small comments.
86cbb92
to
836d31c
Compare
836d31c
to
224f0fa
Compare
9954e97
to
a9277b5
Compare
@dwsutherland, hi trying to catch up, what's the status of this one? Still POC? |
Just a few things:
|
a9277b5
to
66252f6
Compare
FYI - Ran into an issue, which probably should've been addressed earlier (but ok to address here); the job pool is not populated post restart. This means when stopping We should probably (like the task pool), repopulate the job pool with the latest submit from the DB: cylc-flow/cylc/flow/scheduler.py Lines 572 to 573 in 0d9d333
So this is what I'm working on... Although, we could defer this to another PR and just put some scaffolding back in place.. Thoughts? |
If you think that would be easier or quicker to review that change in another PR, then +1 for that. We can review that before the deltas (which I at least will spend some more time writing JS code for Cylc UI to use and test this PR) |
66252f6
to
75b691c
Compare
Done... In order not to make this PR too bloated, check added to the application of update deltas.. |
And done as in ready for tests with the UI again? Or done as in updated the PR but still gotta more things to be done? 😀 |
@dwsutherland - just trying to catch up here. Are you saying that restart won't work on this branch (and you can fix it in a follow-upon this)? But it did work before you removed the "scaffolding"? Can you explain what you meant by "scaffolding"? (I know I reviewed that PR, I wondered what you meant by scaffolding there too, but it seemed to be just removing undesirable exception catches as I recall). |
Before this PR, on the application of deltas, I use to set a default element (just ID) and merge with the updates if it didn't exist in the data-store... However that meant we were potentially missing bugs (like this post restart existing job state update).. Restarts still work. However, until we load job data from the DB we would miss displaying active task jobs post restart. |
PR to fix: #3550 |
75b691c
to
a321b56
Compare
A couple of comments on I don't know if @hjoliver will get the time for a code review. |
I'll do my best, in the next two days. I already spent a good few hours on it a week or so ago, mostly to understand the method, but had to move on to other things. Thanks for your thorough review though! |
20a779f
to
92fdab2
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.
🎉
Will leave for @hjoliver to review/merge on the alpha2 timeframe. |
Brilliant, thanks for all the hard work on this @dwsutherland and the heavy duty reviewing @oliver-sanders. I'll take a final look and hit merge as soon as I can. |
(and heavy duty functional testing @kinow !) |
282bc63
to
268d5ad
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.
A few minor issues after enabling strip null in the UI. Working again (thanks to @dwsutherland !)
36b4232
to
a3218bd
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.
Synced today, and tested with the UI. Everything worked fine, re-approved! 🎉
Nested deltas, delta-store resolving.
a3218bd
to
04d5cb3
Compare
@@ -77,7 +77,7 @@ def setUp(self) -> None: | |||
stopcp=None, | |||
check_point=True | |||
) | |||
assert 0 == warnings | |||
assert warnings == 0 |
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.
He heh, there's something hilarious about the original line 🤣
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.
🥇
* master: (61 commits) prepare 8.0a2 release CYLC_CONF_PATH: modify interpretation * if specified it must exist * if it's not readable you get and error because thats your fault * it can specify a file or a directory * also use pathlib because it's pretty scheduler_cli: add asyncio notes tests: fix version dependent test prepare 8.0a2 release tests: fix tests/f/cylc-ping/03 scheduler: shutdown logic for paritally initiated flows tests/i: tidy test utilities away out of sight pytest: exclude un-collectable test file scheduler_cli: simplify cli teardown tests/i: simplify teardown pycodestyle++ tests/i: suppress NFS teardown issues tests/i: fix asyncio event loop issues asyncio: shut down workflow tasks cleanly tests/i: fix nfs issues with integration testing cleanup/teardown tests/i: forward port test changes from cylc#3500 tests/i: clean tests tests: documentation setup: add missing test dependency ...
Closes #2684
These changes partially address:
https://github.com/cylc/cylc-admin/blob/master/docs/proposal-subscriptions.md
As a back-end solution required to bring the proposal to fruition.
This PR is the prerequisite to the UI Server implementation: cylc/cylc-uiserver#118
(They should be merge together, as there is one change that is breaking to the
BaseResolvers
)Labeled POC, but is functional and probably good to go if deemed desirable.
Features:
all
. This grouping is somewhat artificial, but ensures that any related deltas (i.e. new edges and their nodes) do not arrive at the UIS (and hence WebUI) in separate pushes (helps WUI in reducing incomplete/frequency-of view updates).ObjectType
.Future:
strip_null
/strip_values
an argument of the query.Requirements check-list
CONTRIBUTING.md
and added my name as a Code Contributor.