Module Rudy::AWS::EC2::Snapshots

  1. lib/rudy/aws/ec2/snapshot.rb

Methods

public class

  1. from_hash

public instance

  1. any?
  2. completed?
  3. create
  4. destroy
  5. exists?
  6. get
  7. list
  8. list_as_hash

Included modules

  1. Rudy::AWS::EC2

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