Change inspect to pretty_inspect in logs

pretty_inspect output makes it easier to read logs.

Closes-Bug: #1352854
Implements blueprint: astute-pretty-logging

Change-Id: Ibd931d1f31c0ef6a5747d081ac2bf0d2596ae8b2
This commit is contained in:
Maciej Kwiek 2015-09-07 14:21:11 +02:00
parent 8283dc2932
commit 828ad07854
24 changed files with 73 additions and 73 deletions

View File

@ -23,7 +23,7 @@ module Astute
attr_reader :remote
def initialize(o={})
Astute.logger.debug("Cobbler options: #{o.inspect}")
Astute.logger.debug("Cobbler options:\n#{o.pretty_inspect}")
if (match = /^http:\/\/([^:]+?):?(\d+)?(\/.+)/.match(o['url']))
host = match[1]
@ -53,7 +53,7 @@ module Astute
cobsh = Cobsh.new(data.merge({'what' => what, 'name' => name}))
cobblerized = cobsh.cobblerized
Astute.logger.debug("Creating/editing item from hash: #{cobsh.inspect}")
Astute.logger.debug("Creating/editing item from hash:\n#{cobsh.pretty_inspect}")
remove_item(what, name) if options[:item_preremove]
# get existent item id or create new one
item_id = get_item_id(what, name)
@ -214,7 +214,7 @@ module Astute
}
def initialize(h)
Astute.logger.debug("Cobsh is initialized with: #{h.inspect}")
Astute.logger.debug("Cobsh is initialized with:\n#{h.pretty_inspect}")
raise CobblerError, "Cobbler hash must have 'name' key" unless h.has_key? 'name'
raise CobblerError, "Cobbler hash must have 'what' key" unless h.has_key? 'what'
raise CobblerError, "Unsupported 'what' value" unless FIELDS.has_key? h['what']
@ -223,7 +223,7 @@ module Astute
def cobblerized
Astute.logger.debug("Cobblerizing hash: #{inspect}")
Astute.logger.debug("Cobblerizing hash:\n#{pretty_inspect}")
ch = {}
ks_meta = ''
kernel_options = ''

View File

@ -18,7 +18,7 @@ module Astute
raise "Settings for Cobbler must be set" if engine_attrs.blank?
begin
Astute.logger.info("Trying to instantiate cobbler engine: #{engine_attrs.inspect}")
Astute.logger.info("Trying to instantiate cobbler engine:\n#{engine_attrs.pretty_inspect}")
@engine = Astute::Provision::Cobbler.new(engine_attrs)
rescue => e
Astute.logger.error("Error occured during cobbler initializing")

View File

@ -56,7 +56,7 @@ class Astute::DeploymentEngine::GranularDeployment < Astute::DeploymentEngine
end
Astute.logger.info "#{@ctx.task_id}: Finished deployment of nodes" \
" => roles: #{@nodes_roles.inspect}"
" => roles: #{@nodes_roles.pretty_inspect}"
end
def puppet_task(node_id, task)

View File

@ -37,7 +37,7 @@ class Astute::DeploymentEngine::NailyFact < Astute::DeploymentEngine
puppet_debug=nodes.first.fetch('puppet_debug', true)
)
nodes_roles = nodes.map { |n| {n['uid'] => n['role']} }
Astute.logger.info "#{@ctx.task_id}: Finished deployment of nodes => roles: #{nodes_roles.inspect}"
Astute.logger.info "#{@ctx.task_id}: Finished deployment of nodes => roles:\n#{nodes_roles.pretty_inspect}"
end
def pre_deployment_actions(deployment_info, pre_deployment)

View File

@ -50,7 +50,7 @@ module Astute
report_error(ctx, msg)
rescue => e
msg = "Exception occured during dump task: message: #{e.message} \
trace: #{e.backtrace.inspect}"
trace:\n#{e.backtrace.pretty_inspect}"
Astute.logger.error("#{ctx.task_id}: #{msg}")
report_error(ctx, msg)
end

View File

