blessing 1.0.0 → 1.0.1
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/blessing.gemspec +2 -2
- data/lib/blessing/runner.rb +12 -7
- data/spec/blessing_runner_spec.rb +12 -4
- data/spec/support/matchers/pid_matchers.rb +10 -2
- metadata +15 -15
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.1
|
data/blessing.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "blessing"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Laas Toom"]
|
12
|
-
s.date = "2011-
|
12
|
+
s.date = "2011-11-04"
|
13
13
|
s.description = "A group of Unicorns is called a blessing. Blessing gem provides an easy way to manage multiple Unicorn! Rack servers."
|
14
14
|
s.email = "laas.toom@gmail.com"
|
15
15
|
s.executables = ["blessing"]
|
data/lib/blessing/runner.rb
CHANGED
@@ -92,10 +92,11 @@ module Blessing
|
|
92
92
|
|
93
93
|
# See if this Unicorn is alread dead
|
94
94
|
if dead?
|
95
|
-
logger.warn "This Unicorn is dead: PID=#{pid}, conf=#{@config_file.inspect}"
|
96
95
|
unless resurrect
|
96
|
+
logger.warn "Won't touch dead unicorn: PID=#{pid}, conf=#{@config_file.inspect}"
|
97
97
|
return
|
98
98
|
else
|
99
|
+
logger.warn "This unicorn is dead: PID=#{pid}, conf=#{@config_file.inspect}"
|
99
100
|
logger.warn "Resurrecting..."
|
100
101
|
end
|
101
102
|
end
|
@@ -109,11 +110,13 @@ module Blessing
|
|
109
110
|
ensure_running
|
110
111
|
|
111
112
|
# if it was dead and is now running, we are successful
|
112
|
-
if dead?
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
113
|
+
if dead?
|
114
|
+
if running?
|
115
|
+
logger.warn "Successfully resurrected (necromancy +1)!"
|
116
|
+
@dead = false
|
117
|
+
else
|
118
|
+
logger.warn "Resurrection failed!"
|
119
|
+
end
|
117
120
|
end
|
118
121
|
end
|
119
122
|
|
@@ -129,8 +132,10 @@ module Blessing
|
|
129
132
|
|
130
133
|
# Verify the Unicorn! process is running
|
131
134
|
def running?
|
135
|
+
p = pid
|
136
|
+
return false if p.nil?
|
132
137
|
begin
|
133
|
-
Process.kill 0,
|
138
|
+
Process.kill 0, p
|
134
139
|
true
|
135
140
|
rescue Errno::ESRCH
|
136
141
|
# just verifying; logging should be done elsewhere
|
@@ -55,13 +55,21 @@ describe Blessing::Runner do
|
|
55
55
|
runner = Blessing::Runner.new(@conf)
|
56
56
|
|
57
57
|
pid = 12345
|
58
|
-
runner.should_receive(:pid).and_return(pid)
|
59
|
-
Process.should_receive(:kill).with(0, pid).and_return(true)
|
58
|
+
runner.should_receive(:pid).ordered.and_return(pid)
|
59
|
+
Process.should_receive(:kill).ordered.with(0, pid).and_return(true)
|
60
60
|
runner.running?.should be_true
|
61
61
|
|
62
62
|
pid = 22345
|
63
|
-
runner.should_receive(:pid).and_return(pid)
|
64
|
-
Process.should_receive(:kill).with(0, pid) { raise Errno::ESRCH, "TestException" }
|
63
|
+
runner.should_receive(:pid).ordered.and_return(pid)
|
64
|
+
Process.should_receive(:kill).ordered.with(0, pid) { raise Errno::ESRCH, "TestException" }
|
65
|
+
runner.running?.should_not be_true
|
66
|
+
end
|
67
|
+
|
68
|
+
it "assumes not running when PID is missing" do
|
69
|
+
runner = Blessing::Runner.new(@conf)
|
70
|
+
|
71
|
+
runner.should_receive(:pid).and_return(nil)
|
72
|
+
Process.should_not_receive(:kill)
|
65
73
|
runner.running?.should_not be_true
|
66
74
|
end
|
67
75
|
|
@@ -2,12 +2,20 @@
|
|
2
2
|
RSpec::Matchers.define :contain_a_pid_number do
|
3
3
|
match do |actual|
|
4
4
|
if File.exists? actual
|
5
|
-
pid = File.read(actual).chomp
|
6
|
-
pid.to_i.to_s == pid.chomp
|
5
|
+
@pid = File.read(actual).chomp
|
6
|
+
@pid.to_i.to_s == @pid.chomp
|
7
7
|
else
|
8
8
|
false
|
9
9
|
end
|
10
10
|
end
|
11
|
+
|
12
|
+
failure_message_for_should do |actual|
|
13
|
+
"File #{actual} expected to contain PID number instead of: #{@pid.inspect}"
|
14
|
+
end
|
15
|
+
|
16
|
+
failure_message_for_should_not do |actual|
|
17
|
+
"File #{actual} expected not to contain PID number: #{@pid.inspect}"
|
18
|
+
end
|
11
19
|
end
|
12
20
|
|
13
21
|
# Check that the pid is still running
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blessing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: unicorn
|
16
|
-
requirement: &
|
16
|
+
requirement: &2158816680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2158816680
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: daemons
|
27
|
-
requirement: &
|
27
|
+
requirement: &2158814700 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2158814700
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &2158791100 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.3.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2158791100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &2158788900 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2158788900
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &2158786800 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2158786800
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
requirement: &
|
71
|
+
requirement: &2158785080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2158785080
|
80
80
|
description: A group of Unicorns is called a blessing. Blessing gem provides an easy
|
81
81
|
way to manage multiple Unicorn! Rack servers.
|
82
82
|
email: laas.toom@gmail.com
|
@@ -119,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
119
119
|
version: '0'
|
120
120
|
segments:
|
121
121
|
- 0
|
122
|
-
hash: -
|
122
|
+
hash: -2309482515618915654
|
123
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
124
|
none: false
|
125
125
|
requirements:
|