CID-449: fix expiration worker
This commit is contained in:
parent
f679fbb638
commit
02e92be1cd
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user