cap-rightscale 0.2.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/cap-rightscale.gemspec +1 -1
- data/lib/cap-rightscale/configuration/rightscale.rb +27 -34
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/cap-rightscale.gemspec
CHANGED
@@ -76,25 +76,13 @@ start = Time.now
|
|
76
76
|
|
77
77
|
host_list = get_rs_instance.__send__(:array_instances, array.id).select {|i| i[:state] == "operational"}.map do |instance|
|
78
78
|
hostname = instance[:nickname].sub(/ #[0-9]+$/, "-%03d" % instance[:nickname].match(/[0-9]+$/).to_s.to_i)
|
79
|
-
hostname << ".#{_domain}" if _domain
|
79
|
+
hostname << ".#{_domain}" if _domain && hostname.match(/#{_domain}/).nil?
|
80
80
|
ip = use_public_ip ? instance[:ip_address] : instance[:private_ip_address]
|
81
81
|
|
82
82
|
logger.info("Found server: #{hostname}(#{ip})")
|
83
83
|
use_nickname ? hostname : ip
|
84
84
|
end
|
85
|
-
|
86
|
-
if validate_echo
|
87
|
-
threads = []
|
88
|
-
host_list.each do |host|
|
89
|
-
puts host
|
90
|
-
threads << Thread.new {Ping.pingecho(host)}
|
91
|
-
end
|
92
|
-
threads.each.with_index do |t,i|
|
93
|
-
host_list[i] = nil if t.value == false
|
94
|
-
end
|
95
|
-
threads.clear
|
96
|
-
host_list.delete(nil)
|
97
|
-
end
|
85
|
+
host_list = _valid_echo(host_list) if validate_echo
|
98
86
|
|
99
87
|
if host_list && host_list.size > 0
|
100
88
|
role(role, params) { host_list }
|
@@ -138,30 +126,18 @@ start = Time.now
|
|
138
126
|
# Request RightScale API
|
139
127
|
dept = get_rs_instance.__send__(:deployment, _dept_id, :server_settings => 'true')
|
140
128
|
logger.info("querying rightscale for servers #{_name_prefix} in deployment #{dept.nickname}...")
|
141
|
-
|
142
|
-
srvs = dept.servers
|
129
|
+
srvs = dept.servers.select {|s| s[:state] == "operational"}
|
143
130
|
srvs = srvs.select {|s| /#{_name_prefix}/ =~ s[:nickname]} if _name_prefix
|
144
131
|
|
145
132
|
host_list = srvs.map do |server|
|
146
133
|
hostname = server[:nickname]
|
147
|
-
hostname << ".#{_domain}" if _domain
|
134
|
+
hostname << ".#{_domain}" if _domain && hostname.match(/#{_domain}/).nil?
|
148
135
|
ip = use_public_ip ? server[:settings][:ip_address] : server[:settings][:private_ip_address]
|
149
136
|
|
150
137
|
logger.info("Found server: #{hostname}(#{ip})")
|
151
138
|
use_nickname ? hostname : ip
|
152
139
|
end
|
153
|
-
|
154
|
-
if validate_echo
|
155
|
-
threads = []
|
156
|
-
host_list.each do |host|
|
157
|
-
threads << Thread.new {Ping.pingecho(host)}
|
158
|
-
end
|
159
|
-
threads.each.with_index do |t,i|
|
160
|
-
host_list[i] = nil unless t.value
|
161
|
-
end
|
162
|
-
threads.clear
|
163
|
-
host_list.delete(nil)
|
164
|
-
end
|
140
|
+
host_list = _valid_echo(host_list) if validate_echo
|
165
141
|
|
166
142
|
if host_list && host_list.size > 0
|
167
143
|
role(role, params) { host_list }
|
@@ -221,16 +197,13 @@ start = Time.now
|
|
221
197
|
if found_ids.size > 0
|
222
198
|
host_list = srvs.select {|s| found_ids.include?(s[:href].match(/[0-9]+$/).to_s)}.map do |server|
|
223
199
|
hostname = server[:nickname]
|
224
|
-
hostname << ".#{_domain}" if _domain
|
200
|
+
hostname << ".#{_domain}" if _domain && hostname.match(/#{_domain}/).nil?
|
225
201
|
ip = use_public_ip ? server[:settings][:ip_address] : server[:settings][:private_ip_address]
|
226
|
-
if validate_echo
|
227
|
-
next unless Ping.pingecho(ip)
|
228
|
-
end
|
229
202
|
|
230
203
|
logger.info("Found server: #{hostname}(#{ip})")
|
231
204
|
use_nickname ? hostname : ip
|
232
205
|
end
|
233
|
-
host_list
|
206
|
+
host_list = _valid_echo(host_list) if validate_echo
|
234
207
|
end
|
235
208
|
|
236
209
|
if host_list && host_list.size > 0
|
@@ -301,6 +274,26 @@ puts "Time: #{Time.now - start}"
|
|
301
274
|
end
|
302
275
|
end
|
303
276
|
|
277
|
+
def _valid_echo(host_list)
|
278
|
+
hosts = host_list
|
279
|
+
threads = []
|
280
|
+
hosts.each do |host|
|
281
|
+
threads << Thread.new {Ping.pingecho(host)}
|
282
|
+
end
|
283
|
+
threads.each_with_index do |t,i|
|
284
|
+
unless t.value
|
285
|
+
logger.info("Server dead: #{hosts[i]}")
|
286
|
+
hosts[i] = nil
|
287
|
+
else
|
288
|
+
logger.info("Server alive: #{hosts[i]}")
|
289
|
+
end
|
290
|
+
end
|
291
|
+
hosts.delete(nil)
|
292
|
+
threads.clear
|
293
|
+
|
294
|
+
hosts
|
295
|
+
end
|
296
|
+
|
304
297
|
def validate_echo
|
305
298
|
@validate_echo ||= false
|
306
299
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cap-rightscale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Satoshi Ohki
|