rename return_codes to error_codes

This commit is contained in:
Anton Chuchkalov 2016-01-19 14:29:34 +03:00
parent f46feedcbe
commit a88fa8e2f6
3 changed files with 30 additions and 20 deletions

View File

@ -8,7 +8,7 @@ module Devops
class ServerExecutor class ServerExecutor
include Hooks include Hooks
RESULT_CODES = { ERROR_CODES = {
server_bootstrap_fail: 2, server_bootstrap_fail: 2,
server_cannot_update_tags: 3, server_cannot_update_tags: 3,
server_bootstrap_private_ip_unset: 4, server_bootstrap_private_ip_unset: 4,
@ -53,16 +53,16 @@ module Devops
@current_user = options[:current_user] @current_user = options[:current_user]
end end
def self.result_code(symbolic_code) def self.error_code(symbolic_code)
RESULT_CODES.fetch(symbolic_code) ERROR_CODES.fetch(symbolic_code)
end end
def self.symbolic_result_code(integer_code) def self.symbolic_error_code(integer_code)
RESULT_CODES.key(integer_code) || :unknown_error ERROR_CODES.key(integer_code) || :unknown_error
end end
def result_code(symbolic_code) def error_code(symbolic_code)
self.class.result_code(symbolic_code) self.class.error_code(symbolic_code)
end end
def report= r def report= r
@ -106,7 +106,7 @@ module Devops
@out << "Done\n" @out << "Done\n"
unless provider.create_server(@server, @deploy_env.image, @deploy_env.flavor, @deploy_env.subnets, @deploy_env.groups, @out) unless provider.create_server(@server, @deploy_env.image, @deploy_env.flavor, @deploy_env.subnets, @deploy_env.groups, @out)
return result_code(:creating_server_in_cloud_failed) return error_code(:creating_server_in_cloud_failed)
end end
mongo.server_insert @server mongo.server_insert @server
@ -133,7 +133,7 @@ module Devops
DevopsLogger.logger.error e.message DevopsLogger.logger.error e.message
roll_back roll_back
mongo.server_delete @server.id mongo.server_delete @server.id
result_code(:creating_server_unknown_error) error_code(:creating_server_unknown_error)
end end
end end
@ -153,7 +153,7 @@ module Devops
@out << "Done\n" @out << "Done\n"
if @server.private_ip.nil? if @server.private_ip.nil?
@out << "Error: Private IP is null" @out << "Error: Private IP is null"
return result_code(:server_bootstrap_private_ip_unset) return error_code(:server_bootstrap_private_ip_unset)
end end
ja = { ja = {
:provider => @server.provider, :provider => @server.provider,
@ -184,7 +184,7 @@ module Devops
@out.puts res @out.puts res
@out.flush @out.flush
DevopsLogger.logger.error "Can not connect with command '#{cmd}':\n#{res}" DevopsLogger.logger.error "Can not connect with command '#{cmd}':\n#{res}"
return result_code(:server_bootstrap_fail) return error_code(:server_bootstrap_fail)
end end
raise ArgumentError.new("Can not connect with command '#{cmd}' ") unless connected_successfully? raise ArgumentError.new("Can not connect with command '#{cmd}' ") unless connected_successfully?
rescue ArgumentError => e rescue ArgumentError => e
@ -213,7 +213,7 @@ module Devops
else else
@out << "Can not bootstrap node '#{@server.id}', error code: #{r}" @out << "Can not bootstrap node '#{@server.id}', error code: #{r}"
@out.flush @out.flush
result_code(:server_bootstrap_fail) error_code(:server_bootstrap_fail)
end end
end end
@ -262,7 +262,7 @@ module Devops
roll_back roll_back
@out.flush @out.flush
mongo.server_delete @server.id mongo.server_delete @server.id
return result_code(:server_not_in_chef_nodes) return error_code(:server_not_in_chef_nodes)
end end
else else
# @out << roll_back # @out << roll_back
@ -272,12 +272,12 @@ module Devops
DevopsLogger.logger.error msg DevopsLogger.logger.error msg
@out.puts msg @out.puts msg
@out.flush @out.flush
return result_code(:server_bootstrap_fail) return error_code(:server_bootstrap_fail)
end end
rescue => e rescue => e
@out << "\nError: #{e.message}\n" @out << "\nError: #{e.message}\n"
@out.flush @out.flush
return result_code(:server_bootstrap_unknown_error) return error_code(:server_bootstrap_unknown_error)
end end
# deploy phase. Assume that all servers are bootstraped successfully here. # deploy phase. Assume that all servers are bootstraped successfully here.
@ -295,12 +295,12 @@ module Devops
msg << "\nDeploing server operation status was #{deploy_status}" msg << "\nDeploing server operation status was #{deploy_status}"
DevopsLogger.logger.error msg DevopsLogger.logger.error msg
@out << "\n" + msg + "\n" @out << "\n" + msg + "\n"
result_code(:deploy_failed) error_code(:deploy_failed)
end end
rescue => e rescue => e
@out << "\nError: #{e.message}\n" @out << "\nError: #{e.message}\n"
DevopsLogger.logger.error(e.message + "\n" + e.backtrace.join("\n")) DevopsLogger.logger.error(e.message + "\n" + e.backtrace.join("\n"))
result_code(:deploy_unknown_error) error_code(:deploy_unknown_error)
end end
end end
@ -347,7 +347,7 @@ module Devops
m = "Error: Cannot add tags '#{new_tags_str}' to server '#{@server.chef_node_name}'" m = "Error: Cannot add tags '#{new_tags_str}' to server '#{@server.chef_node_name}'"
DevopsLogger.logger.error(m) DevopsLogger.logger.error(m)
@out.puts m @out.puts m
return result_code(:server_cannot_update_tags) return error_code(:server_cannot_update_tags)
end end
DevopsLogger.logger.info("Set tags for '#{@server.chef_node_name}': #{new_tags_str}") DevopsLogger.logger.info("Set tags for '#{@server.chef_node_name}': #{new_tags_str}")

View File

@ -37,6 +37,16 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec
end end
end end
describe '.symbolic_error_code' do
it 'returns symbol given an integer' do
expect(described_class.symbolic_error_code(2)).to eq :server_bootstrap_fail
end
it "returns :unknown_error if can't recognize error code" do
expect(described_class.symbolic_error_code(123)).to eq :unknown_error
end
end
describe '#create_server_object' do describe '#create_server_object' do
it 'builds Server object' do it 'builds Server object' do
server = executor.create_server_object('created_by' => 'me') server = executor.create_server_object('created_by' => 'me')

View File

@ -130,7 +130,7 @@ class StackBootstrapWorker < Worker
@out.puts @out.puts
results.each do |chef_node_name, code| results.each do |chef_node_name, code|
human_readable_code = Devops::Executor::ServerExecutor.symbolic_result_code(code) human_readable_code = Devops::Executor::ServerExecutor.symbolic_error_code(code)
@out.puts "Operation result for #{chef_node_name}: #{human_readable_code}" @out.puts "Operation result for #{chef_node_name}: #{human_readable_code}"
end end
@ -144,7 +144,7 @@ class StackBootstrapWorker < Worker
def errors_in_bootstrapping_present?(result_codes) def errors_in_bootstrapping_present?(result_codes)
bootstrap_error_codes = [] bootstrap_error_codes = []
[:server_bootstrap_fail, :server_not_in_chef_nodes, :server_bootstrap_unknown_error].each do |symbolic_code| [:server_bootstrap_fail, :server_not_in_chef_nodes, :server_bootstrap_unknown_error].each do |symbolic_code|
bootstrap_error_codes << Devops::Executor::ServerExecutor.result_code(symbolic_code) bootstrap_error_codes << Devops::Executor::ServerExecutor.error_code(symbolic_code)
end end
(bootstrap_error_codes & result_codes).size > 0 (bootstrap_error_codes & result_codes).size > 0