Methods
public class
public instance
Included modules
Public class methods
from_hash
(h)
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 61 61: def Snapshots.from_hash(h) 62: #snapshotSet: 63: # item: 64: # - snapshotId: snap-5493653d 65: # volumeId: vol-0836d761 66: # status: completed 67: # startTime: "2009-03-29T20:15:10.000Z" 68: # progress: 100% 69: vol = Rudy::AWS::EC2::Snapshot.new 70: vol.awsid = h['snapshotId'] 71: vol.volid = h['volumeId'] 72: vol.created = h['startTime'] 73: vol.progress = h['progress'] 74: vol.status = h['status'] 75: vol 76: end
Public instance methods
any?
()
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 78 78: def any? 79: !(list_as_hash || {}).empty? 80: end
completed?
(snap_id)
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 90 90: def completed?(snap_id) 91: s = get(snap_id) 92: return false if s.nil? 93: s.completed? 94: end
create
(vol_id)
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 48 48: def create(vol_id) 49: vol_id = (vol_id.is_a?(Rudy::AWS::EC2::Volume)) ? vol_id.awsid : vol_id 50: shash = @@ec2.create_snapshot(:volume_id => vol_id) 51: snap = Snapshots.from_hash(shash) 52: snap 53: end
destroy
(snap_id)
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 55 55: def destroy(snap_id) 56: ret = @@ec2.delete_snapshot(:snapshot_id => snap_id) 57: (ret && ret['return'] == 'true') 58: end
exists?
(snap_id)
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 86 86: def exists?(snap_id) 87: !get(snap_id).nil? 88: end
get
(snap_id)
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 82 82: def get(snap_id) 83: list(snap_id).first rescue nil 84: end
list
(snap_id=[])
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 28 28: def list(snap_id=[]) 29: snapshots = list_as_hash(snap_id) 30: if snapshots 31: snapshots = snapshots.values.sort { |a,b| a.created <=> b.created } 32: end 33: snapshots 34: end
list_as_hash
(snap_id=[])
[show source]
# File lib/rudy/aws/ec2/snapshot.rb, line 35 35: def list_as_hash(snap_id=[]) 36: snap_id = [snap_id].flatten.compact 37: slist = @@ec2.describe_snapshots(:snapshot_id => snap_id) 38: return unless slist['snapshotSet'].is_a?(Hash) 39: snapshots = {} 40: slist['snapshotSet']['item'].each do |snap| 41: kp = self.from_hash(snap) 42: snapshots[kp.awsid] = kp 43: end 44: snapshots = nil if snapshots.empty? 45: snapshots 46: end