deputy 0.1.37 → 0.1.38
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/deputy.gemspec +4 -4
- data/lib/deputy.rb +9 -10
- data/spec/deputy_spec.rb +29 -3
- metadata +4 -9
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.38
|
data/deputy.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{deputy}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.38"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-16}
|
13
13
|
s.default_executable = %q{deputy}
|
14
14
|
s.email = %q{mirko@dawanda.com}
|
15
15
|
s.executables = ["deputy"]
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.homepage = %q{http://github.com/dawanda/deputy}
|
27
27
|
s.rdoc_options = ["--charset=UTF-8"]
|
28
28
|
s.require_paths = ["lib"]
|
29
|
-
s.rubygems_version = %q{1.3.
|
29
|
+
s.rubygems_version = %q{1.3.6}
|
30
30
|
s.summary = %q{Report to the sheriff}
|
31
31
|
s.test_files = [
|
32
32
|
"spec/deputy_spec.rb",
|
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
38
38
|
s.specification_version = 3
|
39
39
|
|
40
|
-
if Gem::Version.new(Gem::
|
40
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
41
41
|
else
|
42
42
|
end
|
43
43
|
else
|
data/lib/deputy.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
require 'open-uri'
|
3
3
|
require 'cgi'
|
4
|
+
require "socket"
|
4
5
|
|
5
6
|
def eval_and_fetch_constants(x)
|
6
7
|
old = Module.constants.map{|c| c.to_s}
|
@@ -117,16 +118,12 @@ module Deputy
|
|
117
118
|
|
118
119
|
def self.send_report(group, value)
|
119
120
|
raise "separate #{group} with a ." unless group.split('.',2).size == 2
|
120
|
-
get "/notify?group=#{CGI.escape group}&value=#{CGI.escape value.to_s}"
|
121
|
+
get "/notify?group=#{CGI.escape group}&value=#{CGI.escape value.to_s}&hostname=#{Socket.gethostname}"
|
121
122
|
end
|
122
123
|
|
123
124
|
def self.get(path, options = {})
|
124
|
-
|
125
125
|
url = "#{sheriff_url}#{path}"
|
126
|
-
|
127
|
-
auth = [$1, $2].compact
|
128
|
-
options[:http_basic_authentication] = auth if auth.size == 2
|
129
|
-
options['REMOTE_HOST'] = hostname
|
126
|
+
options[:http_basic_authentication] = extract_auth_from_url!(url)
|
130
127
|
|
131
128
|
Timeout.timeout(config['timeout']||10) do
|
132
129
|
open(url, options).read
|
@@ -148,10 +145,6 @@ module Deputy
|
|
148
145
|
raise "No deputy.yml found in /etc or #{home}"
|
149
146
|
end
|
150
147
|
|
151
|
-
def self.hostname
|
152
|
-
File.read('/etc/hostname') rescue "hostname_unknown"
|
153
|
-
end
|
154
|
-
|
155
148
|
# stolen from klarlack -- http://github.com/schoefmax/klarlack
|
156
149
|
# to get an reliable timeout that wont fail on other platforms
|
157
150
|
# or if sytem_timer is missing
|
@@ -173,4 +166,10 @@ module Deputy
|
|
173
166
|
require 'timeout'
|
174
167
|
Timeout
|
175
168
|
end
|
169
|
+
|
170
|
+
def self.extract_auth_from_url!(url)
|
171
|
+
url.sub!(%r{//(.*?):(.*?)@}, '//')
|
172
|
+
auth = [$1, $2].compact
|
173
|
+
auth.empty? ? nil : auth
|
174
|
+
end
|
176
175
|
end
|
data/spec/deputy_spec.rb
CHANGED
@@ -32,6 +32,10 @@ class OptionsPlugin < Scout::Plugin
|
|
32
32
|
end
|
33
33
|
|
34
34
|
describe Deputy do
|
35
|
+
before do
|
36
|
+
Socket.stub!(:gethostname).and_return 'my_host'
|
37
|
+
end
|
38
|
+
|
35
39
|
it "has a VERSION" do
|
36
40
|
Deputy::VERSION.should =~ /^\d+\.\d+\.\d+$/
|
37
41
|
end
|
@@ -143,7 +147,7 @@ describe Deputy do
|
|
143
147
|
$notify = 0
|
144
148
|
Deputy.stub!(:sheriff_url).and_return 'http://sheri.ff'
|
145
149
|
FakeWeb.register_uri(:get, "http://sheri.ff/plugins.rb", :body => klass('C', :code => '$notify=1'))
|
146
|
-
FakeWeb.register_uri(:get, "http://sheri.ff/notify?group=Deputies.finished&value=1", :body => 'OK')
|
150
|
+
FakeWeb.register_uri(:get, "http://sheri.ff/notify?group=Deputies.finished&value=1&hostname=my_host", :body => 'OK')
|
147
151
|
Deputy.run_plugins
|
148
152
|
$notify.should == 1
|
149
153
|
end
|
@@ -152,14 +156,36 @@ describe Deputy do
|
|
152
156
|
describe :send_report do
|
153
157
|
it "sends a report" do
|
154
158
|
Deputy.stub!(:sheriff_url).and_return 'http://sheri.ff'
|
155
|
-
FakeWeb.register_uri(:get, "http://sheri.ff/notify?group=Xxx.yyy&value=123", :body => 'OK')
|
159
|
+
FakeWeb.register_uri(:get, "http://sheri.ff/notify?group=Xxx.yyy&value=123&hostname=my_host", :body => 'OK')
|
156
160
|
Deputy.send_report('Xxx.yyy', '123').should == 'OK'
|
157
161
|
end
|
158
162
|
|
159
163
|
it "escapes metric names" do
|
160
164
|
Deputy.stub!(:sheriff_url).and_return 'http://sheri.ff'
|
161
|
-
FakeWeb.register_uri(:get, "http://sheri.ff/notify?group=Xxx.yy%3Fy&value=123", :body => 'OK')
|
165
|
+
FakeWeb.register_uri(:get, "http://sheri.ff/notify?group=Xxx.yy%3Fy&value=123&hostname=my_host", :body => 'OK')
|
162
166
|
Deputy.send_report('Xxx.yy?y', '123').should == 'OK'
|
163
167
|
end
|
164
168
|
end
|
169
|
+
|
170
|
+
describe :extract_auth_from_url! do
|
171
|
+
it "finds auth" do
|
172
|
+
Deputy.extract_auth_from_url!('http://x:y@foo').should == ['x','y']
|
173
|
+
end
|
174
|
+
|
175
|
+
it "removes auth from url" do
|
176
|
+
url = 'http://x:y@foo'
|
177
|
+
Deputy.extract_auth_from_url!(url)
|
178
|
+
url.should == 'http://foo'
|
179
|
+
end
|
180
|
+
|
181
|
+
it "returns nil when auth was not found" do
|
182
|
+
Deputy.extract_auth_from_url!('http://foo').should == nil
|
183
|
+
end
|
184
|
+
|
185
|
+
it "does not alter url when auth was not found" do
|
186
|
+
url = 'http://foo'
|
187
|
+
Deputy.extract_auth_from_url!(url)
|
188
|
+
url.should == 'http://foo'
|
189
|
+
end
|
190
|
+
end
|
165
191
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deputy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 81
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
8
|
+
- 38
|
9
|
+
version: 0.1.38
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Michael Grosser
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-07-
|
17
|
+
date: 2010-07-16 00:00:00 +02:00
|
19
18
|
default_executable: deputy
|
20
19
|
dependencies: []
|
21
20
|
|
@@ -46,27 +45,23 @@ rdoc_options:
|
|
46
45
|
require_paths:
|
47
46
|
- lib
|
48
47
|
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
48
|
requirements:
|
51
49
|
- - ">="
|
52
50
|
- !ruby/object:Gem::Version
|
53
|
-
hash: 3
|
54
51
|
segments:
|
55
52
|
- 0
|
56
53
|
version: "0"
|
57
54
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
55
|
requirements:
|
60
56
|
- - ">="
|
61
57
|
- !ruby/object:Gem::Version
|
62
|
-
hash: 3
|
63
58
|
segments:
|
64
59
|
- 0
|
65
60
|
version: "0"
|
66
61
|
requirements: []
|
67
62
|
|
68
63
|
rubyforge_project:
|
69
|
-
rubygems_version: 1.3.
|
64
|
+
rubygems_version: 1.3.6
|
70
65
|
signing_key:
|
71
66
|
specification_version: 3
|
72
67
|
summary: Report to the sheriff
|