From 41c274b222c3f44df8ae6d9eb82cd11824f117d5 Mon Sep 17 00:00:00 2001 From: Ana Rosas Date: Wed, 15 Jun 2016 14:36:59 +0200 Subject: [PATCH] Remove 'type' from payload --- lib/travis/api/app/endpoint/builds.rb | 7 ++++--- lib/travis/api/app/endpoint/jobs.rb | 7 ++++--- lib/travis/api/enqueue/services/cancel_model.rb | 12 +++++++----- lib/travis/api/v3/queries/build.rb | 5 ++--- lib/travis/api/v3/queries/job.rb | 4 ++-- spec/v3/services/build/cancel_spec.rb | 12 ++++-------- 6 files changed, 23 insertions(+), 24 deletions(-) diff --git a/lib/travis/api/app/endpoint/builds.rb b/lib/travis/api/app/endpoint/builds.rb index 36d95293..b21a7cd6 100644 --- a/lib/travis/api/app/endpoint/builds.rb +++ b/lib/travis/api/app/endpoint/builds.rb @@ -23,7 +23,7 @@ class Travis::Api::App Metriks.meter("api.request.cancel_build").mark if Travis::Features.owner_active?(:enqueue_to_hub, current_user) - service = Travis::Enqueue::Services::CancelModel.new(current_user, { id: params[:id], type: :build }) + service = Travis::Enqueue::Services::CancelModel.new(current_user, { build_id: params[:id] }) else service = self.service(:cancel_build, params.merge(source: 'api')) end @@ -46,10 +46,11 @@ class Travis::Api::App status 422 respond_with json else + payload = { id: params[:id], user_id: current_user.id, source: 'api' } if service.respond_to?(:push) - service.push + service.push("build:cancel", payload) else - Travis::Sidekiq::BuildCancellation.perform_async(id: params[:id], user_id: current_user.id, source: 'api') + Travis::Sidekiq::BuildCancellation.perform_async(payload) end Metriks.meter("api.request.cancel_build.success").mark diff --git a/lib/travis/api/app/endpoint/jobs.rb b/lib/travis/api/app/endpoint/jobs.rb index 74b053e3..2f1fd0ed 100644 --- a/lib/travis/api/app/endpoint/jobs.rb +++ b/lib/travis/api/app/endpoint/jobs.rb @@ -30,7 +30,7 @@ class Travis::Api::App Metriks.meter("api.request.cancel_job").mark if Travis::Features.owner_active?(:enqueue_to_hub, current_user) - service = Travis::Enqueue::Services::CancelModel.new(current_user, { id: params[:id], type: :job }) + service = Travis::Enqueue::Services::CancelModel.new(current_user, { job_id: params[:id] }) else service = self.service(:cancel_job, params.merge(source: 'api')) end @@ -53,10 +53,11 @@ class Travis::Api::App status 422 respond_with json else + payload = { id: params[:id], user_id: current_user.id, source: 'api' } if service.respond_to?(:push) - service.push + service.push("job:cancel", payload) else - Travis::Sidekiq::JobCancellation.perform_async(id: params[:id], user_id: current_user.id, source: 'api') + Travis::Sidekiq::JobCancellation.perform_async(payload) end Metriks.meter("api.request.cancel_job.success").mark diff --git a/lib/travis/api/enqueue/services/cancel_model.rb b/lib/travis/api/enqueue/services/cancel_model.rb index 1b2e722c..bcc3f741 100644 --- a/lib/travis/api/enqueue/services/cancel_model.rb +++ b/lib/travis/api/enqueue/services/cancel_model.rb @@ -20,26 +20,27 @@ module Travis messages end - def push + def push(event, payload) # target may have been retrieved with a :join query, so we need to reset the readonly status if can_cancel? ::Sidekiq::Client.push( 'queue' => 'hub', 'class' => 'Travis::Hub::Sidekiq::Worker', - 'args' => ["#{type}:cancel", @params] + #'args' => ["#{type}:cancel", @params] + 'args' => [event, payload] ) end end def type - @params[:type] + @type ||= @params[:build_id] ? :build : :job end def target if type == :build - @target = Build.find(@params[:id]) + @target = Build.find(@params[:build_id]) else - @target = Job.find(@params[:id]) + @target = Job.find(@params[:job_id]) end end @@ -47,6 +48,7 @@ module Travis authorized? && target.cancelable? end + # check on web def authorized? current_user.permission?(:pull, :repository_id => target.repository_id) end diff --git a/lib/travis/api/v3/queries/build.rb b/lib/travis/api/v3/queries/build.rb index f9926f75..ca391e76 100644 --- a/lib/travis/api/v3/queries/build.rb +++ b/lib/travis/api/v3/queries/build.rb @@ -14,9 +14,8 @@ module Travis::API::V3 raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state payload = { id: id, user_id: user.id, source: 'api' } if Travis::Features.owner_active?(:enqueue_to_hub, user) - payload[:type] = :build - service = Travis::Enqueue::Services::CancelModel.new(user, payload) - service.push + service = Travis::Enqueue::Services::CancelModel.new(user, { build_id: id }) + service.push("build:cancel", payload) else perform_async(:build_cancellation, payload) end diff --git a/lib/travis/api/v3/queries/job.rb b/lib/travis/api/v3/queries/job.rb index 606cb6dc..52ee29bd 100644 --- a/lib/travis/api/v3/queries/job.rb +++ b/lib/travis/api/v3/queries/job.rb @@ -14,8 +14,8 @@ module Travis::API::V3 raise JobNotCancelable if %w(passed failed canceled errored).include? find.state payload = { id: id, user_id: user.id, source: 'api' } if Travis::Features.owner_active?(:enqueue_to_hub, user) - service = Travis::Enqueue::Services::CancelModel.new(user, payload) - service.push + service = Travis::Enqueue::Services::CancelModel.new(user, { job_id: id }) + service.push("job:cancel", payload) else perform_async(:job_cancellation, payload) end diff --git a/spec/v3/services/build/cancel_spec.rb b/spec/v3/services/build/cancel_spec.rb index 836d98d5..00c63c54 100644 --- a/spec/v3/services/build/cancel_spec.rb +++ b/spec/v3/services/build/cancel_spec.rb @@ -256,8 +256,7 @@ describe Travis::API::V3::Services::Build::Cancel do example { expect(sidekiq_payload).to be == { "id" => "#{build.id}", "user_id"=> repo.owner_id, - "source" => "api", - "type" => "build"} + "source" => "api"} } example { expect(Sidekiq::Client.last['queue']).to be == 'hub' } @@ -283,8 +282,7 @@ describe Travis::API::V3::Services::Build::Cancel do example { expect(sidekiq_payload).to be == { "id" => "#{build.id}", "user_id"=> repo.owner_id, - "source" => "api", - "type" => "build"} + "source" => "api"} } example { expect(Sidekiq::Client.last['queue']).to be == 'hub' } @@ -310,8 +308,7 @@ describe Travis::API::V3::Services::Build::Cancel do example { expect(sidekiq_payload).to be == { "id" => "#{build.id}", "user_id"=> repo.owner_id, - "source" => "api", - "type" => "build"} + "source" => "api"} } example { expect(Sidekiq::Client.last['queue']).to be == 'hub' } @@ -324,8 +321,7 @@ describe Travis::API::V3::Services::Build::Cancel do example { expect(sidekiq_payload).to be == { "id" => "#{build.id}", "user_id"=> repo.owner_id, - "source" => "api", - "type" => "build"} + "source" => "api"} } end end