@ -220,7 +220,7 @@ module Astute
node_pattern_spec['file_pos'] = fo.pos
end
unless progress
Astute.logger.warn("Wrong pattern #{node_pattern_spec.inspect} defined for calculating progress via logs.")
Astute.logger.warn("Wrong pattern\n#{node_pattern_spec.pretty_inspect}\ndefined for calculating progress via logs.")
return 0
end
progress

View File

@ -76,7 +76,7 @@ module Astute
end
number = pattern_spec['expected_line_number']
unless number
Astute.logger.warn("Wrong pattern #{pattern_spec.inspect} defined for calculating progress via log.")
Astute.logger.warn("Wrong pattern\n#{pattern_spec.pretty_inspect} defined for calculating progress via log.")
return 0
end
progress = counter.to_f / number
@ -103,7 +103,7 @@ module Astute
separator = pattern_spec['separator']
components_list = pattern_spec['components_list']
unless components_list
Astute.logger.warn("Wrong pattern #{pattern_spec.inspect} defined for calculating progress via logs.")
Astute.logger.warn("Wrong pattern\n#{pattern_spec.pretty_inspect} defined for calculating progress via logs.")
return 0
end

View File

@ -70,7 +70,7 @@ module Astute
date_format = pattern_spec['date_format']
date_regexp = pattern_spec['date_regexp']
unless date_regexp and date_format and log_patterns
Astute.logger.warn("Wrong pattern_spec #{pattern_spec.inspect} defined for calculating progress via logs.")
Astute.logger.warn("Wrong pattern_spec\n#{pattern_spec.pretty_inspect} defined for calculating progress via logs.")
return 0
end
@ -188,7 +188,7 @@ module Astute
separator = pattern_spec['separator']
log_patterns = pattern_spec['pattern_list']
unless log_patterns
Astute.logger.warn("Wrong pattern #{pattern_spec.inspect} defined for calculating progress via logs.")
Astute.logger.warn("Wrong pattern\n#{pattern_spec.pretty_inspect} defined for calculating progress via logs.")
return 0
end
@ -217,7 +217,7 @@ module Astute
progress = pattern['p_min'] + progress * (pattern['p_max'] - pattern['p_min'])
return progress
end
Astute.logger.warn("Wrong pattern #{pattern_spec.inspect} defined for calculating progress via log.")
Astute.logger.warn("Wrong pattern\n#{pattern_spec.pretty_inspect} defined for calculating progress via log.")
end
end
end

View File

@ -130,7 +130,7 @@ module Astute
initialize_mclient
end
if retries < 3
Astute.logger.error "Retrying MCollective call after exception: #{ex.pretty_inspect}"
Astute.logger.error "Retrying MCollective call after exception:\n#{ex.pretty_inspect}"
sleep rand
retries += 1
retry
@ -154,7 +154,7 @@ module Astute
end
rescue => ex
if retries < 3
Astute.logger.error "Retrying RPC client instantiation after exception: #{ex.pretty_inspect}"
Astute.logger.error "Retrying RPC client instantiation after exception:\n#{ex.pretty_inspect}"
sleep 5
retries += 1
retry
@ -169,7 +169,7 @@ module Astute
def log_result(result, method)
result.each do |node|
Astute.logger.debug "#{@task_id}: MC agent '#{node.agent}', method '#{method}', "\
"results: #{node.results.inspect}"
"results:\n#{node.results.pretty_inspect}"
end
end
end

View File

