-
Notifications
You must be signed in to change notification settings - Fork 15
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
Finish CLI function implementations #525
Finish CLI function implementations #525
Conversation
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.
Left a few minor comments, but in general this looks good!
python/lib/communication/dmod/communication/maas_request/job_message.py
Outdated
Show resolved
Hide resolved
python/lib/communication/dmod/communication/maas_request/job_message.py
Outdated
Show resolved
Hide resolved
python/lib/externalrequests/dmod/externalrequests/maas_request_handlers.py
Show resolved
Hide resolved
python/lib/externalrequests/dmod/externalrequests/maas_request_handlers.py
Show resolved
Hide resolved
python/lib/externalrequests/dmod/externalrequests/maas_request_handlers.py
Show resolved
Hide resolved
19dadb5
to
ae771c1
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.
There's at least one syntax error, so that should be addressed.
python/lib/externalrequests/dmod/externalrequests/maas_request_handlers.py
Outdated
Show resolved
Hide resolved
ae771c1
to
54d4cfb
Compare
fix the version, brochaho |
- Adjusting the documentation of MessageEvenType.SCHEDULER_REQUEST to broaden its applicability beyond initiating a job. - Making Response extend from BasicResultIndicator so that the 'data' attribute can be implemented just once (and correctly)
Bumping communication package dependency version required by scheduler service package.
Adding several private functions to the scheduler service handler for handling new messages for job information or control requests.
Updating listener function with redesigned logic for processing incoming messages that includes handling of new message types for handling requests for job information or to control existing jobs.
Added STOPPING (for when a job has been requested to be stopped, but before it has) and CANCELED (when a STOPPED job has its resources released) JobExecStep values.
Allow for releasing resources in CANCELED or COMPLETED steps.
Rewriting to implement via list comprehension rather than loop.
Adding function to get all job ids to interface, and updating redis impl for this; also modifying tracking of active jobs to track job id, rather than job key.
Modify release_allocations func in JobManager interface and Redis impl: - accept either a job object reference or a job id as the param - return a BasicResultIndicator, rather than nothing - updating Redis impl specifically to only act on a job in a state that makes it eligible to release resources - updating Redis impl specifically to include logic to saving the updated job object
Renaming get_parseable_request_funcs to _get_parseable_request_funcs to indicate it isn't intended for use outside the class and its instances.
Add support for handling JobControlRequest, JobInfoRequest, and JobListRequest in main request service handler.
Adding implementations for request_job_info, request_job_release, request_job_resume, request_job_status, request_job_stop, and request_jobs_list functions.
Note that proper fix is out of scope for this; this addresses immediate failures loading module.
Move "set" of several attribute values in it_RedisBackedJobManager.py to use of setter functions.
Updating it_RedisBackedJobManager.py to account for changes in the implementation of the release_allocations function, including some expansion to test coverage.
Moving to use of setter.
Adjusting function name from request_job_resume to request_job_restart to distinguish (hopefully) this is restarting a previously running job.
Updating newly implemented job query and control functions in JobClient to account fully for failure scenarios, and refactoring to centralize mostly duplicate routines that lent themselves well to shared parameterized functions.
…essage.py Co-authored-by: Austin Raney <[email protected]>
…essage.py Co-authored-by: Austin Raney <[email protected]>
…essage.py Co-authored-by: Austin Raney <[email protected]>
…_handlers.py Co-authored-by: Austin Raney <[email protected]>
54d4cfb
to
3c38a17
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.
This looks good to me. Thanks, @robertbartel. Merge at will
Despite @aaraney's approval, Github still seems to want me to wait for @christophertubbs, since his review result was to request changes. I'm going to see what happens if I dismiss that stale review. |
Outdated and superseded by Austin's approval
Complete support for CLI commands to get a list of job ids, to get job state details, and to stop and restart already-running jobs.
Additions
STOPPING
(but not stopped) andCANCELED
(i.e., first stopped, then resources released) jobsChanges
Testing