CID-470: do not call knife if node name is empty on deleting

This commit is contained in:
Anton Chuchkalov 2016-03-17 18:08:35 +02:00
parent bafc56b05f
commit aec662ca83
2 changed files with 13 additions and 5 deletions

View File

@ -436,6 +436,7 @@ module Devops
end end
def delete_from_chef_server node_name def delete_from_chef_server node_name
return if node_name.blank?
{ {
:chef_node => knife_instance.chef_node_delete(node_name), :chef_node => knife_instance.chef_node_delete(node_name),
:chef_client => knife_instance.chef_client_delete(node_name) :chef_client => knife_instance.chef_client_delete(node_name)

View File

@ -647,20 +647,27 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec
describe '#delete_from_chef_server', stubbed_knife: true do describe '#delete_from_chef_server', stubbed_knife: true do
let(:delete_from_chef_server) { executor.delete_from_chef_server('foo') }
before do before do
allow(stubbed_knife).to receive(:chef_client_delete) allow(stubbed_knife).to receive(:chef_client_delete)
allow(stubbed_knife).to receive(:chef_node_delete) allow(stubbed_knife).to receive(:chef_node_delete)
delete_from_chef_server
end end
it 'returns hash with :chef_node and :chef_client keys' do it 'returns hash with :chef_node and :chef_client keys' do
expect(delete_from_chef_server).to be_a(Hash).and include(:chef_node, :chef_client) expect(
executor.delete_from_chef_server('foo')
).to be_a(Hash).and include(:chef_node, :chef_client)
end end
it 'calls to :chef_node_delete and :chef_client_delete' do it 'calls to :chef_node_delete and :chef_client_delete' do
expect(stubbed_knife).to have_received(:chef_client_delete) expect(stubbed_knife).to receive(:chef_client_delete)
expect(stubbed_knife).to have_received(:chef_node_delete) expect(stubbed_knife).to receive(:chef_node_delete)
executor.delete_from_chef_server('foo')
end
it "doesn't call knife if chef node name is empty" do
expect(stubbed_knife).not_to receive(:chef_client_delete)
expect(stubbed_knife).not_to receive(:chef_node_delete)
executor.delete_from_chef_server('')
end end
end end