CID-449: fix expiration worker

This commit is contained in:
Anton Chuchkalov 2016-03-09 15:44:57 +03:00
parent f679fbb638
commit 02e92be1cd
5 changed files with 12 additions and 17 deletions

View File

@ -9,7 +9,7 @@ module Devops
def schedule_expiration!
return unless @expires
DeleteExpiredServerWorker.perform_in(interval_in_seconds, server_chef_node_name: @server.chef_node_name)
DeleteExpiredServerWorker.perform_in(interval_in_seconds, server_id: @server.id)
end
def interval_in_seconds

View File

@ -511,8 +511,8 @@ module Devops
def schedule_expiration
if @deploy_env.expires
puts_and_flush "Planning expiration in #{@deploy_env.expires}"
ExpirationScheduler.new(@deploy_env.expires, @server).schedule_expiration!
job_id = ExpirationScheduler.new(@deploy_env.expires, @server).schedule_expiration!
puts_and_flush "Planning expiration in #{@deploy_env.expires}, job_id: #{job_id}"
end
end

View File

@ -5,7 +5,7 @@ RSpec.describe Devops::Executor::ExpirationScheduler do
describe '#schedule_expiration!' do
it 'schedules server deleting at given time' do
expect(DeleteExpiredServerWorker).to receive(:perform_in).with(120, server_chef_node_name: 'chef_node_name')
expect(DeleteExpiredServerWorker).to receive(:perform_in).with(120, server_id: server.id)
described_class.new('2m', server).schedule_expiration!
end

View File

@ -140,7 +140,7 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec
it 'schedules expiration for server' do
deploy_env.expires = '2m'
allow(DeleteExpiredServerWorker).to receive(:perform_in)
expect(DeleteExpiredServerWorker).to receive(:perform_in).with(120, {server_chef_node_name: 'node_name'})
expect(DeleteExpiredServerWorker).to receive(:perform_in).with(120, hash_including(:server_id))
create_server
end

View File

@ -6,12 +6,11 @@ require "workers/worker"
class DeleteExpiredServerWorker < Worker
def perform(options)
chef_node_name = options.fetch('server_chef_node_name')
call() do |out, file|
out.puts "Expire server '#{chef_node_name}'."
server = mongo.server_by_chef_node_name(chef_node_name)
report = save_report(file, server)
call do
server_id = options.fetch('server_id')
puts_and_flush "Expire server '#{server_id}'."
server = mongo.server_by_instance_id(server_id)
report = save_report(server)
e = Devops::Executor::ServerExecutor.new(server, out)
e.report = report
@ -21,17 +20,13 @@ class DeleteExpiredServerWorker < Worker
private
def save_report(file, server)
report = Devops::Model::Report.new(
"file" => file,
"_id" => jid,
def save_report(server)
update_report(
"created_by" => 'SYSTEM',
"project" => server.project,
"deploy_env" => server.deploy_env,
"type" => Devops::Model::Report::EXPIRE_SERVER_TYPE
)
mongo.save_report(report)
report
end
end