@ -65,7 +65,7 @@ module Astute
net_probe.discover(:nodes => uids)
stats = net_probe.get_probing_info
result = format_result(stats)
Astute.logger.debug "#{ctx.task_id}: Network checking is done. Results: #{result.inspect}"
Astute.logger.debug "#{ctx.task_id}: Network checking is done. Results:\n#{result.pretty_inspect}"
{'nodes' => result}
end
@ -96,15 +96,15 @@ module Astute
end
listen_resp = net_probe.multicast_listen(:nodes => data_to_send.to_json)
Astute.logger.debug("Mutlicast verification listen: #{listen_resp.inspect}")
Astute.logger.debug("Mutlicast verification listen:\n#{listen_resp.pretty_inspect}")
ctx.reporter.report({'progress' => 30})
send_resp = net_probe.multicast_send()
Astute.logger.debug("Mutlicast verification send: #{send_resp.inspect}")
Astute.logger.debug("Mutlicast verification send:\n#{send_resp.pretty_inspect}")
ctx.reporter.report({'progress' => 60})
results = net_probe.multicast_info()
Astute.logger.debug("Mutlicast verification info: #{results.inspect}")
Astute.logger.debug("Mutlicast verification info:\n#{results.pretty_inspect}")
response = {}
results.each do |node|
if node.results[:data][:out].present?
@ -155,7 +155,7 @@ module Astute
uids = nodes.map { |node| node['uid'].to_s }
Astute.logger.debug(
"#{ctx.task_id}: Network checker listen: nodes: #{uids} data: #{data_to_send.inspect}")
"#{ctx.task_id}: Network checker listen: nodes: #{uids} data:\n#{data_to_send.pretty_inspect}")
net_probe.discover(:nodes => uids)
net_probe.start_frame_listeners(:interfaces => data_to_send.to_json)
@ -171,7 +171,7 @@ module Astute
uids = nodes_part.map { |node| node['uid'].to_s }
Astute.logger.debug(
"#{ctx.task_id}: Network checker send: nodes: #{uids} data: #{data_to_send.inspect}")
"#{ctx.task_id}: Network checker send: nodes: #{uids} data:\n#{data_to_send.pretty_inspect}")
net_probe.discover(:nodes => uids)
net_probe.send_probing_frames(:interfaces => data_to_send.to_json)
@ -183,7 +183,7 @@ module Astute
data_to_send = make_interfaces_to_send(node['networks'])
Astute.logger.debug(
"#{ctx.task_id}: Network checker listen: node: #{node['uid']} data: #{data_to_send.inspect}")
"#{ctx.task_id}: Network checker listen: node: #{node['uid']} data:\n#{data_to_send.pretty_inspect}")
net_probe.discover(:nodes => [node['uid'].to_s])
net_probe.start_frame_listeners(:interfaces => data_to_send.to_json)
@ -195,7 +195,7 @@ module Astute
data_to_send = make_interfaces_to_send(node['networks'])
Astute.logger.debug(
"#{ctx.task_id}: Network checker send: node: #{node['uid']} data: #{data_to_send.inspect}")
"#{ctx.task_id}: Network checker send: node: #{node['uid']} data:\n#{data_to_send.pretty_inspect}")
net_probe.discover(:nodes => [node['uid'].to_s])
net_probe.send_probing_frames(:interfaces => data_to_send.to_json)
@ -219,10 +219,10 @@ module Astute
node_result = {:uid => response.results[:sender],
:status=>'ready'}
if response.results[:data][:out].present?
Astute.logger.debug("DHCP checker received: #{response.inspect}")
Astute.logger.debug("DHCP checker received:\n#{response.pretty_inspect}")
node_result[:data] = JSON.parse(response.results[:data][:out])
elsif response.results[:data][:error].present?
Astute.logger.debug("DHCP checker errred with: #{response.inspect}")
Astute.logger.debug("DHCP checker errred with:\n#{response.pretty_inspect}")
node_result[:status] = 'error'
node_result[:error_msg] = 'Error in dhcp checker. Check logs for details'
end

View File

