60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/routes/production_logs.rb', line 60
def watch_php
unless @opts[:skipFetch]
fetch_php_logs
end
begin
data_previous = nil
if @opts[:compare]
data_previous = []
sql_1 = "SELECT COUNT(*) AS frequency, account_version, error_message, error_file, error_line FROM brightpearl.php_logs WHERE account_version='#{@args[0]}' GROUP BY error_message, error_file, error_line ORDER BY frequency DESC"
data_previous_result = @ec2_connection.query(sql_1)
data_previous_result.each do |result|
data_previous << result
end
sql_2 = "SELECT COUNT(*) AS frequency, account_version, error_message, error_file, error_line FROM brightpearl.php_logs WHERE account_version='#{@args[1]}' GROUP BY error_message, error_file, error_line HAVING frequency > 1 ORDER BY frequency DESC"
data = @ec2_connection.query(sql_2)
else
if @args[0].nil?
sql = 'SELECT COUNT(*) AS frequency, account_version, error_message, error_file, error_line FROM brightpearl.php_logs GROUP BY error_file, error_line ORDER BY frequency DESC'
else
sql = "SELECT COUNT(*) AS frequency, account_version, error_message, error_file, error_line FROM brightpearl.php_logs WHERE account_version='#{@args[0]}' GROUP BY error_file, error_line ORDER BY frequency DESC"
end
data = @ec2_connection.query(sql)
end
column_width_1 = 5
column_width_2 = 8
column_width_3 = ((@terminal_width - 21).to_f * 0.7).round
column_width_4 = (@terminal_width - (column_width_1 + column_width_2 + column_width_3 + 5)) - 5
column_width_5 = 5
puts
table(:border => false) do
row do
column('', :width => column_width_1, :color => 255, :align => 'right')
column('Version', :width => column_width_2, :color => 255, :align => 'right')
column('Error', :width => column_width_3, :color => 255)
column('', :width => column_width_4, :color => 255, :align => 'right')
column('', :width => column_width_5, :color => 255, :align => 'left')
end
row do
column('')
column('')
column('')
column('')
column('')
end
data.each do |row_data|
row_color = get_color_php_logs(data_previous, row_data)
error_file = row_data['error_file'].split('/')
error_file = "#{error_file[error_file.count - 2]}/#{error_file[error_file.count - 1]}"
row do
column(row_data['frequency'], :color => row_color)
column(row_data['account_version'], :color => row_color)
column(row_data['error_message'][0..(column_width_3 - 1)], :color => row_color)
column(error_file[0..(column_width_4 - 1)], :color => row_color)
column(row_data['error_line'], :color => row_color)
end
end
end
puts
rescue Exception => e
App::Terminal::error('Something went wrong', "#{e.message}", true)
end
end
|