diff options
author | Benjamin Schubert <contact@benschubert.me> | 2020-07-07 17:58:50 +0100 |
---|---|---|
committer | Benjamin Schubert <contact@benschubert.me> | 2020-08-29 16:41:52 +0000 |
commit | 3eda124967014b476118e1ff3af42f1c001478d0 (patch) | |
tree | 2f4bbc41c2e0d74d832b344072790d55ce0bdbc9 | |
parent | 07889caa1a09c763308580a7b6d92cd3e15e9098 (diff) | |
download | buildstream-bschubert/merge-parent-child-job.tar.gz |
job.py: Remove the ability to send back child databschubert/merge-parent-child-job
We only use this for workspace information that we can now get directly
since we run in the same process
-rw-r--r-- | src/buildstream/_scheduler/jobs/elementjob.py | 9 | ||||
-rw-r--r-- | src/buildstream/_scheduler/jobs/job.py | 22 | ||||
-rw-r--r-- | src/buildstream/_scheduler/queues/queue.py | 10 |
3 files changed, 5 insertions, 36 deletions
diff --git a/src/buildstream/_scheduler/jobs/elementjob.py b/src/buildstream/_scheduler/jobs/elementjob.py index 683129506..c72be4052 100644 --- a/src/buildstream/_scheduler/jobs/elementjob.py +++ b/src/buildstream/_scheduler/jobs/elementjob.py @@ -91,12 +91,3 @@ class ChildElementJob(ChildJob): # Run the action return self._action_cb(self._element) - - def child_process_data(self): - data = {} - - workspace = self._element._get_workspace() - if workspace is not None: - data["workspace"] = workspace.to_dict() - - return data diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py index 88c1bb2b0..23617732c 100644 --- a/src/buildstream/_scheduler/jobs/job.py +++ b/src/buildstream/_scheduler/jobs/job.py @@ -72,7 +72,6 @@ class _MessageType(FastEnum): LOG_MESSAGE = 1 ERROR = 2 RESULT = 3 - CHILD_DATA = 4 # Job() @@ -113,7 +112,6 @@ class Job: # self.name = None # The name of the job, set by the job's subclass self.action_name = action_name # The action name for the Queue - self.child_data = None # Data to be sent to the main process # # Private members @@ -388,9 +386,6 @@ class Job: elif envelope.message_type is _MessageType.RESULT: assert self._result is None self._result = envelope.message - elif envelope.message_type is _MessageType.CHILD_DATA: - # If we retry a job, we assign a new value to this - self.child_data = envelope.message else: assert False, "Unhandled message type '{}': {}".format(envelope.message_type, envelope.message) @@ -523,20 +518,6 @@ class ChildJob: def child_process(self): raise ImplError("ChildJob '{kind}' does not implement child_process()".format(kind=type(self).__name__)) - # child_process_data() - # - # Abstract method to retrieve additional data that should be - # returned to the parent process. Note that the job result is - # retrieved independently. - # - # Values can later be retrieved in Job.child_data. - # - # Returns: - # (dict) A dict containing values to be reported to the main process - # - def child_process_data(self): - return {} - # child_action() # # Perform the action in the child process, this calls the action_cb. @@ -595,8 +576,6 @@ class ChildJob: sandbox=e.sandbox, ) - self._send_message(_MessageType.CHILD_DATA, self.child_process_data()) - # Report the exception to the parent (for internal testing purposes) self._child_send_error(e) @@ -618,7 +597,6 @@ class ChildJob: else: # No exception occurred in the action - self._send_message(_MessageType.CHILD_DATA, self.child_process_data()) self._child_send_result(result) elapsed = datetime.datetime.now() - timeinfo.start_time diff --git a/src/buildstream/_scheduler/queues/queue.py b/src/buildstream/_scheduler/queues/queue.py index 9e444b393..96a701645 100644 --- a/src/buildstream/_scheduler/queues/queue.py +++ b/src/buildstream/_scheduler/queues/queue.py @@ -268,16 +268,16 @@ class Queue: # job (Job): The job which completed # def _update_workspaces(self, element, job): - workspace_dict = None - if job.child_data: - workspace_dict = job.child_data.get("workspace", None) + # FIXME: This should be done only for build jobs and not by proding + # the element, but as an explicit return value from the job + workspace = element._get_workspace() # Handle any workspace modifications now # - if workspace_dict: + if workspace: context = element._get_context() workspaces = context.get_workspaces() - if workspaces.update_workspace(element._get_full_name(), workspace_dict): + if workspaces.update_workspace(element._get_full_name(), workspace.to_dict()): try: workspaces.save_config() except BstError as e: |