@ -39,18 +39,18 @@ module Astute
serialized_inaccessible_nodes = serialize_nodes(inaccessible_nodes)
answer.merge!({'inaccessible_nodes' => serialized_inaccessible_nodes})
Astute.logger.warn "#{@ctx.task_id}: Removing of nodes #{@nodes.uids.inspect} finished " \
"with errors. Nodes #{serialized_inaccessible_nodes.inspect} are inaccessible"
Astute.logger.warn "#{@ctx.task_id}: Removing of nodes\n#{@nodes.uids.pretty_inspect} finished " \
"with errors. Nodes\n#{serialized_inaccessible_nodes.pretty_inspect} are inaccessible"
end
if error_nodes.present?
serialized_error_nodes = serialize_nodes(error_nodes)
answer.merge!({'status' => 'error', 'error_nodes' => serialized_error_nodes})
Astute.logger.error "#{@ctx.task_id}: Removing of nodes #{@nodes.uids.inspect} finished " \
"with errors: #{serialized_error_nodes.inspect}"
Astute.logger.error "#{@ctx.task_id}: Removing of nodes\n#{@nodes.uids.pretty_inspect} finished " \
"with errors:\n#{serialized_error_nodes.pretty_inspect}"
end
Astute.logger.info "#{@ctx.task_id}: Finished removing of nodes: #{@nodes.uids.inspect}"
Astute.logger.info "#{@ctx.task_id}: Finished removing of nodes:\n#{@nodes.uids.pretty_inspect}"
answer
end
@ -94,7 +94,7 @@ module Astute
responses.each do |response|
node = Node.new('uid' => response[:sender])
if response[:statuscode] != 0
node['error'] = "RPC agent 'erase_node' failed. Result: #{response.inspect}"
node['error'] = "RPC agent 'erase_node' failed. Result:\n#{response.pretty_inspect}"
error_nodes << node
elsif @reboot && !response[:data][:rebooted]
node['error'] = "RPC method 'erase_node' failed with message: #{response[:data][:error_msg]}"
@ -119,7 +119,7 @@ module Astute
end
def mclient_remove_nodes(nodes)
Astute.logger.info "#{@ctx.task_id}: Starting removing of nodes: #{nodes.uids.inspect}"
Astute.logger.info "#{@ctx.task_id}: Starting removing of nodes:\n#{nodes.uids.pretty_inspect}"
results = []
nodes.uids.sort.each_slice(Astute.config[:max_nodes_per_remove_call]).with_index do |part, i|
@ -132,7 +132,7 @@ module Astute
def mclient_remove_piece_nodes(nodes)
remover = MClient.new(@ctx, "erase_node", nodes, check_result=false)
responses = remover.erase_node(:reboot => @reboot)
Astute.logger.debug "#{@ctx.task_id}: Data received from nodes: #{responses.inspect}"
Astute.logger.debug "#{@ctx.task_id}: Data received from nodes:\n#{responses.pretty_inspect}"
responses.map(&:results)
end

View File

@ -23,7 +23,7 @@ module Astute
return if controller_nodes.empty?
Astute.logger.info "Starting unmigration of pacemaker services from " \
"nodes #{controller_nodes.inspect}"
"nodes\n#{controller_nodes.pretty_inspect}"
Astute::Pacemaker.commands(action='start', deployment_info).each do |pcmk_unban_cmd|
response = run_shell_command(context, controller_nodes, pcmk_unban_cmd)

View File

@ -27,7 +27,7 @@ module Astute
Astute.logger.info "Starting removal of error-prone packages"
Astute.logger.info "Executing command #{remove_cmd}"
Astute.logger.info "On nodes #{nodes.inspect}"
Astute.logger.info "On nodes\n#{nodes.pretty_inspect}"
response = run_shell_command(context, nodes, remove_cmd, 600)

View File

@ -33,7 +33,7 @@ module Astute
controller_nodes = c_deployment_info.map{ |n| n['uid'] }
Astute.logger.info "Starting migration of pacemaker services from " \
"nodes #{controller_nodes.inspect}"
"nodes\n#{controller_nodes.pretty_inspect}"
Astute::Pacemaker.commands(action='stop', c_deployment_info).each do |pcmk_ban_cmd|
response = run_shell_command(context, controller_nodes, pcmk_ban_cmd)

View File

