-
Notifications
You must be signed in to change notification settings - Fork 178
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
refactor(api, robot-server): redirect router level calls to PE and protocol_runners via run orchestrator #15257
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## edge #15257 +/- ##
=======================================
Coverage 92.43% 92.43%
=======================================
Files 77 77
Lines 1283 1283
=======================================
Hits 1186 1186
Misses 97 97
Flags with carried forward coverage won't be shown. Click here to find out more. |
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.
This looks really good, thanks for taking it on! Let's fix up some docstring copypasta and test it, but the structure looks great!
Co-authored-by: Seth Foster <[email protected]>
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.
Thank you! This mostly makes sense to me so far and I think we should keep going. A few questions:
def prepare(self) -> None: | ||
"""Prepare live runner for a run.""" | ||
self._setup_runner.prepare() | ||
self._fixit_runner.prepare() | ||
self._protocol_live_runner.prepare() |
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.
It looks a little questionable that self._setup_runner.prepare()
and self._fixit_runner.prepare()
are called for live HTTP runs (because that's the only thing calling RunOrchestrator.prepare()
), and are not called for JSON or Python protocols. In all cases, the setup runner and fixit runner behave the same, right? So shouldn't they consistently always be .prepare()
'd or never be .prepare()
'd?
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 agree. I will fix it.
Oh and this should probably be |
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 agree with @SyntaxColoring about the prepare thing, we should have an explicit reason why we're not doing it, but other than that looks good!
…otocol_runners via run orchestrator (#15257)
Overview
second phase of run orchestrator. redirect all router level calls via
run_orchestrator
.Test Plan
Changelog
run_data_manager
and routers toengine_store
.run_orchestrator
to PE and to runners.Review requests
changes make sense? will something break? do we like this change? should I add more tests?
Risk assessment
Medium. tested with dev server and all tests are passing but still a fundamental change.