Fix merge conflicts

This commit is contained in:
Ana Rosas 2016-06-08 17:51:48 +02:00
commit 1c99216e23
17 changed files with 130 additions and 86 deletions

1
.gitignore vendored
View File

@ -12,3 +12,4 @@ vendor
.yardoc
.coverage
*.env
.ruby-gemset

View File

@ -1,8 +1,6 @@
source 'https://rubygems.org'
gemspec
ruby '2.1.7' if ENV.key?('DYNO')
gem 's3', github: 'travis-ci/s3'
gem 'travis-core', github: 'travis-ci/travis-core'

View File

@ -102,7 +102,7 @@ module Travis::Api
use(Rack::Config) { |env| env['metriks.request.start'] ||= Time.now.utc }
use Travis::Api::App::Cors # if Travis.env == 'development' ???
use Raven::Rack if Travis.env == 'production' || Travis.env == 'staging'
use Raven::Rack if Travis::Api::App.use_monitoring?
use Rack::SSL if Endpoint.production?
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
@ -192,7 +192,7 @@ module Travis::Api
end
end
if use_monitoring? and not console?
if use_monitoring? && !console?
setup_monitoring
end
end

View File

@ -59,27 +59,24 @@ class Travis::Api::App
post '/:id/restart' do
Metriks.meter("api.request.restart_build").mark
if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
service = Travis::Enqueue::Services::RestartModel.new(current_user, { build_id: params[:id] })
if !service.accept?
status 400
result = false
else
payload = {id: params[:id], user_id: current_user.id}
service.push("build:restart", payload)
status 202
result = true
end
service = if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
Travis::Enqueue::Services::RestartModel.new(current_user, build_id: params[:id])
else
service = self.service(:reset_model, build_id: params[:id])
if !service.accept?
status 400
result = false
else
Travis::Sidekiq::BuildRestart.perform_async(id: params[:id], user_id: current_user.id)
status 202
result = true
end
self.service(:reset_model, build_id: params[:id])
end
result = if !service.accept?
status 400
false
elsif service.respond_to?(:push)
payload = { id: params[:id], user_id: current_user.id }
service.push("build:restart", payload)
status 202
true
else
Travis::Sidekiq::BuildRestart.perform_async(id: params[:id], user_id: current_user.id)
status 202
true
end
respond_with(result: result, flash: service.messages)

View File

@ -66,28 +66,27 @@ class Travis::Api::App
post '/:id/restart' do
Metriks.meter("api.request.restart_job").mark
if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
service = Travis::Enqueue::Services::RestartModel.new(current_user, { job_id: params[:id] })
if !service.accept?
status 400
result = false
else
payload = {id: params[:id], user_id: current_user.id}
service.push("job:restart", payload)
status 202
result = true
end
service = if Travis::Features.owner_active?(:enqueue_to_hub, current_user)
Travis::Enqueue::Services::RestartModel.new(current_user, { job_id: params[:id] })
else
service = self.service(:reset_model, job_id: params[:id])
if !service.accept?
status 400
result = false
else
Travis::Sidekiq::JobRestart.perform_async(id: params[:id], user_id: current_user.id)
status 202
result = true
end
self.service(:reset_model, job_id: params[:id])
end
result = if !service.accept?
status 400
false
elsif service.respond_to?(:push)
payload = {id: params[:id], user_id: current_user.id}
service.push("job:restart", payload)
status 202
true
else
Travis::Sidekiq::JobRestart.perform_async(id: params[:id], user_id: current_user.id)
status 202
result = true
end
respond_with(result: result, flash: service.messages)
end

View File

@ -9,7 +9,7 @@ class Travis::Api::App
Thread.new do
loop do
begin
Raven.send queue.pop
Raven.send_event queue.pop
rescue Exception => e
puts e.message, e.backtrace
end

View File

@ -12,11 +12,13 @@ module Travis
end
def push(event, payload)
::Sidekiq::Client.push(
'queue' => 'hub',
'class' => 'Travis::Hub::Sidekiq::Worker',
'args' => [event, payload]
)
if current_user && target && accept?
::Sidekiq::Client.push(
'queue' => 'hub',
'class' => 'Travis::Hub::Sidekiq::Worker',
'args' => [event, payload]
)
end
end
def accept?