@ -51,7 +51,7 @@ module Astute
provision_method,
fault_tolerance)
rescue => e
Astute.logger.error("Error occured while provisioning: #{e.inspect}")
Astute.logger.error("Error occured while provisioning:\n#{e.pretty_inspect}")
reporter.report({
'status' => 'error',
'error' => e.message,

View File

@ -194,7 +194,7 @@ module Astute
# Pass nodes because logs calculation needs IP address of node, not just uid
nodes_progress = @ctx.deploy_log_parser.progress_calculate([@node['uid']], [@node])
if nodes_progress.present?
Astute.logger.debug "Got progress for nodes: #{nodes_progress.inspect}"
Astute.logger.debug "Got progress for nodes:\n#{nodes_progress.pretty_inspect}"
# Nodes with progress are running, so they are not included in nodes_to_report yet
nodes_progress.map! { |x| x.merge!('status' => 'deploying', 'role' => @node['role']) }

View File

@ -40,7 +40,7 @@ module Astute
end
def report(data)
Astute.logger.debug("Data received by DeploymentProxyReporter to report it up: #{data.inspect}")
Astute.logger.debug("Data received by DeploymentProxyReporter to report it up:\n#{data.pretty_inspect}")
report_new_data(data)
end
@ -56,7 +56,7 @@ module Astute
data['nodes'] = nodes_to_report
end
data.merge!(get_overall_status(data))
Astute.logger.debug("Data send by DeploymentProxyReporter to report it up: #{data.inspect}")
Astute.logger.debug("Data send by DeploymentProxyReporter to report it up:\n#{data.pretty_inspect}")
@up_reporter.report(data)
end
@ -67,7 +67,7 @@ module Astute
if status == 'ready' && error_nodes.any?
status = 'error'
msg = "Some error occured on nodes #{error_nodes.inspect}"
msg = "Some error occured on nodes\n#{error_nodes.pretty_inspect}"
end
progress = data['progress']
@ -115,7 +115,7 @@ module Astute
err << "Node uid is not provided" unless node['uid']
if err.any?
msg = "Validation of node: #{node.inspect} for report failed: #{err.join('; ')}."
msg = "Validation of node:\n#{node.pretty_inspect} for report failed: #{err.join('; ')}."
Astute.logger.error(msg)
raise msg
end
@ -179,17 +179,17 @@ module Astute
if node['progress']
if node['progress'] > 100
Astute.logger.warn("Passed report for node with progress > 100: "\
"#{node.inspect}. Adjusting progress to 100.")
"#{node.pretty_inspect}. Adjusting progress to 100.")
node['progress'] = 100
elsif node['progress'] < 0
Astute.logger.warn("Passed report for node with progress < 0: "\
"#{node.inspect}. Adjusting progress to 0.")
"#{node.pretty_inspect}. Adjusting progress to 0.")
node['progress'] = 0
end
end
if node['status'] && ['provisioned', 'ready'].include?(node['status']) && node['progress'] != 100
Astute.logger.warn("In #{node['status']} state node should have progress 100, "\
"but node passed: #{node.inspect}. Setting it to 100")
"but node passed:\n#{node.pretty_inspect}. Setting it to 100")
node['progress'] = 100
end
end
@ -234,7 +234,7 @@ module Astute
end
def report(data)
Astute.logger.debug("Data received by ProvisiningProxyReporter to report it up: #{data.inspect}")
Astute.logger.debug("Data received by ProvisiningProxyReporter to report it up:\n#{data.pretty_inspect}")
report_new_data(data)
end
@ -249,7 +249,7 @@ module Astute
update_saved_nodes(nodes_to_report)
data['nodes'] = nodes_to_report
end
Astute.logger.debug("Data send by DeploymentProxyReporter to report it up: #{data.inspect}")
Astute.logger.debug("Data send by DeploymentProxyReporter to report it up:\n#{data.pretty_inspect}")
@up_reporter.report(data)
end

View File

@ -32,7 +32,7 @@ module Astute
Astute.logger.error("#{ctx.task_id}: #{msg}")
rescue => e
msg = "Exception occured during sending SIGHUP to rsyslogd, message: #{e.message} \
trace: #{e.backtrace.inspect}"
trace:\n#{e.backtrace.pretty_inspect}"
Astute.logger.error("#{ctx.task_id}: #{msg}")
end
end

