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