From 2a8fbbb31b467b7902ce9219e5f92daad7973ff9 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Thu, 27 May 2021 11:51:33 +0200 Subject: [PATCH] B #5065: Fix get_error_message Removes uneeded error message wraps. (cherry picked from commit 82fb4f421696d5e0526c45f46f9abd6540167ca2) --- src/datastore_mad/remotes/vcenter/export | 2 +- src/im_mad/im_exec/one_im_exec.rb | 40 +++++++------------ src/ipamm_mad/remotes/aws/get_address | 6 +-- .../remotes/aws/register_address_range | 6 +-- .../remotes/aws/unregister_address_range | 6 +-- src/ipamm_mad/remotes/packet/get_address | 6 +-- .../remotes/packet/register_address_range | 6 +-- .../remotes/packet/unregister_address_range | 6 +-- src/ipamm_mad/remotes/vultr/get_address | 6 +-- .../remotes/vultr/register_address_range | 6 +-- .../remotes/vultr/unregister_address_range | 6 +-- src/mad/ruby/CommandManager.rb | 21 ++++------ src/mad/ruby/DriverExecHelper.rb | 32 +++++---------- src/mad/ruby/scripts_common.rb | 11 +---- src/mad/ruby/ssh_stream.rb | 4 +- src/mad/sh/scripts_common.sh | 8 +--- src/oneprovision/lib/provision/utils.rb | 19 --------- src/vmm_mad/remotes/packet/cancel | 2 +- src/vmm_mad/remotes/packet/deploy | 2 +- src/vmm_mad/remotes/packet/packet_driver.rb | 10 ----- src/vmm_mad/remotes/packet/poll | 2 +- src/vmm_mad/remotes/packet/reboot | 2 +- src/vmm_mad/remotes/packet/reset | 2 +- src/vmm_mad/remotes/packet/shutdown | 2 +- src/vmm_mad/remotes/vcenter/vcenter_driver.rb | 11 +---- 25 files changed, 54 insertions(+), 170 deletions(-) diff --git a/src/datastore_mad/remotes/vcenter/export b/src/datastore_mad/remotes/vcenter/export index 864d673f0f..856a170f39 100755 --- a/src/datastore_mad/remotes/vcenter/export +++ b/src/datastore_mad/remotes/vcenter/export @@ -71,7 +71,7 @@ ds_id = drv_action['/DS_DRIVER_ACTION_DATA/DATASTORE/ID'] if img_source.nil? message = 'Not enough information to export the image, '\ 'missing image source.' - STDERR.puts error_message(message) + STDERR.puts message exit(-1) end diff --git a/src/im_mad/im_exec/one_im_exec.rb b/src/im_mad/im_exec/one_im_exec.rb index fb3416238a..410ab05e81 100755 --- a/src/im_mad/im_exec/one_im_exec.rb +++ b/src/im_mad/im_exec/one_im_exec.rb @@ -188,37 +188,25 @@ class InformationManagerDriver < OpenNebulaDriver # Sends a log message to ONE. The +message+ can be multiline, it will # be automatically splitted by lines. def log(id, message, not_used=true) - in_error = false - msg = message.strip - severity = 'I' + msg = message.strip msg.each_line do |line| - l = line.strip + severity = 'I' - if l == 'ERROR MESSAGE --8<------' - in_error = true - next - elsif l == 'ERROR MESSAGE ------>8--' - in_error = false - next - else - m = line.match(/^(ERROR|DEBUG|INFO):(.*)$/) + m = line.match(/^(ERROR|DEBUG|INFO):(.*)$/) - if in_error + if m + line = m[2] + + case m[1] + when 'ERROR' severity = 'E' - elsif m - line = m[2] - - case m[1] - when 'ERROR' - severity = 'E' - when 'DEBUG' - severity = 'D' - when 'INFO' - severity = 'I' - else - severity = 'I' - end + when 'DEBUG' + severity = 'D' + when 'INFO' + severity = 'I' + else + severity = 'I' end end diff --git a/src/ipamm_mad/remotes/aws/get_address b/src/ipamm_mad/remotes/aws/get_address index c33cf6011a..37fdda0a24 100755 --- a/src/ipamm_mad/remotes/aws/get_address +++ b/src/ipamm_mad/remotes/aws/get_address @@ -105,10 +105,6 @@ begin ] EOF rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/aws/register_address_range b/src/ipamm_mad/remotes/aws/register_address_range index 005c0d1ef1..2be4783f49 100755 --- a/src/ipamm_mad/remotes/aws/register_address_range +++ b/src/ipamm_mad/remotes/aws/register_address_range @@ -219,10 +219,6 @@ begin ] EOF rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/aws/unregister_address_range b/src/ipamm_mad/remotes/aws/unregister_address_range index b6d41bf7f0..f43d2ed702 100755 --- a/src/ipamm_mad/remotes/aws/unregister_address_range +++ b/src/ipamm_mad/remotes/aws/unregister_address_range @@ -127,10 +127,6 @@ begin ec2.release_address({ :allocation_id => allocation_id }) rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/packet/get_address b/src/ipamm_mad/remotes/packet/get_address index 1b32aac83b..f6181a5f01 100755 --- a/src/ipamm_mad/remotes/packet/get_address +++ b/src/ipamm_mad/remotes/packet/get_address @@ -103,10 +103,6 @@ begin ] EOF rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/packet/register_address_range b/src/ipamm_mad/remotes/packet/register_address_range index 0affde86da..1e031b085b 100755 --- a/src/ipamm_mad/remotes/packet/register_address_range +++ b/src/ipamm_mad/remotes/packet/register_address_range @@ -228,10 +228,6 @@ begin ] EOF rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/packet/unregister_address_range b/src/ipamm_mad/remotes/packet/unregister_address_range index 3e23ff3973..cf49a6c77b 100755 --- a/src/ipamm_mad/remotes/packet/unregister_address_range +++ b/src/ipamm_mad/remotes/packet/unregister_address_range @@ -116,10 +116,6 @@ begin packet.delete_ip(packet_id) rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/vultr/get_address b/src/ipamm_mad/remotes/vultr/get_address index 2bd85fd7e2..0d3585245f 100755 --- a/src/ipamm_mad/remotes/vultr/get_address +++ b/src/ipamm_mad/remotes/vultr/get_address @@ -90,10 +90,6 @@ begin ] EOF rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/vultr/register_address_range b/src/ipamm_mad/remotes/vultr/register_address_range index b8677e221e..9c8dce0393 100755 --- a/src/ipamm_mad/remotes/vultr/register_address_range +++ b/src/ipamm_mad/remotes/vultr/register_address_range @@ -195,10 +195,6 @@ begin ] EOF rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/ipamm_mad/remotes/vultr/unregister_address_range b/src/ipamm_mad/remotes/vultr/unregister_address_range index 236dc8c9f9..895c07abad 100755 --- a/src/ipamm_mad/remotes/vultr/unregister_address_range +++ b/src/ipamm_mad/remotes/vultr/unregister_address_range @@ -112,10 +112,6 @@ begin exit(0) rescue StandardError => e - error_str = "ERROR MESSAGE --8<------\n" - error_str << e.to_s - error_str << "\nERROR MESSAGE ------>8--" - - STDERR.puts error_str + STDERR.puts e.to_s exit(-1) end diff --git a/src/mad/ruby/CommandManager.rb b/src/mad/ruby/CommandManager.rb index cfd26a4fec..63bba32e19 100644 --- a/src/mad/ruby/CommandManager.rb +++ b/src/mad/ruby/CommandManager.rb @@ -34,17 +34,9 @@ require 'base64' # * Log messages will be sent to STDOUT # * The script will return 0 if it succeded or any other value # if there was a failure -# * In case of failure the cause of the error will be written to STDERR -# wrapped by start and end marks as follows: -# -# ERROR MESSAGE --8<------ -# error message for the failure -# ERROR MESSAGE ------>8-- - +# * In case of failure the cause of the error will be written to STDERR. class GenericCommand - ERROR_OPEN = "ERROR MESSAGE --8<------" - ERROR_CLOSE = "ERROR MESSAGE ------>8--" attr_reader :code, :stdout, :stderr, :command @@ -93,8 +85,9 @@ class GenericCommand end log(error_message) - @stderr = ERROR_OPEN + "\n" + error_message + "\n" + ERROR_CLOSE - @code = 255 + + @stderr = error_message + @code = 255 end return @code @@ -102,9 +95,9 @@ class GenericCommand # Parses error message from +stderr+ output def get_error_message - tmp=@stderr.scan(/^#{ERROR_OPEN}\n(.*?)#{ERROR_CLOSE}$/m) - return "-" if !tmp[0] - tmp[0].join(' ').strip + return '-' if @stderr.empty? + + @stderr.tr("\n",' ').strip end def to_xml diff --git a/src/mad/ruby/DriverExecHelper.rb b/src/mad/ruby/DriverExecHelper.rb index afeb7d1490..7eecc85ec5 100644 --- a/src/mad/ruby/DriverExecHelper.rb +++ b/src/mad/ruby/DriverExecHelper.rb @@ -124,31 +124,21 @@ module DriverExecHelper # Sends a log message to ONE. The +message+ can be multiline, it will # be automatically splitted by lines. def log(number, message, all = true) - in_error_message=false - msg=message.strip + msg = message.strip + msg.each_line do |line| all ? severity='I' : severity=nil - l=line.strip - if l=='ERROR MESSAGE --8<------' - in_error_message=true - next - elsif l=='ERROR MESSAGE ------>8--' - in_error_message=false - next - else - if in_error_message + if line.match(/^(ERROR|DEBUG|INFO):(.*)$/) + line=Regexp.last_match(2) + + case Regexp.last_match(1) + when 'ERROR' severity='E' - elsif line.match(/^(ERROR|DEBUG|INFO):(.*)$/) - line=Regexp.last_match(2) - case Regexp.last_match(1) - when 'ERROR' - severity='E' - when 'DEBUG' - severity='D' - when 'INFO' - severity='I' - end + when 'DEBUG' + severity='D' + when 'INFO' + severity='I' end end diff --git a/src/mad/ruby/scripts_common.rb b/src/mad/ruby/scripts_common.rb index eb52c772bd..7400f17a99 100644 --- a/src/mad/ruby/scripts_common.rb +++ b/src/mad/ruby/scripts_common.rb @@ -45,16 +45,7 @@ module OpenNebula # This function is used to pass error message to the mad def self.error_message(message) - STDERR.puts format_error_message(message) - end - - #This function formats an error message for OpenNebula - def self.format_error_message(message) - error_str = "ERROR MESSAGE --8<------\n" - error_str << message - error_str << "\nERROR MESSAGE ------>8--" - - return error_str + STDERR.puts message end def self.is_disk?(arg) diff --git a/src/mad/ruby/ssh_stream.rb b/src/mad/ruby/ssh_stream.rb index 3c5c90819c..8f3ce0af8c 100644 --- a/src/mad/ruby/ssh_stream.rb +++ b/src/mad/ruby/ssh_stream.rb @@ -147,7 +147,7 @@ class SshStream message = "Error connecting to #{@host}" code = tmp[0][0].to_i - @err << OpenNebula.format_error_message(message) + @err << message @alive = false break @@ -229,7 +229,7 @@ class SshStreamCommand < RemotesCommand @stderr = @stream.err if @code != 0 - log("Command execution fail: #{command}") + log("Command execution fail (exit code: #{@code}): #{command}") end log(@stderr) diff --git a/src/mad/sh/scripts_common.sh b/src/mad/sh/scripts_common.sh index 78ce29031f..046aeccd35 100644 --- a/src/mad/sh/scripts_common.sh +++ b/src/mad/sh/scripts_common.sh @@ -123,12 +123,8 @@ function log_debug # This function is used to pass error message to the mad function error_message { - ( - echo "ERROR MESSAGE --8<------" - echo "$1" - echo "ERROR MESSAGE ------>8--" - ) 1>&2 -} + echo "$1" 1>&2 + # Ensures the code is executed exclusively function exclusive diff --git a/src/oneprovision/lib/provision/utils.rb b/src/oneprovision/lib/provision/utils.rb index f5fcb79a17..361127f299 100644 --- a/src/oneprovision/lib/provision/utils.rb +++ b/src/oneprovision/lib/provision/utils.rb @@ -46,9 +46,6 @@ module OneProvision class << self - ERROR_OPEN = 'ERROR MESSAGE --8<------' - ERROR_CLOSE = 'ERROR MESSAGE ------>8--' - # Prints command and options in the debug output # # @param cmd [String] Command executed @@ -95,22 +92,6 @@ module OneProvision raise OneProvisionLoopException, return_code.message if error end - # Gets error message - # - # @param text [String] Text with error message inside - # - # @return [String] Error message - def get_error_message(text) - msg = '-' - - if text - tmp = text.scan(/^#{ERROR_OPEN}\n(.*?)#{ERROR_CLOSE}$/m) - msg = tmp[0].join(' ').strip if tmp[0] - end - - msg - end - # Converts XML template to string # # @param attributes [Hash] XML attributes diff --git a/src/vmm_mad/remotes/packet/cancel b/src/vmm_mad/remotes/packet/cancel index c04eb70f88..a8402d177f 100755 --- a/src/vmm_mad/remotes/packet/cancel +++ b/src/vmm_mad/remotes/packet/cancel @@ -65,7 +65,7 @@ begin packet_drv.cancel(deploy_id, vm.lcm_state_str) rescue Exception => e - STDERR.puts error_message(< e - STDERR.puts error_message(<8--" - - error_str -end - ############################################################################ # Module Interface # Interface for probe_db - VirtualMachineDB diff --git a/src/vmm_mad/remotes/packet/poll b/src/vmm_mad/remotes/packet/poll index 724afb4ecb..28874a80bd 100755 --- a/src/vmm_mad/remotes/packet/poll +++ b/src/vmm_mad/remotes/packet/poll @@ -61,7 +61,7 @@ begin packet_drv.poll(deploy_id) rescue Exception => e - STDERR.puts error_message(< e - STDERR.puts error_message(< e - STDERR.puts error_message(< e - STDERR.puts error_message(<8--" - - error_str -end - def check_valid(parameter, label) return unless parameter.nil? || parameter.empty? - STDERR.puts error_message("The parameter '#{label}'\ - is required for this action.") + STDERR.puts "The parameter '#{label}' is required for this action." exit(-1) end