View File

@ -43,7 +43,7 @@ module Astute
def provision(data, provision_method)
Astute.logger.info("'provision' method called with data: #{data.inspect}")
Astute.logger.info("'provision' method called with data:\n#{data.pretty_inspect}")
reporter = Astute::Server::Reporter.new(@producer, data['respond_to'], data['args']['task_uuid'])
begin
@ -63,7 +63,7 @@ module Astute
end
def deploy(data)
Astute.logger.info("'deploy' method called with data: #{data.inspect}")
Astute.logger.info("'deploy' method called with data:\n#{data.pretty_inspect}")
reporter = Astute::Server::Reporter.new(@producer, data['respond_to'], data['args']['task_uuid'])
@ -84,7 +84,7 @@ module Astute
end
def granular_deploy(data)
Astute.logger.info("'granular_deploy' method called with data: #{data.inspect}")
Astute.logger.info("'granular_deploy' method called with data:\n#{data.pretty_inspect}")
reporter = Astute::Server::Reporter.new(@producer, data['respond_to'], data['args']['task_uuid'])
begin
@ -197,7 +197,7 @@ module Astute
#
def stop_deploy_task(data, service_data)
Astute.logger.debug("'stop_deploy_task' service method called with data: #{data.inspect}")
Astute.logger.debug("'stop_deploy_task' service method called with data:\n#{data.pretty_inspect}")
target_task_uuid = data['args']['stop_task_uuid']
task_uuid = data['args']['task_uuid']
@ -224,7 +224,7 @@ module Astute
task_uuid = data['args']['task_uuid']
new_task_data = data_for_rm_nodes(data)
Astute.logger.info("Replace running task #{target_task_uuid} to new #{task_uuid} with data: #{new_task_data.inspect}")
Astute.logger.info("Replace running task #{target_task_uuid} to new #{task_uuid} with data:\n#{new_task_data.pretty_inspect}")
service_data[:tasks_queue].replace_task(target_task_uuid, new_task_data)
end

View File