View File

@ -1,10 +1,9 @@
module Travis::API::V3
class Queries::Repositories < Query
params :active, :private, :starred, prefix: :repository
sortable_by :id, :github_id, :owner_name, :name, active: sort_condition(:active), :'default_branch.last_build' => 'builds.started_at'
sortable_by :id, :github_id, :owner_name, :name, active: sort_condition(:active),
:'default_branch.last_build' => 'builds.started_at',
:current_build => "current_build_id %{order} NULLS LAST"
:current_build_id => "repositories.current_build_id %{order} NULLS LAST"
def for_member(user, **options)
all(user: user, **options).joins(:users).where(users: user_condition(user), invalidated_at: nil)

View File

@ -3,7 +3,7 @@ require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3
class Renderer::Cron < Renderer::ModelRenderer
representation(:minimal, :id)
representation(:standard, :id, :repository, :branch, :interval, :disable_by_build, :next_enqueuing)
representation(:standard, :id, :repository, :branch, :interval, :disable_by_build, :next_enqueuing, :created_at)
def repository
model.branch.repository

View File

@ -16,7 +16,7 @@ end
V3 = Travis::API::V3
Travis::Api::App.setup
Travis::Api::App.new
console = Travis::Console.new
methods = Travis::Console.instance_methods - Object.instance_methods

View File

@ -26,7 +26,7 @@ describe 'Exception' do
it 'enques error into a thread' do
error = TestError.new('Konstantin broke all the thingz!')
Travis::Api::App::Endpoint::Repos.any_instance.stubs(:service).raises(error)
Raven.expects(:send).with do |event|
Raven.expects(:send_event).with do |event|
event.message == "#{error.class}: #{error.message}"
end
expect { get "/repos" }.to raise_error(TestError)

View File

@ -64,7 +64,8 @@ describe Travis::API::V3::Services::Cron::Create do
"name" => "#{branch.name}" },
"interval" => "monthly",
"disable_by_build" => false,
"next_enqueuing" => current_cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ')
"next_enqueuing" => current_cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ'),
"created_at" => current_cron.created_at.strftime('%Y-%m-%dT%H:%M:%SZ')
}}
end

View File

@ -52,7 +52,8 @@ describe Travis::API::V3::Services::Cron::Delete do
"name" => branch.name },
"interval" => "daily",
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ')
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ'),
"created_at" => cron.created_at.strftime('%Y-%m-%dT%H:%M:%SZ')
}}
end

View File

@ -46,8 +46,9 @@ describe Travis::API::V3::Services::Cron::Find do
"@representation" => "minimal",
"name" => branch.name },
"interval" => "daily",
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ')
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ'),
"created_at" => cron.created_at.strftime('%Y-%m-%dT%H:%M:%SZ')
}}
end
@ -105,8 +106,9 @@ describe Travis::API::V3::Services::Cron::Find do
"@representation" => "minimal",
"name" => branch.name },
"interval" => "daily",
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ')
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ'),
"created_at" => cron.created_at.strftime('%Y-%m-%dT%H:%M:%SZ')
}}
end

View File

@ -47,8 +47,9 @@ describe Travis::API::V3::Services::Cron::ForBranch do
"@representation" => "minimal",
"name" => branch.name },
"interval" => "daily",
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ')
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ'),
"created_at" => cron.created_at.strftime('%Y-%m-%dT%H:%M:%SZ')
}}
end

View File

@ -68,7 +68,8 @@ describe Travis::API::V3::Services::Crons::ForRepository do
"name" => "#{branch.name}" },
"interval" => "daily",
"disable_by_build" => true,
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ')
"next_enqueuing" => cron.next_enqueuing.strftime('%Y-%m-%dT%H:%M:%SZ'),
"created_at" => cron.created_at.strftime('%Y-%m-%dT%H:%M:%SZ')
}
]
}}

View File

