aws-watcher 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/aws_watcher.rb +13 -10
- data/lib/aws-watcher.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bf8eeafa65fe3b5e1c3be1c34c3d6a5bb012379
|
4
|
+
data.tar.gz: 4c71a451b443e2da69140601bc10f9aac7eb5208
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b0839c4435fa5cbb5012030fbc1bb99ec8c060ebfc0118fbdd6fe6aa5457de4a783a41b438da2f55cb235356e4f5163cdecb8f33155cf9c4970051093d05723
|
7
|
+
data.tar.gz: b9cefb0f11336db142c711e6023f4229894318620adaf2d9d0f542d883f8788766e4aae051d7d0f062a3aa73307eeb12e991cf67f1f1a48fb2489c3754be04b1
|
data/bin/aws_watcher.rb
CHANGED
@@ -53,9 +53,9 @@ loop do
|
|
53
53
|
visibility_timeout: 3
|
54
54
|
).messages
|
55
55
|
|
56
|
-
puts "Got #{messages.size}
|
56
|
+
puts "Got #{messages.size} message(s)"
|
57
57
|
messages.each_with_index do |message, index|
|
58
|
-
puts "Looking at message number #{index}"
|
58
|
+
puts "Looking at message number #{index}" unless messages.size.zero?
|
59
59
|
body = AwsCleaner.new.parse(message.body)
|
60
60
|
id = message.receipt_handle
|
61
61
|
now = Time.now.utc
|
@@ -67,18 +67,22 @@ loop do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
@instance_id = AwsCleaner.new.process_message(body)
|
70
|
-
chef_node = AwsCleaner::Chef.get_chef_node_name(@instance_id, @config)
|
71
70
|
elapsed_time = now - launch_time
|
72
71
|
p "launch_time: #{launch_time}"
|
73
72
|
p "now: #{now}"
|
74
|
-
# if the node
|
73
|
+
# if the node is no longer in aws we don't care anymore
|
74
|
+
# we can delete the message message
|
75
|
+
if !AwsWatcher::EC2.instance_alive?(@instance_id, @config)
|
76
|
+
p "instance: #{@instance_id} is not in aws anymore, removing message from queue"
|
77
|
+
AwsCleaner.new.delete_message(id, @config)
|
78
|
+
# if the node exists in chef it has bootstrapped
|
75
79
|
# so we can delete the message
|
76
|
-
|
80
|
+
elsif AwsWatcher::Chef.registered?(@instance_id, @config)
|
77
81
|
p "instance: #{@instance_id} has bootstrapped, removing message from queue"
|
78
82
|
AwsCleaner.new.delete_message(id, @config)
|
79
|
-
|
83
|
+
else
|
84
|
+
p "instance: #{@instance_id}, launched: #{launch_time}, elapsed: #{elapsed_time} seconds"
|
80
85
|
end
|
81
|
-
p "instance: #{@instance_id}, launched: #{launch_time}, elapsed: #{elapsed_time}"
|
82
86
|
# if the elapsed time is less than how long we consider
|
83
87
|
# a 'normal' converge time that's ok we just move on and
|
84
88
|
# wait for another pass
|
@@ -96,9 +100,8 @@ loop do
|
|
96
100
|
p 'node elaspsed time is too high'
|
97
101
|
notification = "node: #{@instance_id} has not checked in, "
|
98
102
|
notification += 'it should have converged by: '
|
99
|
-
notification += "#{@config[:bootstrap][:converged_by]} "
|
100
|
-
notification +=
|
101
|
-
notification += "running since: #{elapsed_time}"
|
103
|
+
notification += "#{@config[:bootstrap][:converged_by]} seconds "
|
104
|
+
notification += "and has been running since: #{launch_time}"
|
102
105
|
AwsCleaner::Notify.notify_chat(notification, @config)
|
103
106
|
end
|
104
107
|
end
|
data/lib/aws-watcher.rb
CHANGED
@@ -3,6 +3,15 @@ class AwsWatcher
|
|
3
3
|
require 'aws_cleaner/aws_cleaner.rb'
|
4
4
|
module Chef
|
5
5
|
include AwsCleaner::Chef
|
6
|
+
def self.registered?(instance_id, config)
|
7
|
+
chef = AwsCleaner::Chef.client(config)
|
8
|
+
results = chef.search.query(:node, "ec2_instance_id:#{instance_id} OR chef_provisioning_reference_server_id:#{instance_id}")
|
9
|
+
if results.rows.empty?
|
10
|
+
false
|
11
|
+
else
|
12
|
+
true
|
13
|
+
end
|
14
|
+
end
|
6
15
|
end
|
7
16
|
|
8
17
|
module SQS
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-watcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Abrams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|