module Devops module Executor class ServerOperationResult RESULT_CODES = { ok: 0, server_bootstrap_fail: 2, server_cannot_update_tags: 3, server_bootstrap_private_ip_unset: 4, server_not_in_chef_nodes: 5, server_bootstrap_unknown_error: 7, deploy_unknown_error: 6, deploy_failed: 8, creating_server_unknown_error: 9, creating_server_in_cloud_failed: 10 } attr_reader :code def initialize(error_code) @code = error_code end def ok? @code == 0 end def reason RESULT_CODES.key(@code) || :unknown_error end def occured_during_bootstrap?(code) [:server_bootstrap_fail, :server_not_in_chef_nodes, :server_bootstrap_unknown_error].include?(reason) end def self.code_of_reason(reason) RESULT_CODES.fetch(reason) end end end end