Remove 'type' from payload
This commit is contained in:
parent
5949429f75
commit
41c274b222
|
@ -23,7 +23,7 @@ class Travis::Api::App
|
||||||
Metriks.meter("api.request.cancel_build").mark
|
Metriks.meter("api.request.cancel_build").mark
|
||||||
|
|
||||||
if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
|
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
|
else
|
||||||
service = self.service(:cancel_build, params.merge(source: 'api'))
|
service = self.service(:cancel_build, params.merge(source: 'api'))
|
||||||
end
|
end
|
||||||
|
@ -46,10 +46,11 @@ class Travis::Api::App
|
||||||
status 422
|
status 422
|
||||||
respond_with json
|
respond_with json
|
||||||
else
|
else
|
||||||
|
payload = { id: params[:id], user_id: current_user.id, source: 'api' }
|
||||||
if service.respond_to?(:push)
|
if service.respond_to?(:push)
|
||||||
service.push
|
service.push("build:cancel", payload)
|
||||||
else
|
else
|
||||||
Travis::Sidekiq::BuildCancellation.perform_async(id: params[:id], user_id: current_user.id, source: 'api')
|
Travis::Sidekiq::BuildCancellation.perform_async(payload)
|
||||||
end
|
end
|
||||||
|
|
||||||
Metriks.meter("api.request.cancel_build.success").mark
|
Metriks.meter("api.request.cancel_build.success").mark
|
||||||
|
|
|
@ -30,7 +30,7 @@ class Travis::Api::App
|
||||||
Metriks.meter("api.request.cancel_job").mark
|
Metriks.meter("api.request.cancel_job").mark
|
||||||
|
|
||||||
if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
|
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
|
else
|
||||||
service = self.service(:cancel_job, params.merge(source: 'api'))
|
service = self.service(:cancel_job, params.merge(source: 'api'))
|
||||||
end
|
end
|
||||||
|
@ -53,10 +53,11 @@ class Travis::Api::App
|
||||||
status 422
|
status 422
|
||||||
respond_with json
|
respond_with json
|
||||||
else
|
else
|
||||||
|
payload = { id: params[:id], user_id: current_user.id, source: 'api' }
|
||||||
if service.respond_to?(:push)
|
if service.respond_to?(:push)
|
||||||
service.push
|
service.push("job:cancel", payload)
|
||||||
else
|
else
|
||||||
Travis::Sidekiq::JobCancellation.perform_async(id: params[:id], user_id: current_user.id, source: 'api')
|
Travis::Sidekiq::JobCancellation.perform_async(payload)
|
||||||
end
|
end
|
||||||
|
|
||||||
Metriks.meter("api.request.cancel_job.success").mark
|
Metriks.meter("api.request.cancel_job.success").mark
|
||||||
|
|
|
@ -20,26 +20,27 @@ module Travis
|
||||||
messages
|
messages
|
||||||
end
|
end
|
||||||
|
|
||||||
def push
|
def push(event, payload)
|
||||||
# target may have been retrieved with a :join query, so we need to reset the readonly status
|
# target may have been retrieved with a :join query, so we need to reset the readonly status
|
||||||
if can_cancel?
|
if can_cancel?
|
||||||
::Sidekiq::Client.push(
|
::Sidekiq::Client.push(
|
||||||
'queue' => 'hub',
|
'queue' => 'hub',
|
||||||
'class' => 'Travis::Hub::Sidekiq::Worker',
|
'class' => 'Travis::Hub::Sidekiq::Worker',
|
||||||
'args' => ["#{type}:cancel", @params]
|
#'args' => ["#{type}:cancel", @params]
|
||||||
|
'args' => [event, payload]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def type
|
def type
|
||||||
@params[:type]
|
@type ||= @params[:build_id] ? :build : :job
|
||||||
end
|
end
|
||||||
|
|
||||||
def target
|
def target
|
||||||
if type == :build
|
if type == :build
|
||||||
@target = Build.find(@params[:id])
|
@target = Build.find(@params[:build_id])
|
||||||
else
|
else
|
||||||
@target = Job.find(@params[:id])
|
@target = Job.find(@params[:job_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -47,6 +48,7 @@ module Travis
|
||||||
authorized? && target.cancelable?
|
authorized? && target.cancelable?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# check on web
|
||||||
def authorized?
|
def authorized?
|
||||||
current_user.permission?(:pull, :repository_id => target.repository_id)
|
current_user.permission?(:pull, :repository_id => target.repository_id)
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,9 +14,8 @@ module Travis::API::V3
|
||||||
raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state
|
raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state
|
||||||
payload = { id: id, user_id: user.id, source: 'api' }
|
payload = { id: id, user_id: user.id, source: 'api' }
|
||||||
if Travis::Features.owner_active?(:enqueue_to_hub, user)
|
if Travis::Features.owner_active?(:enqueue_to_hub, user)
|
||||||
payload[:type] = :build
|
service = Travis::Enqueue::Services::CancelModel.new(user, { build_id: id })
|
||||||
service = Travis::Enqueue::Services::CancelModel.new(user, payload)
|
service.push("build:cancel", payload)
|
||||||
service.push
|
|
||||||
else
|
else
|
||||||
perform_async(:build_cancellation, payload)
|
perform_async(:build_cancellation, payload)
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,8 +14,8 @@ module Travis::API::V3
|
||||||
raise JobNotCancelable if %w(passed failed canceled errored).include? find.state
|
raise JobNotCancelable if %w(passed failed canceled errored).include? find.state
|
||||||
payload = { id: id, user_id: user.id, source: 'api' }
|
payload = { id: id, user_id: user.id, source: 'api' }
|
||||||
if Travis::Features.owner_active?(:enqueue_to_hub, user)
|
if Travis::Features.owner_active?(:enqueue_to_hub, user)
|
||||||
service = Travis::Enqueue::Services::CancelModel.new(user, payload)
|
service = Travis::Enqueue::Services::CancelModel.new(user, { job_id: id })
|
||||||
service.push
|
service.push("job:cancel", payload)
|
||||||
else
|
else
|
||||||
perform_async(:job_cancellation, payload)
|
perform_async(:job_cancellation, payload)
|
||||||
end
|
end
|
||||||
|
|
|
@ -256,8 +256,7 @@ describe Travis::API::V3::Services::Build::Cancel do
|
||||||
example { expect(sidekiq_payload).to be == {
|
example { expect(sidekiq_payload).to be == {
|
||||||
"id" => "#{build.id}",
|
"id" => "#{build.id}",
|
||||||
"user_id"=> repo.owner_id,
|
"user_id"=> repo.owner_id,
|
||||||
"source" => "api",
|
"source" => "api"}
|
||||||
"type" => "build"}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
example { expect(Sidekiq::Client.last['queue']).to be == 'hub' }
|
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 == {
|
example { expect(sidekiq_payload).to be == {
|
||||||
"id" => "#{build.id}",
|
"id" => "#{build.id}",
|
||||||
"user_id"=> repo.owner_id,
|
"user_id"=> repo.owner_id,
|
||||||
"source" => "api",
|
"source" => "api"}
|
||||||
"type" => "build"}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
example { expect(Sidekiq::Client.last['queue']).to be == 'hub' }
|
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 == {
|
example { expect(sidekiq_payload).to be == {
|
||||||
"id" => "#{build.id}",
|
"id" => "#{build.id}",
|
||||||
"user_id"=> repo.owner_id,
|
"user_id"=> repo.owner_id,
|
||||||
"source" => "api",
|
"source" => "api"}
|
||||||
"type" => "build"}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
example { expect(Sidekiq::Client.last['queue']).to be == 'hub' }
|
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 == {
|
example { expect(sidekiq_payload).to be == {
|
||||||
"id" => "#{build.id}",
|
"id" => "#{build.id}",
|
||||||
"user_id"=> repo.owner_id,
|
"user_id"=> repo.owner_id,
|
||||||
"source" => "api",
|
"source" => "api"}
|
||||||
"type" => "build"}
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user