@ -17,62 +17,82 @@ Gem::Specification.new do |s|
"Mathias Meyer",
"Josh Kalderimis",
"Henrik Hodne",
"Steffen Kötte",
"Ana Rosas",
"Tyranja",
"Lennard Wolf",
"Steffen",
"Jonas Chromik",
"Dan Buch",
"Andre Arko",
"C. Scott Ananian",
"Erik Michaels-Ober",
"Brian Ford",
"C. Scott Ananian",
"Christopher Weyand",
"Lisa P",
"Brian Ford",
"Renée Hendricksen",
"Steve Richert",
"Bryan Goldstein",
"Dan Rice",
"James Dennes",
"María de Antón",
"Nick Schonning",
"Patrick Williams",
"Lucas CHERIFI",
"Puneeth Chaganti",
"Bryan Goldstein",
"James Dennes",
"Igor Wiedler",
"rainsun",
"Igor",
"Thais Camilo and Konstantin Haase",
"Tim Carey-Smith",
"Dan Rice",
"Zachary Scott",
"rainsun"
"María de Antón",
"Patrick Williams"
]
s.email = [
"konstantin.mailinglists@googlemail.com",
"drogus@gmail.com",
"me@svenfuchs.com",
"carla@travis-ci.com",
"me@svenfuchs.com",
"asari.ruby@gmail.com",
"meyer@paperplanes.de",
"josh.kalderimis@gmail.com",
"me@henrikhodne.com",
"steffen.koette@gmail.com",
"carlad@users.noreply.github.com",
"me@henrikhodne.com",
"henrik@hodne.io",
"carla@travis-ci.org",
"konstantin.haase@gmail.com",
"a.rosas10@gmail.com",
"tyranja@cassiopeia.uberspace.de",
"andre@arko.net",
"konstantin.haase@gmail.com",
"lennardwolf@live.de",
"steffen.koette@gmail.com",
"Jonas.Chromik@student.hpi.uni-potsdam.de",
"dan@travis-ci.org",
"svenfuchs@artweb-design.de",
"cscott@cscott.net",
"andre@arko.net",
"christopher.weyand@student.hpi.de",
"sferik@gmail.com",
"cscott@cscott.net",
"steve.richert@gmail.com",
"bford@engineyard.com",
"henrik@travis-ci.com",
"mail@lislis.de",
"steve.richert@gmail.com",
"brysgo@gmail.com",
"dan@meatballhat.com",
"dan@zoombody.com",
"jdennes@gmail.com",
"MariadeAnton@users.noreply.github.com",
"nschonni@gmail.com",
"renee@travis-ci.org",
"patrick@bittorrent.com",
"punchagan@muse-amuse.in",
"rainsuner@gmail.com",
"nschonni@gmail.com",
"MariadeAnton@users.noreply.github.com",
"lucas@cherifi.info",
"jdennes@gmail.com",
"igor@travis-ci.org",
"dev+narwen+rkh@rkh.im",
"tim@spork.in",
"igorwwwwwwwwwwwwwwwwwwww@users.noreply.github.com",
"e@zzak.io",
"rainsuner@gmail.com"
"dan@zoombody.com",
"dan@meatballhat.com",
"brysgo@gmail.com",
"punchagan@muse-amuse.in"
]
s.files = [
@ -152,6 +172,7 @@ Gem::Specification.new do |s|
"lib/travis/api/app/services/schedule_request.rb",
"lib/travis/api/app/stack_instrumentation.rb",
"lib/travis/api/attack.rb",
"lib/travis/api/enqueue/services/enqueue_build.rb",
"lib/travis/api/instruments.rb",
"lib/travis/api/serializer.rb",
"lib/travis/api/v2.rb",
@ -203,6 +224,7 @@ Gem::Specification.new do |s|
"lib/travis/api/v3/models/broadcast.rb",
"lib/travis/api/v3/models/build.rb",
"lib/travis/api/v3/models/commit.rb",
"lib/travis/api/v3/models/cron.rb",
"lib/travis/api/v3/models/email.rb",
"lib/travis/api/v3/models/job.rb",
"lib/travis/api/v3/models/log.rb",
@ -223,6 +245,7 @@ Gem::Specification.new do |s|
"lib/travis/api/v3/permissions.rb",
"lib/travis/api/v3/permissions/account.rb",
"lib/travis/api/v3/permissions/build.rb",
"lib/travis/api/v3/permissions/cron.rb",
"lib/travis/api/v3/permissions/generic.rb",
"lib/travis/api/v3/permissions/job.rb",
"lib/travis/api/v3/permissions/organization.rb",
@ -235,6 +258,8 @@ Gem::Specification.new do |s|
"lib/travis/api/v3/queries/broadcasts.rb",
"lib/travis/api/v3/queries/build.rb",
"lib/travis/api/v3/queries/builds.rb",
"lib/travis/api/v3/queries/cron.rb",
"lib/travis/api/v3/queries/crons.rb",
"lib/travis/api/v3/queries/job.rb",
"lib/travis/api/v3/queries/jobs.rb",
"lib/travis/api/v3/queries/organization.rb",
@ -259,6 +284,8 @@ Gem::Specification.new do |s|
"lib/travis/api/v3/renderer/builds.rb",
"lib/travis/api/v3/renderer/collection_renderer.rb",
"lib/travis/api/v3/renderer/commit.rb",
"lib/travis/api/v3/renderer/cron.rb",
"lib/travis/api/v3/renderer/crons.rb",
"lib/travis/api/v3/renderer/error.rb",
"lib/travis/api/v3/renderer/job.rb",
"lib/travis/api/v3/renderer/jobs.rb",
@ -288,6 +315,12 @@ Gem::Specification.new do |s|
"lib/travis/api/v3/services/build/find.rb",
"lib/travis/api/v3/services/build/restart.rb",
"lib/travis/api/v3/services/builds/find.rb",
"lib/travis/api/v3/services/cron/create.rb",
"lib/travis/api/v3/services/cron/delete.rb",
"lib/travis/api/v3/services/cron/find.rb",
"lib/travis/api/v3/services/cron/for_branch.rb",
"lib/travis/api/v3/services/crons/for_repository.rb",
"lib/travis/api/v3/services/crons/start.rb",
"lib/travis/api/v3/services/job/cancel.rb",
"lib/travis/api/v3/services/job/debug.rb",
"lib/travis/api/v3/services/job/find.rb",
@ -332,6 +365,7 @@ Gem::Specification.new do |s|
"script/console",
"script/repos_stats.rb",
"script/server",
"script/start_crons",
"script/web_concurrency",
"spec/active_record_postgres_variables_spec.rb",
"spec/integration/error_handling_spec.rb",
@ -415,6 +449,8 @@ Gem::Specification.new do |s|
"spec/v3/error_handling_spec.rb",
"spec/v3/extensions/belongs_to_spec.rb",
"spec/v3/metrics_spec.rb",
"spec/v3/models/cron_spec.rb",
"spec/v3/queries/cron_spec.rb",
"spec/v3/renderer/avatar_url_spec.rb",
"spec/v3/result_spec.rb",
"spec/v3/service_index_spec.rb",
@ -426,6 +462,11 @@ Gem::Specification.new do |s|
"spec/v3/services/build/find_spec.rb",
"spec/v3/services/build/restart_spec.rb",
"spec/v3/services/builds/find_spec.rb",
"spec/v3/services/cron/create_spec.rb",
"spec/v3/services/cron/delete_spec.rb",
"spec/v3/services/cron/find_spec.rb",
"spec/v3/services/cron/for_branch_spec.rb",
"spec/v3/services/crons/for_repository_spec.rb",
"spec/v3/services/job/cancel_spec.rb",
"spec/v3/services/job/debug_sepc.rb",
"spec/v3/services/job/find_spec.rb",
@ -443,6 +484,7 @@ Gem::Specification.new do |s|
"spec/v3/services/repository/star_spec.rb",
"spec/v3/services/repository/unstar_spec.rb",
"spec/v3/services/requests/create_spec.rb",
"spec/v3/services/requests/find_spec.rb",
"spec/v3/services/user/current_spec.rb",
"spec/v3/services/user/find_spec.rb",
"spec/v3/services/user/sync_spec.rb",