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
fetcher.stale_servers.each do |server|
server_executor = Devops::Executor::ServerExecutor.new(server, out)
server_executor.delete_server
proper_remove_server(server)
end
end
def delete_stack
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)
end
@ -77,6 +78,15 @@ module Devops
Devops::Db.connector
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
@stack = mongo.stack(@stack.name)
end

View File

@ -123,9 +123,14 @@ class Devops::Executor::StackExecutor
describe '#delete_stack', stubbed_connector: true 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(stubbed_connector).to receive(:stack_servers_delete).ordered
expect(stubbed_connector).to receive(:stack_servers).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
end
end