36 lines
No EOL
1.5 KiB
Python
36 lines
No EOL
1.5 KiB
Python
class BaseManager(object):
|
|
""" Base for all worker managers. """
|
|
def __init__(self, register_component, unregister_component, job_complete_callback):
|
|
self.register_component = register_component
|
|
self.unregister_component = unregister_component
|
|
self.job_complete_callback = job_complete_callback
|
|
|
|
def shutdown(self):
|
|
""" Indicates that the build controller server is in a shutdown state and that no new jobs
|
|
or workers should be performed. Existing workers should be cleaned up once their jobs
|
|
have completed
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def schedule(self, job_item):
|
|
""" Schedules a queue item to be built. Returns True if the item was properly scheduled
|
|
and False if all workers are busy.
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def initialize(self):
|
|
""" Runs any initialization code for the manager. Called once the server is in a ready state.
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def build_component_disposed(self, build_component, timed_out):
|
|
""" Method invoked whenever a build component has been disposed. The timed_out boolean indicates
|
|
whether the component's heartbeat timed out.
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def job_completed(self, job_item, job_status, build_component):
|
|
""" Method invoked once a job_item has completed, in some manner. The job_status will be
|
|
one of: incomplete, error, complete. If incomplete, the job should be requeued.
|
|
"""
|
|
raise NotImplementedError |