Skip to content

Commit

Permalink
basic status report works
Browse files Browse the repository at this point in the history
  • Loading branch information
Troy Stribling authored and Troy Stribling committed Jun 7, 2011
1 parent 0bfbe96 commit ba77855
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 36 deletions.
34 changes: 14 additions & 20 deletions bin/bf_daily_status.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,32 +39,26 @@

#----------------------------------------------------------------------------------------------------
if unreachable_count > 0
unreachable_msg = "#{unreachable_count} SERVERS ARE NOT ACCESSIBLE\n" +
"ENVIRONMENT SERVER IP ERROR\n" +
"--------------------------------------------------------------------------------------------------------------\n"
unreachable_msg = unreachable.inject(unreachable_msg) do |msg, (env, vms)|
short_msg = "#{unreachable_count} SERVERS ARE NOT ACCESSIBLE"
msg = "#{short_msg}\n"
msg = unreachable.inject(msg) do |msg, (env, vms)|
msg += "\nENVIRONMENT: #{env}\n\n"
vms.each do |(vm, data)|
msg += sprintf("%-15.15s | %-35.35s | %-15s | %-38.38s\n", env, vm, data[:ip], data[:error_msg])
msg += " SERVER: #{vm}\n IP: #{data[:ip]}\n ERROR: #{data[:error_msg]}\n\n"
end; msg
end
else
unreachable_msg = "THERE WERE NO ERRORS IN ACCESSING SERVERS\n"
short_msg = "ALL SERVERS ARE ACCESSIBLE"
msg = "#{short_msg}\n"
end

#----------------------------------------------------------------------------------------------------
if reachable_count > 0
reachable_msg = "#{reachable_count} SERVERS ARE ACCESSIBLE\n" +
"ENVIRONMENT SERVER IP TRIES TRANSACTION(MS) UPTIME(HRS)\n" +
"--------------------------------------------------------------------------------------------------------------\n"
reachable_msg = reachable.inject(reachable_msg) do |msg, (env, vms)|
vms.each do |(vm, data)|
msg += sprintf("%-15.15s | %-35.35s | %-15s | %-5s | %-16s | %-11s\n", env, vm, data[:ip], data[:tries], data[:elapsed_time_ms], data[:data])
end; msg
end
else
reachable_msg = "NO SERVERS ACCESSIBLE\n"
end
file = "ENVIRONMENT,SERVER,IP,ERROR MSG,TRIES,TRANSACTION(MS),UPTIME(HRS)\n"
file += agg_response.inject([]) do |f, (env, vms)|
vms.each do |(vm, data)|
f << [env, vm, data[:ip], data[:error_msg] || 'NO ERROR', data[:tries] || 'NA', data[:elapsed_time_ms] || 'NA', data[:data] || 'NA'].join(',')
end; f
end.join("\n")

#----------------------------------------------------------------------------------------------------
msg = "\n" + unreachable_msg + "\n\n\n" + reachable_msg
send_email(EMAIL_CONFIG['msg']['to'].join(', '), EMAIL_CONFIG['msg']['subject'], msg, EMAIL_CONFIG['server'])
send_email(EMAIL_CONFIG['msg']['to'].join(', '), EMAIL_CONFIG['msg']['subject'] + " (#{short_msg})", msg, 'status.csv', file, EMAIL_CONFIG['server'])
75 changes: 61 additions & 14 deletions caas_tools.tmproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>currentDocument</key>
<string>bin/bf_daily_status.rb</string>
<string>lib/send_email.rb</string>
<key>documents</key>
<array>
<dict>
Expand All @@ -21,6 +21,20 @@
<integer>309</integer>
<key>metaData</key>
<dict>
<key>README</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>0</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
</dict>
<key>ash_vcd.yml</key>
<dict>
<key>caret</key>
Expand Down Expand Up @@ -100,14 +114,14 @@
<key>caret</key>
<dict>
<key>column</key>
<integer>116</integer>
<integer>45</integer>
<key>line</key>
<integer>26</integer>
<integer>69</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
<integer>23</integer>
</dict>
<key>bin/bf_os_config.rb</key>
<dict>
Expand Down Expand Up @@ -228,9 +242,9 @@
<key>caret</key>
<dict>
<key>column</key>
<integer>63</integer>
<integer>78</integer>
<key>line</key>
<integer>11</integer>
<integer>4</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
Expand All @@ -242,14 +256,30 @@
<key>caret</key>
<dict>
<key>column</key>
<integer>46</integer>
<integer>29</integer>
<key>line</key>
<integer>45</integer>
<integer>22</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>36</integer>
<integer>16</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>19</integer>
<key>line</key>
<integer>22</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>29</integer>
<key>line</key>
<integer>22</integer>
</dict>
</dict>
<key>lib/vcd.rb</key>
<dict>
Expand Down Expand Up @@ -344,23 +374,39 @@
<key>caret</key>
<dict>
<key>column</key>
<integer>6</integer>
<integer>0</integer>
<key>line</key>
<integer>6</integer>
<integer>10</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>9</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>10</integer>
</dict>
</dict>
<key>test.yml</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>10</integer>
<integer>22</integer>
<key>line</key>
<integer>9</integer>
<integer>6</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
Expand All @@ -386,13 +432,14 @@
<string>bin/bf_os_config.rb</string>
<string>bin/find_duplicate_ips.rb</string>
<string>bin/bf_daily_status.rb</string>
<string>README</string>
<string>ash_vcd.yml</string>
<string>bin/vsm_ips.rb</string>
<string>lib/vm_create_time.rb</string>
</array>
<key>showFileHierarchyDrawer</key>
<true/>
<key>windowFrame</key>
<string>{{325, 91}, {1347, 937}}</string>
<string>{{325, 119}, {1355, 909}}</string>
</dict>
</plist>
5 changes: 3 additions & 2 deletions lib/send_email.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
require 'rubygems'
require 'pony'

def send_email(to, subject, msg, config)
def send_email(to, subject, msg, file_name, file, config)
Pony.mail(:to => to, :subject => subject, :body => msg, :charset => 'utf-8',
:via => :smtp, :via_options => {:address => config["smtp_server"],
:port => config["port"],
:enable_starttls_auto => true,
:user_name => config["user_name"],
:password => config["password"],
:authentication => :plain,
:domain => "HELO"})
:domain => "HELO"},
:attachments => {file_name => file})
end

0 comments on commit ba77855

Please sign in to comment.