diff options
author | Shinya Maeda <shinya@gitlab.com> | 2018-03-30 18:16:09 +0900 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-04-05 20:42:08 +0900 |
commit | 9b7a0533ede133ad66d9ed0fba15d1b086e416dd (patch) | |
tree | 681a69364565cd811e7224257a7d7f0a627718b8 /app/controllers/projects/jobs_controller.rb | |
parent | 166b4575a6353668c894fea0ba234d0b371dee03 (diff) | |
download | gitlab-ce-9b7a0533ede133ad66d9ed0fba15d1b086e416dd.tar.gz |
Fix database trace to read raw
Diffstat (limited to 'app/controllers/projects/jobs_controller.rb')
-rw-r--r-- | app/controllers/projects/jobs_controller.rb | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/app/controllers/projects/jobs_controller.rb b/app/controllers/projects/jobs_controller.rb index 85e972d9731..5d6abcf906d 100644 --- a/app/controllers/projects/jobs_controller.rb +++ b/app/controllers/projects/jobs_controller.rb @@ -119,17 +119,17 @@ class Projects::JobsController < Projects::ApplicationController end def raw - if trace_artifact_file - send_upload(trace_artifact_file, - send_params: raw_send_params, - redirect_params: raw_redirect_params) - else - build.trace.read do |stream| - if stream.file? - send_file stream.path, type: 'text/plain; charset=utf-8', disposition: 'inline' - else - render_404 - end + build.trace.read do |stream| + if trace_artifact_file + send_upload(trace_artifact_file, + send_params: { type: 'text/plain; charset=utf-8', disposition: 'inline' }, + redirect_params: { query: { 'response-content-type' => 'text/plain; charset=utf-8', 'response-content-disposition' => 'inline' } } ) + elsif stream.file? + send_file stream.path, type: 'text/plain; charset=utf-8', disposition: 'inline' + elsif build.old_trace + send_data stream.path, type: 'text/plain; charset=utf-8', disposition: 'inline', filename: 'job.log' + else + render_404 end end end @@ -144,14 +144,6 @@ class Projects::JobsController < Projects::ApplicationController return access_denied! unless can?(current_user, :erase_build, build) end - def raw_send_params - { type: 'text/plain; charset=utf-8', disposition: 'inline' } - end - - def raw_redirect_params - { query: { 'response-content-type' => 'text/plain; charset=utf-8', 'response-content-disposition' => 'inline' } } - end - def trace_artifact_file @trace_artifact_file ||= build.job_artifacts_trace&.file end |