Loading client/src/components/JobInformation/JobInformation.vue +2 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ <div> <JobDetailsProvider auto-refresh :job-id="job_id" @update:result="updateJob"/> <JobConsoleOutputProvider auto-refresh="True" auto-refresh :job-id="job_id" :stdout_position="stdout_position" :stdout_length="stdout_length" Loading Loading @@ -166,7 +166,7 @@ export default { this.stderr_position += output.stderr.length; } } } }, }, }; </script> lib/galaxy/schema/jobs.py +6 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,12 @@ class JobOutput(Model): value: EncodedDataItemSourceId = Field(default=Required, title="Dataset", description="The associated dataset.") class JobConsoleOutput(Model): state: str = Field(None, title="Job State", description="The current job's state") stdout: Optional[str] = Field(None, title="STDOUT", description="Job STDOUT text") stderr: Optional[str] = Field(None, title="STDERR", description="Job STDERR text") class JobParameter(Model): text: str = Field( default=Required, Loading lib/galaxy/webapps/galaxy/api/jobs.py +31 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ from galaxy.schema.fields import DecodedDatabaseIdField from galaxy.schema.jobs import ( DeleteJobPayload, EncodedJobDetails, JobConsoleOutput, JobDestinationParams, JobDisplayParametersSummary, JobErrorSummary, Loading Loading @@ -360,6 +361,36 @@ class FastAPIJobs: output_associations.append(JobOutputAssociation(name=association.name, dataset=association.dataset)) return output_associations @router.get( "/api/jobs/{job_id}/console_output", name="get_console_output", summary="Returns STDOUT and STDERR from job.", ) def console_output( self, job_id: Annotated[DecodedDatabaseIdField, JobIdPathParam], stdout_position: int, stdout_length: int, stderr_position: int, stderr_length: int, trans: ProvidesUserContext = DependsOnTrans, ) -> JobConsoleOutput: """ Get the stdout and/or stderr of a job. The position parameters are the index of where to start reading stdout/stderr. The length parameterscontrol how much stdout/stderr is read. """ job = self.service.get_job(trans, job_id) output = self.service.job_manager.get_job_console_output( trans, job, int(stdout_position), int(stdout_length), int(stderr_position), int(stderr_length), ) return JobConsoleOutput(state=output["state"], stdout=output["stdout"], stderr=output["stderr"]) @router.get( "/api/jobs/{job_id}/parameters_display", name="resolve_parameters_display", Loading Loading
client/src/components/JobInformation/JobInformation.vue +2 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ <div> <JobDetailsProvider auto-refresh :job-id="job_id" @update:result="updateJob"/> <JobConsoleOutputProvider auto-refresh="True" auto-refresh :job-id="job_id" :stdout_position="stdout_position" :stdout_length="stdout_length" Loading Loading @@ -166,7 +166,7 @@ export default { this.stderr_position += output.stderr.length; } } } }, }, }; </script>
lib/galaxy/schema/jobs.py +6 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,12 @@ class JobOutput(Model): value: EncodedDataItemSourceId = Field(default=Required, title="Dataset", description="The associated dataset.") class JobConsoleOutput(Model): state: str = Field(None, title="Job State", description="The current job's state") stdout: Optional[str] = Field(None, title="STDOUT", description="Job STDOUT text") stderr: Optional[str] = Field(None, title="STDERR", description="Job STDERR text") class JobParameter(Model): text: str = Field( default=Required, Loading
lib/galaxy/webapps/galaxy/api/jobs.py +31 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ from galaxy.schema.fields import DecodedDatabaseIdField from galaxy.schema.jobs import ( DeleteJobPayload, EncodedJobDetails, JobConsoleOutput, JobDestinationParams, JobDisplayParametersSummary, JobErrorSummary, Loading Loading @@ -360,6 +361,36 @@ class FastAPIJobs: output_associations.append(JobOutputAssociation(name=association.name, dataset=association.dataset)) return output_associations @router.get( "/api/jobs/{job_id}/console_output", name="get_console_output", summary="Returns STDOUT and STDERR from job.", ) def console_output( self, job_id: Annotated[DecodedDatabaseIdField, JobIdPathParam], stdout_position: int, stdout_length: int, stderr_position: int, stderr_length: int, trans: ProvidesUserContext = DependsOnTrans, ) -> JobConsoleOutput: """ Get the stdout and/or stderr of a job. The position parameters are the index of where to start reading stdout/stderr. The length parameterscontrol how much stdout/stderr is read. """ job = self.service.get_job(trans, job_id) output = self.service.job_manager.get_job_console_output( trans, job, int(stdout_position), int(stdout_length), int(stderr_position), int(stderr_length), ) return JobConsoleOutput(state=output["state"], stdout=output["stdout"], stderr=output["stderr"]) @router.get( "/api/jobs/{job_id}/parameters_display", name="resolve_parameters_display", Loading