CID-472: delete nodes from chef-server on delete

This commit is contained in:
Anton Chuchkalov 2016-04-13 16:09:25 +03:00
parent 26e4d7ad06
commit 34df3f0ce0
2 changed files with 19 additions and 4 deletions

View File

@ -58,14 +58,15 @@ module Devops
def delete_stale_servers def delete_stale_servers
fetcher.stale_servers.each do |server| fetcher.stale_servers.each do |server|
server_executor = Devops::Executor::ServerExecutor.new(server, out) proper_remove_server(server)
server_executor.delete_server
end end
end end
def delete_stack def delete_stack
stack.delete_stack_in_cloud! stack.delete_stack_in_cloud!
mongo.stack_servers_delete(stack.name) mongo.stack_servers(@stack.name).each do |server|
proper_remove_server(server)
end
mongo.stack_delete(stack.id) mongo.stack_delete(stack.id)
end end
@ -77,6 +78,15 @@ module Devops
Devops::Db.connector Devops::Db.connector
end end
def proper_remove_server(server)
begin
e = Devops::Executor::ServerExecutor.new(server, out)
e.delete_server
rescue StandardError => e
puts_and_flush [e.message, e.backtrace].join("\n")
end
end
def reload_stack def reload_stack
@stack = mongo.stack(@stack.name) @stack = mongo.stack(@stack.name)
end end

View File

@ -123,9 +123,14 @@ class Devops::Executor::StackExecutor
describe '#delete_stack', stubbed_connector: true do describe '#delete_stack', stubbed_connector: true do
it 'deletes stack from cloud, then deletes stack servers, and then deletes stack itself' do it 'deletes stack from cloud, then deletes stack servers, and then deletes stack itself' do
allow(stubbed_connector).to receive(:stack_servers) { [build(:server, id: 'i-persisted')] }
expect(stack).to receive(:delete_stack_in_cloud!).ordered expect(stack).to receive(:delete_stack_in_cloud!).ordered
expect(stubbed_connector).to receive(:stack_servers_delete).ordered expect(stubbed_connector).to receive(:stack_servers).ordered
expect(stubbed_connector).to receive(:stack_delete).ordered expect(stubbed_connector).to receive(:stack_delete).ordered
executor = instance_double(Devops::Executor::ServerExecutor, delete_server: nil)
allow(Devops::Executor::ServerExecutor).to receive(:new) { executor }
expect(executor).to receive(:delete_server)
executor_with_stack.delete_stack executor_with_stack.delete_stack
end end
end end