From aec662ca83a8e70549c1b55e4d04a211aea7d184 Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Thu, 17 Mar 2016 18:08:35 +0200 Subject: [PATCH] CID-470: do not call knife if node name is empty on deleting --- devops-service/lib/executors/server_executor.rb | 1 + .../spec/executors/server_executor_spec.rb | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 57eb18b..877641b 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -436,6 +436,7 @@ module Devops end def delete_from_chef_server node_name + return if node_name.blank? { :chef_node => knife_instance.chef_node_delete(node_name), :chef_client => knife_instance.chef_client_delete(node_name) diff --git a/devops-service/spec/executors/server_executor_spec.rb b/devops-service/spec/executors/server_executor_spec.rb index ae5c99d..41c8673 100644 --- a/devops-service/spec/executors/server_executor_spec.rb +++ b/devops-service/spec/executors/server_executor_spec.rb @@ -647,20 +647,27 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec describe '#delete_from_chef_server', stubbed_knife: true do - let(:delete_from_chef_server) { executor.delete_from_chef_server('foo') } before do allow(stubbed_knife).to receive(:chef_client_delete) allow(stubbed_knife).to receive(:chef_node_delete) - delete_from_chef_server end 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 it 'calls to :chef_node_delete and :chef_client_delete' do - expect(stubbed_knife).to have_received(:chef_client_delete) - expect(stubbed_knife).to have_received(:chef_node_delete) + expect(stubbed_knife).to receive(:chef_client_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