@ -27,7 +27,7 @@ module Astute
EM.next_tick {
begin
Astute.logger.info "Casting message to Nailgun: #{message.inspect}"
Astute.logger.info "Casting message to Nailgun:\n#{message.pretty_inspect}"
@exchange.publish(message.to_json, options)
rescue
Astute.logger.error "Error publishing message: #{$!}"

View File

@ -61,11 +61,11 @@ module Astute
end
@consumer.on_delivery do |metadata, payload|
if @main_work_thread.nil? || !@main_work_thread.alive?
Astute.logger.debug "Process message from worker queue: #{payload.inspect}"
Astute.logger.debug "Process message from worker queue:\n#{payload.pretty_inspect}"
metadata.ack
perform_main_job(metadata, payload)
else
Astute.logger.debug "Requeue message because worker is busy: #{payload.inspect}"
Astute.logger.debug "Requeue message because worker is busy:\n#{payload.pretty_inspect}"
# Avoid throttle by consume/reject cycle if only one worker is running
EM.add_timer(2) { metadata.reject(:requeue => true) }
end
@ -75,7 +75,7 @@ module Astute
def service_worker
@service_queue.subscribe do |_, payload|
Astute.logger.debug "Process message from service queue: #{payload.inspect}"
Astute.logger.debug "Process message from service queue:\n#{payload.pretty_inspect}"
perform_service_job(nil, payload)
end
end
@ -123,7 +123,7 @@ module Astute
end
def dispatch_message(data, service_data=nil)
Astute.logger.debug "Dispatching message: #{data.inspect}"
Astute.logger.debug "Dispatching message:\n#{data.pretty_inspect}"
if Astute.config.fake_dispatch
Astute.logger.debug "Fake dispatch"
@ -157,12 +157,12 @@ module Astute
end
def parse_data(data)
Astute.logger.debug "Got message with payload #{data.inspect}"
Astute.logger.debug "Got message with payload\n#{data.pretty_inspect}"
messages = nil
begin
messages = JSON.load(data)
rescue => e
Astute.logger.error "Error deserializing payload: #{e.message}, trace: #{e.backtrace.inspect}"
Astute.logger.error "Error deserializing payload: #{e.message}, trace:\n#{e.backtrace.pretty_inspect}"
end
messages.is_a?(Array) ? messages : [messages]
end
@ -188,7 +188,7 @@ module Astute
return_results(message, err_msg)
rescue => ex
Astute.logger.debug "Failed to abort '#{message['method']}': #{ex.inspect}"
Astute.logger.debug "Failed to abort '#{message['method']}':\n#{ex.pretty_inspect}"
end
end
end

View File

@ -101,7 +101,7 @@ module Astute
if error.reply_code == 406 #PRECONDITION_FAILED
cleanup_rabbitmq_stuff
else
Astute.logger.fatal "Channel error #{error.inspect}"
Astute.logger.fatal "Channel error\n#{error.pretty_inspect}"
end
sleep DELAY_SEC # avoid race condition
stop

View File

@ -49,17 +49,17 @@ module Astute
answer = {'nodes' => to_report_format(ready_nodes, nodes)}
if inaccessible_nodes.present?
answer.merge!({'inaccessible_nodes' => to_report_format(inaccessible_nodes, nodes)})
Astute.logger.warn "#{ctx.task_id}: Running shell command on nodes #{nodes_uids.inspect} finished " \
"with errors. Nodes #{answer['inaccessible_nodes'].inspect} are inaccessible"
Astute.logger.warn "#{ctx.task_id}: Running shell command on nodes\n#{nodes_uids.pretty_inspect}\nfinished " \
"with errors. Nodes\n#{answer['inaccessible_nodes'].pretty_inspect}\nare inaccessible"
end
if error_nodes.present?
answer.merge!({'status' => 'error', 'error_nodes' => to_report_format(error_nodes, nodes)})
Astute.logger.error "#{ctx.task_id}: Running shell command on nodes #{nodes_uids.inspect} finished " \
"with errors: #{answer['error_nodes'].inspect}"
Astute.logger.error "#{ctx.task_id}: Running shell command on nodes\n#{nodes_uids.pretty_inspect}\nfinished " \
"with errors:\n#{answer['error_nodes'].pretty_inspect}"
end
Astute.logger.info "#{ctx.task_id}: Finished running shell command: #{nodes_uids.inspect}"
Astute.logger.info "#{ctx.task_id}: Finished running shell command:\n#{nodes_uids.pretty_inspect}"
answer
end

View File

@ -101,13 +101,13 @@ describe Astute::NodesRemover do
]
end
it 'should infrom about error' do
it 'should inform about error' do
expect(Astute::NodesRemover.new(ctx, nodes).remove).to eq(
{ "nodes"=>[],
"status" => "error",
"error_nodes" => [
{"uid"=>"1", "error"=>"RPC agent 'erase_node' failed. Result: {:sender=>\"1\", :statuscode=>1, :data=>{:rebooted=>false}}"},
{"uid"=>"2", "error"=>"RPC agent 'erase_node' failed. Result: {:sender=>\"2\", :statuscode=>1, :data=>{:rebooted=>false}}"}
{"uid"=>"1", "error"=>"RPC agent 'erase_node' failed. Result:\n{:sender=>\"1\", :statuscode=>1, :data=>{:rebooted=>false}}\n"},
{"uid"=>"2", "error"=>"RPC agent 'erase_node' failed. Result:\n{:sender=>\"2\", :statuscode=>1, :data=>{:rebooted=>false}}\n"}
]
}
)
@ -154,7 +154,7 @@ describe Astute::NodesRemover do
]
end
it 'should infrom about error' do
it 'should inform about error' do
expect(Astute::NodesRemover.new(ctx, nodes, reboot=true).remove).to eq(
{ "nodes"=>[],
"status" => "error",