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! def schedule_expiration!
return unless @expires 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 end
def interval_in_seconds def interval_in_seconds

View File

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

View File

@ -5,7 +5,7 @@ RSpec.describe Devops::Executor::ExpirationScheduler do
describe '#schedule_expiration!' do describe '#schedule_expiration!' do
it 'schedules server deleting at given time' 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! described_class.new('2m', server).schedule_expiration!
end end

View File

@ -140,7 +140,7 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec
it 'schedules expiration for server' do it 'schedules expiration for server' do
deploy_env.expires = '2m' deploy_env.expires = '2m'
allow(DeleteExpiredServerWorker).to receive(:perform_in) 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 create_server
end end

View File

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