CloudyScripts 1.9.40 → 1.9.41
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/scripts/ec2/open_port_checker.rb +26 -24
- metadata +15 -4
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.9.
|
15
|
+
s.version = '1.9.41'
|
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.'
|
@@ -63,31 +63,33 @@ class OpenPortChecker < Ec2Script
|
|
63
63
|
def enter
|
64
64
|
@context[:result][:port_checks] = []
|
65
65
|
ec2_helper = Ec2Helper.new(@context[:ec2_api_handler])
|
66
|
-
@context[:ec2_instances]['reservationSet']
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
66
|
+
unless @context[:ec2_instances]['reservationSet'] == nil
|
67
|
+
@context[:ec2_instances]['reservationSet']['item'].each() do |instance_info|
|
68
|
+
instance_id = ec2_helper.get_instance_id(instance_info)
|
69
|
+
@logger.debug("instance_info = #{instance_info.inspect}")
|
70
|
+
instance_ip = ec2_helper.get_instance_prop(instance_info, 'dnsName')
|
71
|
+
instance_state = ec2_helper.get_instance_prop(instance_info, 'instanceState')['name']
|
72
|
+
if instance_state != "running"
|
73
|
+
post_message("ignore instance #{instance_id} since not running")
|
74
|
+
next
|
75
|
+
end
|
76
|
+
sec_groups = ec2_helper.lookup_security_group_names(instance_info)
|
77
|
+
@logger.debug("group lookup for #{instance_id} => #{sec_groups.inspect}")
|
78
|
+
sec_groups.each() do |group_name|
|
79
|
+
port_infos = ec2_helper.lookup_open_ports(group_name, @context[:security_groups])
|
80
|
+
@logger.debug("port_infos for group #{group_name} #{port_infos.inspect}")
|
81
|
+
port_infos.each() do |port_info|
|
82
|
+
result = false
|
83
|
+
begin
|
84
|
+
result = @context[:remote_command_handler].is_port_open?(instance_ip, port_info[:port])
|
85
|
+
post_message("check port #{port_info[:port]} for instance #{instance_id} (on #{instance_ip}) #{result ? "successful" : "failed"}")
|
86
|
+
rescue Exception => e
|
87
|
+
@logger.warn("exception during executing port check: #{e}")
|
88
|
+
end
|
89
|
+
@context[:result][:port_checks] << {:instance => instance_id, :protocol => port_info[:protocol],
|
90
|
+
:port => port_info[:port], :success => result, :group_name => group_name
|
91
|
+
}
|
87
92
|
end
|
88
|
-
@context[:result][:port_checks] << {:instance => instance_id, :protocol => port_info[:protocol],
|
89
|
-
:port => port_info[:port], :success => result, :group_name => group_name
|
90
|
-
}
|
91
93
|
end
|
92
94
|
end
|
93
95
|
end
|
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: 97
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
7
8
|
- 9
|
8
|
-
-
|
9
|
-
version: 1.9.
|
9
|
+
- 41
|
10
|
+
version: 1.9.41
|
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-09-01 00:00:00 +02: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"
|
@@ -270,23 +277,27 @@ rdoc_options: []
|
|
270
277
|
require_paths:
|
271
278
|
- lib
|
272
279
|
required_ruby_version: !ruby/object:Gem::Requirement
|
280
|
+
none: false
|
273
281
|
requirements:
|
274
282
|
- - ">="
|
275
283
|
- !ruby/object:Gem::Version
|
284
|
+
hash: 3
|
276
285
|
segments:
|
277
286
|
- 0
|
278
287
|
version: "0"
|
279
288
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
289
|
+
none: false
|
280
290
|
requirements:
|
281
291
|
- - ">="
|
282
292
|
- !ruby/object:Gem::Version
|
293
|
+
hash: 3
|
283
294
|
segments:
|
284
295
|
- 0
|
285
296
|
version: "0"
|
286
297
|
requirements: []
|
287
298
|
|
288
299
|
rubyforge_project: cloudyscripts
|
289
|
-
rubygems_version: 1.3.
|
300
|
+
rubygems_version: 1.3.7
|
290
301
|
signing_key:
|
291
302
|
specification_version: 3
|
292
303
|
summary: Scripts to facilitate programming for infrastructure clouds.
|