CloudyScripts 1.5.23 → 1.5.24
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/help/state_transition_helper.rb +35 -13
- metadata +25 -14
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ require 'rake/testtask'
|
|
12
12
|
|
13
13
|
spec = Gem::Specification.new do |s|
|
14
14
|
s.name = 'CloudyScripts'
|
15
|
-
s.version = '1.5.
|
15
|
+
s.version = '1.5.24'
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
|
18
18
|
s.summary = 'Scripts to facilitate programming for infrastructure clouds.'
|
@@ -232,23 +232,34 @@ module StateTransitionHelper
|
|
232
232
|
# * temp_device_name => device name to be used for attaching (e.g. /dev/sdj1)
|
233
233
|
def attach_volume(volume_id, instance_id, temp_device_name)
|
234
234
|
post_message("going to attach volume #{volume_id} to instance #{instance_id} on device #{temp_device_name}...")
|
235
|
-
@logger.
|
235
|
+
@logger.info "attach volume #{volume_id} to instance #{instance_id} on device #{temp_device_name}"
|
236
236
|
ec2_handler().attach_volume(:volume_id => volume_id,
|
237
237
|
:instance_id => instance_id,
|
238
238
|
:device => temp_device_name
|
239
239
|
)
|
240
240
|
done = false
|
241
|
-
|
242
|
-
|
243
|
-
#TODO: check for timeout?
|
241
|
+
timeout = 120
|
242
|
+
while timeout > 0
|
244
243
|
res = ec2_handler().describe_volumes(:volume_id => volume_id)
|
245
|
-
|
246
|
-
|
247
|
-
|
244
|
+
vol_state = res['volumeSet']['item'][0]['status']
|
245
|
+
attachment_state = res['volumeSet']['item'][0]['attachmentSet']['item'][0]['status']
|
246
|
+
@logger.debug "storage attaching: volume state: #{vol_state}, attachment state: #{attachment_state}"
|
247
|
+
if vol_state == 'in-use' && attachment_state == 'attached'
|
248
248
|
done = true
|
249
|
+
timeout = 0
|
249
250
|
end
|
251
|
+
sleep(5)
|
252
|
+
timeout -= 5
|
253
|
+
end
|
254
|
+
msg = ""
|
255
|
+
if !done
|
256
|
+
msg = "Failed to attach volume '#{volume_id}' to instance '#{instance_id}"
|
257
|
+
raise Exception.new("volume #{mount_point} not attached")
|
258
|
+
else
|
259
|
+
msg = "volume #{volume_id} successfully attached"
|
250
260
|
end
|
251
|
-
|
261
|
+
@logger.error "#{msg}"
|
262
|
+
post_message("#{msg}")
|
252
263
|
end
|
253
264
|
|
254
265
|
# Detach an EBS volume from an instance.
|
@@ -256,22 +267,33 @@ module StateTransitionHelper
|
|
256
267
|
# * volume_id => EC2 ID for the EBS Volume to be detached
|
257
268
|
# * instance_id => EC2 ID for the instance to detach from
|
258
269
|
def detach_volume(volume_id, instance_id)
|
259
|
-
post_message("going to detach volume #{volume_id}...")
|
260
|
-
@logger.
|
270
|
+
post_message("going to detach volume #{volume_id} from instance #{instance_id}...")
|
271
|
+
@logger.info "detach volume #{volume_id} from instance #{instance_id}"
|
261
272
|
ec2_handler().detach_volume(:volume_id => volume_id,
|
262
273
|
:instance_id => instance_id
|
263
274
|
)
|
264
275
|
done = false
|
265
|
-
|
276
|
+
timeout = 120
|
277
|
+
while timeout > 0
|
266
278
|
sleep(3)
|
267
|
-
#TODO: check for timeout?
|
268
279
|
res = ec2_handler().describe_volumes(:volume_id => volume_id)
|
269
280
|
@logger.debug "volume detaching: #{res.inspect}"
|
270
281
|
if res['volumeSet']['item'][0]['status'] == 'available'
|
271
282
|
done = true
|
283
|
+
timeout = 0
|
272
284
|
end
|
285
|
+
sleep(5)
|
286
|
+
timeout -= 5
|
287
|
+
end
|
288
|
+
msg = ""
|
289
|
+
if !done
|
290
|
+
msg = "Failed to detach volume '#{volume_id}' from instance '#{instance_id}"
|
291
|
+
raise Exception.new("volume #{mount_point} not detached")
|
292
|
+
else
|
293
|
+
msg = "volume #{volume_id} successfully detached"
|
273
294
|
end
|
274
|
-
|
295
|
+
@logger.error "#{msg}"
|
296
|
+
post_message("#{msg}")
|
275
297
|
end
|
276
298
|
|
277
299
|
# Delete an EBS volume.
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: CloudyScripts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 51
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
7
8
|
- 5
|
8
|
-
-
|
9
|
-
version: 1.5.
|
9
|
+
- 24
|
10
|
+
version: 1.5.24
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Matthias Jung
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-
|
18
|
+
date: 2011-03-09 00:00:00 +00:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: amazon-ec2
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
version: "0"
|
@@ -33,9 +36,11 @@ dependencies:
|
|
33
36
|
name: net-ssh
|
34
37
|
prerelease: false
|
35
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
36
40
|
requirements:
|
37
41
|
- - ">="
|
38
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
39
44
|
segments:
|
40
45
|
- 0
|
41
46
|
version: "0"
|
@@ -45,9 +50,11 @@ dependencies:
|
|
45
50
|
name: net-scp
|
46
51
|
prerelease: false
|
47
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
48
54
|
requirements:
|
49
55
|
- - ">="
|
50
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
51
58
|
segments:
|
52
59
|
- 0
|
53
60
|
version: "0"
|
@@ -66,20 +73,20 @@ files:
|
|
66
73
|
- LICENSE
|
67
74
|
- README.rdoc
|
68
75
|
- Rakefile
|
69
|
-
- lib/
|
70
|
-
- lib/help/dm_crypt_helper.rb
|
71
|
-
- lib/help/ec2_helper.rb
|
72
|
-
- lib/help/progress_message_listener.rb
|
73
|
-
- lib/help/remote_command_handler.rb
|
74
|
-
- lib/help/script_execution_state.rb
|
75
|
-
- lib/help/state_change_listener.rb
|
76
|
-
- lib/help/state_transition_helper.rb
|
76
|
+
- lib/scripts/ec2/dm_encrypt.rb
|
77
77
|
- lib/scripts/ec2/ami2_ebs_conversion.rb
|
78
78
|
- lib/scripts/ec2/copy_ami.rb
|
79
79
|
- lib/scripts/ec2/copy_snapshot.rb
|
80
|
-
- lib/scripts/ec2/dm_encrypt.rb
|
81
|
-
- lib/scripts/ec2/download_snapshot.rb
|
82
80
|
- lib/scripts/ec2/ec2_script.rb
|
81
|
+
- lib/scripts/ec2/download_snapshot.rb
|
82
|
+
- lib/help/ec2_helper.rb
|
83
|
+
- lib/help/dm_crypt_helper.rb
|
84
|
+
- lib/help/state_transition_helper.rb
|
85
|
+
- lib/help/script_execution_state.rb
|
86
|
+
- lib/help/progress_message_listener.rb
|
87
|
+
- lib/help/remote_command_handler.rb
|
88
|
+
- lib/help/state_change_listener.rb
|
89
|
+
- lib/cloudyscripts.rb
|
83
90
|
has_rdoc: true
|
84
91
|
homepage: http://elastic-security.com
|
85
92
|
licenses: []
|
@@ -90,23 +97,27 @@ rdoc_options: []
|
|
90
97
|
require_paths:
|
91
98
|
- lib
|
92
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
93
101
|
requirements:
|
94
102
|
- - ">="
|
95
103
|
- !ruby/object:Gem::Version
|
104
|
+
hash: 3
|
96
105
|
segments:
|
97
106
|
- 0
|
98
107
|
version: "0"
|
99
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
100
110
|
requirements:
|
101
111
|
- - ">="
|
102
112
|
- !ruby/object:Gem::Version
|
113
|
+
hash: 3
|
103
114
|
segments:
|
104
115
|
- 0
|
105
116
|
version: "0"
|
106
117
|
requirements: []
|
107
118
|
|
108
119
|
rubyforge_project: cloudyscripts
|
109
|
-
rubygems_version: 1.3.
|
120
|
+
rubygems_version: 1.3.7
|
110
121
|
signing_key:
|
111
122
|
specification_version: 3
|
112
123
|
summary: Scripts to facilitate programming for infrastructure clouds.
|