Skip to content

Instantly share code, notes, and snippets.

@mikehale
Created September 23, 2010 19:44
Show Gist options
  • Save mikehale/594216 to your computer and use it in GitHub Desktop.
Save mikehale/594216 to your computer and use it in GitHub Desktop.
require 'time'
start_time = Time.parse("2010-09-22T18:50 -0700")
end_time = Time.parse("2010-09-22T18:50 -0930")
search_vols = mailbegs01_meatdisk_vols = %w[
vol-f4e1999d
vol-c2e199ab
vol-5435763d
vol-5235763b
vol-30421759
vol-00421769
vol-d8ca9bb1
vol-d2ca9bbb
]
search_vols.sort
puts "Looking for snapshots for #{search_vols.size} volumes named: #{search_vols.join(", ")}\n\n"
data_rows = $stdin.select{|l| l.include?("|") }.reject{|l| l.include?('snapshotId') }
data = data_rows.map{|line|
line.split('|').
map{|e|e.strip}.
reject{|e|e == ""}
}.map{|e|
m = {}
m[:snapshot_id]= e[0]
m[:volume_id]= e[1]
m[:status]= e[2]
m[:start_time]= e[3]
m[:progress]= e[4]
m[:ownerId]= e[5]
m[:volume_size]= e[6]
m
}
data = data.select{|snap| snap[:status] == "completed" }
data = data.select{|snap| t = Time.parse(snap[:start_time]); t >= start_time and t <= end_time }
data = data.select{|snap| search_vols.include?(snap[:volume_id]) }
#data = data.sort{|a,b| a[:volume_id] <=> b[:volume_id] }
data = data.group_by{|e| e[:volume_id] }
data = data.map{|volume_id,snaps| snaps.sort{|a,b| Time.parse(a[:start_time]) - Time.parse(b[:start_time]) }.first }
data.map!{|snap| "#{snap[:snapshot_id]} #{snap[:volume_id]} #{snap[:start_time]}" }
puts "Found #{data.size} snapshots named:"
puts data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment