Module: Rudy::AWS::EC2::Snapshots
Class Method Summary
collapse
Instance Method Summary
collapse
connect
Methods included from Huxtable
config, #config_dirname, create_domain, #current_group_name, #current_machine_address, #current_machine_bucket, #current_machine_count, #current_machine_group, #current_machine_hostname, #current_machine_image, #current_machine_name, #current_machine_os, #current_machine_size, #current_machine_user, #current_user_keypairname, #current_user_keypairpath, #defined_keypairpath, domain, domain_exists?, global, keypair_path_to_name, #known_machine_group?, ld, #ld, #le, le, li, #li, logger, reset_config, reset_global, #root_keypairname, #root_keypairpath, update_config, update_global, update_logger, #user_keypairname, #user_keypairpath
Class Method Details
.from_hash(h) ⇒ Object
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 61
def Snapshots.from_hash(h)
vol = Rudy::AWS::EC2::Snapshot.new
vol.awsid = h['snapshotId']
vol.volid = h['volumeId']
vol.created = h['startTime']
vol.progress = h['progress']
vol.status = h['status']
vol
end
|
Instance Method Details
#any? ⇒ Boolean
78
79
80
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 78
def any?
!(list_as_hash || {}).empty?
end
|
#completed?(snap_id) ⇒ Boolean
90
91
92
93
94
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 90
def completed?(snap_id)
s = get(snap_id)
return false if s.nil?
s.completed?
end
|
#create(vol_id) ⇒ Object
48
49
50
51
52
53
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 48
def create(vol_id)
vol_id = (vol_id.is_a?(Rudy::AWS::EC2::Volume)) ? vol_id.awsid : vol_id
shash = @@ec2.create_snapshot(:volume_id => vol_id)
snap = Snapshots.from_hash(shash)
snap
end
|
#destroy(snap_id) ⇒ Object
55
56
57
58
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 55
def destroy(snap_id)
ret = @@ec2.delete_snapshot(:snapshot_id => snap_id)
(ret && ret['return'] == 'true')
end
|
#exists?(snap_id) ⇒ Boolean
86
87
88
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 86
def exists?(snap_id)
!get(snap_id).nil?
end
|
#get(snap_id) ⇒ Object
82
83
84
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 82
def get(snap_id)
list(snap_id).first rescue nil
end
|
#list(snap_id = []) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 28
def list(snap_id=[])
snapshots = list_as_hash(snap_id)
if snapshots
snapshots = snapshots.values.sort { |a,b| a.created <=> b.created }
end
snapshots
end
|
#list_as_hash(snap_id = []) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/rudy/aws/ec2/snapshot.rb', line 35
def list_as_hash(snap_id=[])
snap_id = [snap_id].flatten.compact
slist = @@ec2.describe_snapshots(:snapshot_id => snap_id)
return unless slist['snapshotSet'].is_a?(Hash)
snapshots = {}
slist['snapshotSet']['item'].each do |snap|
kp = self.from_hash(snap)
snapshots[kp.awsid] = kp
end
snapshots = nil if snapshots.empty?
snapshots
end
|