From 5fcd74c17cd9e6c77ea6f4c3c5e9e8826b8d5aef Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Thu, 17 Mar 2016 18:32:44 +0200 Subject: [PATCH] CID-470: fix error and nice output --- devops-service/lib/executors/server_executor.rb | 12 ++++++++---- .../spec/executors/server_executor_spec.rb | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 877641b..c84a9dd 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -436,7 +436,7 @@ module Devops end def delete_from_chef_server node_name - return if node_name.blank? + return {chef_node: nil, chef_client: nil} if node_name.blank? { :chef_node => knife_instance.chef_node_delete(node_name), :chef_client => knife_instance.chef_client_delete(node_name) @@ -454,9 +454,13 @@ module Devops return 0 end - puts_and_flush "Deleting from chef server:" - delete_from_chef_server(@server.chef_node_name).each do |key, result| - @out.puts "#{key} - #{result}" + if @server.chef_node_name.present? + puts_and_flush "Deleting from chef server:" + delete_from_chef_server(@server.chef_node_name).each do |key, result| + @out.puts "#{key} - #{result}" + end + else + puts_and_flush "Chef node name is empty, skipping deleting from chef server." end puts_and_flush "Deleting from cloud:" diff --git a/devops-service/spec/executors/server_executor_spec.rb b/devops-service/spec/executors/server_executor_spec.rb index 41c8673..97f94ba 100644 --- a/devops-service/spec/executors/server_executor_spec.rb +++ b/devops-service/spec/executors/server_executor_spec.rb @@ -667,7 +667,9 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec 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('') + expect( + executor.delete_from_chef_server('') + ).to be_a(Hash).and include(:chef_node, :chef_client) end end