end end
+def common_error_id(line)
- line.gsub!(/\n|\t/, '.')
- line =`echo "#{line}"|awk -F'.' '{print $1}'`
- line.gsub!(/:/, '') # error.:-'__mysql_packages'-is-undefined: 1
- line.gsub!(/^/, '')
- line.gsub!(/.|,/, '')
- line.gsub!(/<|>/, '') # error.Request-failed-<urlopen-error-timed-out>: 1
- line.gsub!(/'/, '') # Failed-to-download-metadata-for-repo-'dockerrepo: 1
- line.gsub!(/!/, '') # Distribution-openEuler-is-not-supported-by-this-role!: 1
- line.gsub!(/ /, '-')
- line.gsub!(/-+/, '-') # Replace multiple consecutive '-' with a single one
what do you want to keep with so many gsub lines? case you want to keep word characters, you can use: line.gsub!(/[^\w]/, '') if you want to keep some other characters, you can add it in [], example: line.gsub!(/[^\w]"./, '')
Thanks, Luan Shengde
- line = line.chomp
- line
+end
+while (line = STDIN.gets)
- next unless line =~ /(FAILED!|failed:).*=>(.*)/
- @ansible_failed_info = $2
- next if @ansible_failed_info.empty?
- ansible_failed_json = JSON.parse @ansible_failed_info
- output_error ansible_failed_json['msg']
- output_error ansible_failed_json['message']
- output_error ansible_failed_json['cmd']
- output_error ansible_failed_json['failures']
+end
2.23.0