#730: add deploy_error to operation codes
This commit is contained in:
parent
684a48f6dd
commit
a12c05e743
@ -8,6 +8,11 @@ module Devops
|
||||
class ServerExecutor
|
||||
include Hooks
|
||||
|
||||
RESULT_CODES = {
|
||||
server_bootstrap_fail: 2,
|
||||
server_not_in_chef_nodes: 5
|
||||
}
|
||||
|
||||
#params:
|
||||
# out - container for output data
|
||||
# deploy_info - hash with deploy data
|
||||
@ -35,23 +40,16 @@ module Devops
|
||||
@out.class.send(:define_method, :flush) { } unless @out.respond_to?(:flush)
|
||||
end
|
||||
|
||||
def result_codes
|
||||
self.class.result_codes
|
||||
def self.result_code(symbolic_code)
|
||||
RESULT_CODES.fetch(symbolic_code)
|
||||
end
|
||||
|
||||
def self.result_codes
|
||||
{
|
||||
server_bootstrap_fail: 2,
|
||||
server_not_in_chef_nodes: 5
|
||||
}
|
||||
def self.symbolic_result_code(integer_code)
|
||||
RESULT_CODES.key(integer_code) || :deploy_error
|
||||
end
|
||||
|
||||
def self.result_code(code)
|
||||
result_codes.fetch(code)
|
||||
end
|
||||
|
||||
def result_code(code)
|
||||
self.class.result_code(code)
|
||||
def result_code(symbolic_code)
|
||||
self.class.result_code(symbolic_code)
|
||||
end
|
||||
|
||||
def report= r
|
||||
|
||||
@ -30,15 +30,15 @@ class StackBootstrapWorker < Worker
|
||||
servers = persist_stack_servers!(stack, provider)
|
||||
bootstrap_servers!(servers, report) unless without_bootstrap
|
||||
rescue BootstrapingStackServerError
|
||||
@out.puts "An error occured during bootstraping stack servers. Initiating stack rollback.\n\n"
|
||||
@out.puts "\nAn error occured during bootstraping stack servers. Initiating stack rollback."
|
||||
rollback_stack!(stack)
|
||||
1
|
||||
rescue DeployingStackServerError => e
|
||||
@out.puts "Stack was launched, but an error occured during deploying stack servers."
|
||||
@out.puts "You can redeploy stack after fixing the error.\n\n"
|
||||
@out.puts "\nStack was launched, but an error occured during deploying stack servers."
|
||||
@out.puts "You can redeploy stack after fixing the error."
|
||||
1
|
||||
rescue StandardError => e
|
||||
@out.puts "An error occured. Initiating stack rollback.\n\n"
|
||||
@out.puts "\nAn error occured. Initiating stack rollback."
|
||||
rollback_stack!(stack)
|
||||
raise e
|
||||
end
|
||||
@ -52,7 +52,7 @@ class StackBootstrapWorker < Worker
|
||||
stack.delete_stack_in_cloud!
|
||||
Devops::Db.connector.stack_servers_delete(stack.name)
|
||||
Devops::Db.connector.stack_delete(stack.id)
|
||||
@out.puts "\nRollback has been completed"
|
||||
@out.puts "Rollback has been completed"
|
||||
end
|
||||
|
||||
def create_stack(provider_name, stack_attrs)
|
||||
@ -91,17 +91,16 @@ class StackBootstrapWorker < Worker
|
||||
return 0
|
||||
end
|
||||
|
||||
@out.puts
|
||||
results.each do |chef_node_name, code|
|
||||
human_readable_code = Devops::Executor::ServerExecutor.result_codes.key(code)
|
||||
human_readable_code = Devops::Executor::ServerExecutor.symbolic_result_code(code)
|
||||
@out.puts "Operation result for #{chef_node_name}: #{human_readable_code}"
|
||||
end
|
||||
|
||||
if errors_in_bootstrapping_present?(results)
|
||||
# An error occured during servers bootsraping, so rollback stack
|
||||
raise BootstrapingStackServerError
|
||||
raise BootstrapingStackServerError # will cause rollback of a stack
|
||||
else
|
||||
# An error occured during servers deploying, rollback isn't needed
|
||||
raise DeployingStackServerError
|
||||
raise DeployingStackServerError #will not cause rollback of a stack
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user