big_brother 0.8.7 → 0.8.8
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/.travis.yml +3 -0
- data/README.md +1 -1
- data/debian/big-brother.bigbro.init +136 -0
- data/debian/big-brother.docs +2 -0
- data/debian/big-brother.postinst.debhelper +6 -0
- data/debian/big-brother.postrm.debhelper +5 -0
- data/debian/big-brother.prerm.debhelper +5 -0
- data/debian/big-brother.substvars +2 -0
- data/debian/changelog +17 -0
- data/debian/compat +1 -0
- data/debian/control +19 -0
- data/debian/copyright +28 -0
- data/debian/files +1 -0
- data/debian/install +1 -0
- data/debian/patches/fix_config_ru_path.patch +11 -0
- data/debian/patches/series +1 -0
- data/debian/ruby-tests.rake +7 -0
- data/debian/rules +18 -0
- data/debian/source/format +1 -0
- data/debian/watch +2 -0
- data/lib/big_brother/cluster_collection.rb +8 -0
- data/lib/big_brother/version.rb +1 -1
- data/spec/big_brother/app_spec.rb +3 -12
- data/spec/big_brother_spec.rb +11 -4
- metadata +27 -39
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 419268b5d42c92c626048f86d0cfacd7026579f5
|
4
|
+
data.tar.gz: 045fcc7ede458c5c9444b6c33a28fe26597950d3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f4fac606e2c724959eb52ba11293afa8057fd8222f88a0d55a2c8c76860a39dfb0f10df34ff163fced66e2c6de136db6c45e1ee57e92ae32574bd8f9a0da06a4
|
7
|
+
data.tar.gz: 5e755d21c54c7175c92da2517384039f85d0cb2efd85488347d432e525ae77ffc1ca292a3d8b32205c3099c307ae06bc5071fcc2be676a0888ebcfa31deaff7c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[](http://travis-ci.org/braintree/big_brother)
|
4
4
|
|
5
|
-
|
5
|
+
Big_brother is an application to manage the weights of servers on an IPVS load balancer. It is designed to talk to litmus_paper (https://github.com/braintree/litmus_paper).
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -0,0 +1,136 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
### BEGIN INIT INFO
|
3
|
+
# Provides: bigbro
|
4
|
+
# Required-Start: $remote_fs $syslog $network
|
5
|
+
# Required-Stop: $remote_fs $syslog
|
6
|
+
# Default-Start: 2 3 4 5
|
7
|
+
# Default-Stop: 0 1 6
|
8
|
+
# Short-Description: IPVS weight coordinator.
|
9
|
+
# Description: Service to allow pacemaker to start and
|
10
|
+
# stop IPVS tunnels. Will monitor health of
|
11
|
+
# the backend nodes.
|
12
|
+
### END INIT INFO
|
13
|
+
|
14
|
+
# Author: Braintreeps <code@getbraintree.com>
|
15
|
+
|
16
|
+
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
17
|
+
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
18
|
+
DESC="HA Service monitor"
|
19
|
+
NAME=bigbro
|
20
|
+
DAEMON=/usr/bin/$NAME
|
21
|
+
INTERPRETER=ruby
|
22
|
+
PIDFILE=/var/run/$NAME.pid
|
23
|
+
DAEMON_ARGS="--port 9000 --config /etc/big_brother/config.yml --data-dir /etc/big_brother --pid $PIDFILE --daemon"
|
24
|
+
SCRIPTNAME=/etc/init.d/$NAME
|
25
|
+
|
26
|
+
# Exit if the package is not installed
|
27
|
+
[ -x "$DAEMON" ] || exit 0
|
28
|
+
|
29
|
+
# Read configuration variable file if it is present
|
30
|
+
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
31
|
+
|
32
|
+
# Define LSB log_* functions.
|
33
|
+
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
34
|
+
. /lib/lsb/init-functions
|
35
|
+
|
36
|
+
# Exit if there is no config file
|
37
|
+
[ -e "/etc/big_brother/config.yml" ] || exit 0
|
38
|
+
|
39
|
+
#
|
40
|
+
# Function that starts the daemon/service
|
41
|
+
#
|
42
|
+
do_start()
|
43
|
+
{
|
44
|
+
# Return
|
45
|
+
# 0 if daemon has been started
|
46
|
+
# 1 if daemon was already running
|
47
|
+
# 2 if daemon could not be started
|
48
|
+
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|
49
|
+
|| return 1
|
50
|
+
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
|
51
|
+
$DAEMON_ARGS \
|
52
|
+
|| return 2
|
53
|
+
# Add code here, if necessary, that waits for the process to be ready
|
54
|
+
# to handle requests from services started subsequently which depend
|
55
|
+
# on this one. As a last resort, sleep for some time.
|
56
|
+
}
|
57
|
+
|
58
|
+
#
|
59
|
+
# Function that stops the daemon/service
|
60
|
+
#
|
61
|
+
do_stop()
|
62
|
+
{
|
63
|
+
# Return
|
64
|
+
# 0 if daemon has been stopped
|
65
|
+
# 1 if daemon was already stopped
|
66
|
+
# 2 if daemon could not be stopped
|
67
|
+
# other if a failure occurred
|
68
|
+
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $INTERPRETER
|
69
|
+
RETVAL="$?"
|
70
|
+
[ "$RETVAL" = 2 ] && return 2
|
71
|
+
# Many daemons don't delete their pidfiles when they exit.
|
72
|
+
rm -f $PIDFILE
|
73
|
+
return "$RETVAL"
|
74
|
+
}
|
75
|
+
|
76
|
+
#
|
77
|
+
# Function that sends a SIGHUP to the daemon/service
|
78
|
+
#
|
79
|
+
do_reload() {
|
80
|
+
#
|
81
|
+
# If the daemon can reload its configuration without
|
82
|
+
# restarting (for example, when it is sent a SIGHUP),
|
83
|
+
# then implement that here.
|
84
|
+
#
|
85
|
+
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $INTERPRETER
|
86
|
+
return 0
|
87
|
+
}
|
88
|
+
|
89
|
+
case "$1" in
|
90
|
+
start)
|
91
|
+
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
92
|
+
do_start
|
93
|
+
case "$?" in
|
94
|
+
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
95
|
+
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
96
|
+
esac
|
97
|
+
;;
|
98
|
+
stop)
|
99
|
+
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
100
|
+
do_stop
|
101
|
+
case "$?" in
|
102
|
+
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
103
|
+
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
104
|
+
esac
|
105
|
+
;;
|
106
|
+
status)
|
107
|
+
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
108
|
+
;;
|
109
|
+
reload|force-reload)
|
110
|
+
log_daemon_msg "Reloading $DESC" "$NAME"
|
111
|
+
do_reload
|
112
|
+
log_end_msg $?
|
113
|
+
;;
|
114
|
+
restart)
|
115
|
+
log_daemon_msg "Restarting $DESC" "$NAME"
|
116
|
+
do_stop
|
117
|
+
case "$?" in
|
118
|
+
0|1)
|
119
|
+
do_start
|
120
|
+
case "$?" in
|
121
|
+
0) log_end_msg 0 ;;
|
122
|
+
1) log_end_msg 1 ;; # Old process is still running
|
123
|
+
*) log_end_msg 1 ;; # Failed to start
|
124
|
+
esac
|
125
|
+
;;
|
126
|
+
*)
|
127
|
+
# Failed to stop
|
128
|
+
log_end_msg 1
|
129
|
+
;;
|
130
|
+
esac
|
131
|
+
;;
|
132
|
+
*)
|
133
|
+
echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
|
134
|
+
exit 3
|
135
|
+
;;
|
136
|
+
esac
|
data/debian/changelog
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
big-brother (0.8.8-1) stable; urgency=low
|
2
|
+
|
3
|
+
* Automatically restore watched sessions on start
|
4
|
+
|
5
|
+
-- Michael Vallaly <mike@braintreepayments.com> Wed, 27 Jan 2016 20:34:36 +0000
|
6
|
+
|
7
|
+
big-brother (0.8.7-2) unstable; urgency=low
|
8
|
+
|
9
|
+
* Add init script
|
10
|
+
|
11
|
+
-- Stephen Gelman <stephen.gelman@braintreepayments.com> Wed, 16 Dec 2015 04:42:07 +0000
|
12
|
+
|
13
|
+
big-brother (0.8.7-1) unstable; urgency=low
|
14
|
+
|
15
|
+
* Initial release (Closes: #nnnn)
|
16
|
+
|
17
|
+
-- Stephen Gelman <stephen.gelman@braintreepayments.com> Wed, 16 Dec 2015 01:10:03 +0000
|
data/debian/compat
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
7
|
data/debian/control
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Source: big-brother
|
2
|
+
Section: ruby
|
3
|
+
Priority: optional
|
4
|
+
Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
|
5
|
+
Uploaders: Stephen Gelman <stephen.gelman@braintreepayments.com>
|
6
|
+
DM-Upload-Allowed: yes
|
7
|
+
Build-Depends: debhelper (>= 7.0.50~), gem2deb (>= 0.3.0~), ruby-rspec, ruby-rack-test, rake
|
8
|
+
Standards-Version: 3.9.3
|
9
|
+
Vcs-Git: git://github.com/braintree/big_brother.git
|
10
|
+
Vcs-Browser: https://github.com/braintree/big_brother
|
11
|
+
Homepage: https://github.com/braintree/big_brother
|
12
|
+
XS-Ruby-Versions: all
|
13
|
+
|
14
|
+
Package: big-brother
|
15
|
+
Architecture: all
|
16
|
+
XB-Ruby-Versions: ${ruby:Versions}
|
17
|
+
Depends: ${shlibs:Depends}, ${misc:Depends}, ruby | ruby-interpreter, thin, ruby-async-rack, ruby-sinatra (>= 1.0.0), ruby-rack-fiber-pool (>= 0.9.3), ruby-eventmachine (>= 1.0.0), ruby-em-http-request (>= 1.0.0), ruby-em-synchrony (>= 1.0.0), ruby-em-resolv-replace (>= 1.1.0), ruby-em-syslog (>= 0.0.2), kwalify (>= 0.7.2)
|
18
|
+
Description: Process to monitor and update weights for servers in an IPVS pool
|
19
|
+
IPVS backend supervisor
|
data/debian/copyright
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
2
|
+
Upstream-Name: big_brother
|
3
|
+
Source: https://github.com/braintree/big_brother
|
4
|
+
|
5
|
+
Files: *
|
6
|
+
Copyright: Copyright (c) 2012 Braintree Payment Solutions LLC
|
7
|
+
.
|
8
|
+
MIT License
|
9
|
+
.
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
11
|
+
a copy of this software and associated documentation files (the
|
12
|
+
"Software"), to deal in the Software without restriction, including
|
13
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
14
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
15
|
+
permit persons to whom the Software is furnished to do so, subject to
|
16
|
+
the following conditions:
|
17
|
+
.
|
18
|
+
The above copyright notice and this permission notice shall be
|
19
|
+
included in all copies or substantial portions of the Software.
|
20
|
+
.
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
22
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
23
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
24
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
25
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
26
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
27
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
28
|
+
|
data/debian/files
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
big-brother_0.8.7-2_all.deb ruby optional
|
data/debian/install
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
config.ru /usr/share/big_brother/
|
@@ -0,0 +1,11 @@
|
|
1
|
+
--- a/lib/big_brother/cli.rb
|
2
|
+
+++ b/lib/big_brother/cli.rb
|
3
|
+
@@ -30,7 +30,7 @@
|
4
|
+
|
5
|
+
opt_parser.parse! args
|
6
|
+
|
7
|
+
- options[:config] = File.expand_path("../../config.ru", File.dirname(__FILE__))
|
8
|
+
+ options[:config] = '/usr/share/big_brother/config.ru'
|
9
|
+
options[:server] = 'thin-with-callbacks'
|
10
|
+
options[:backend] = Thin::Backends::TcpServerWithCallbacks
|
11
|
+
options
|
@@ -0,0 +1 @@
|
|
1
|
+
fix_config_ru_path.patch
|
data/debian/rules
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/make -f
|
2
|
+
#export DH_VERBOSE=1
|
3
|
+
#
|
4
|
+
# Uncomment to ignore all test failures (but the tests will run anyway)
|
5
|
+
#export DH_RUBY_IGNORE_TESTS=all
|
6
|
+
#
|
7
|
+
# Uncomment to ignore some test failures (but the tests will run anyway).
|
8
|
+
# Valid values:
|
9
|
+
#export DH_RUBY_IGNORE_TESTS=ruby1.8 ruby1.9.1 require-rubygems
|
10
|
+
#
|
11
|
+
# If you need to specify the .gemspec (eg there is more than one)
|
12
|
+
#export DH_RUBY_GEMSPEC=gem.gemspec
|
13
|
+
|
14
|
+
%:
|
15
|
+
dh $@ --buildsystem=ruby --with ruby
|
16
|
+
|
17
|
+
override_dh_installinit:
|
18
|
+
dh_installinit --name=bigbro
|
@@ -0,0 +1 @@
|
|
1
|
+
3.0 (quilt)
|
data/debian/watch
ADDED
@@ -13,6 +13,9 @@ module BigBrother
|
|
13
13
|
(@clusters.keys - new_clusters.keys).each do |removed_name|
|
14
14
|
@clusters.delete(removed_name).stop_monitoring!
|
15
15
|
end
|
16
|
+
|
17
|
+
ipvs_state = BigBrother.ipvs.running_configuration
|
18
|
+
|
16
19
|
new_clusters.each do |cluster_name, cluster|
|
17
20
|
if @clusters.key?(cluster_name)
|
18
21
|
current_cluster = @clusters[cluster_name]
|
@@ -21,6 +24,11 @@ module BigBrother
|
|
21
24
|
@clusters[cluster_name] = cluster.incorporate_state(@clusters[cluster_name])
|
22
25
|
else
|
23
26
|
@clusters[cluster_name] = cluster
|
27
|
+
|
28
|
+
if ipvs_state.key?(cluster.fwmark.to_s)
|
29
|
+
BigBrother.logger.info("resuming previously running cluster from kernel state (#{cluster.fwmark})")
|
30
|
+
cluster.start_monitoring!
|
31
|
+
end
|
24
32
|
end
|
25
33
|
end
|
26
34
|
end
|
data/lib/big_brother/version.rb
CHANGED
@@ -58,18 +58,15 @@ CombinedWeight: 300
|
|
58
58
|
RESPONSE_BODY
|
59
59
|
end
|
60
60
|
|
61
|
-
it "attempts to synchronize the
|
61
|
+
it "attempts to synchronize/monitor the cluster if its already running in the kernel" do
|
62
62
|
@stub_executor.add_response("ipvsadm --save --numeric", <<-OUTPUT, 0)
|
63
63
|
-A -f 1 -s wrr
|
64
64
|
-a -f 1 -r 10.0.1.223:80 -i -w 1
|
65
65
|
-a -f 1 -r 10.0.1.224:80 -i -w 1
|
66
|
-
-A -f 2 -s wrr
|
67
|
-
-a -f 2 -r 10.0.1.225:80 -i -w 1
|
68
66
|
OUTPUT
|
69
67
|
BigBrother.configure(TEST_CONFIG)
|
70
|
-
BigBrother.clusters['test'] = Factory.cluster(:name => 'test', :fwmark => 1)
|
71
68
|
|
72
|
-
get "/cluster/
|
69
|
+
get "/cluster/test1"
|
73
70
|
|
74
71
|
last_response.status.should == 200
|
75
72
|
last_response.body.should =~ /^Running: true$/
|
@@ -175,13 +172,7 @@ CombinedWeight: 300
|
|
175
172
|
end
|
176
173
|
|
177
174
|
it "attempts to synchronize the nodes in the cluster" do
|
178
|
-
|
179
|
-
-A -f 100 -s wrr
|
180
|
-
-a -f 100 -r 127.0.1.223:80 -i -w 1
|
181
|
-
-a -f 100 -r 127.0.1.224:80 -i -w 1
|
182
|
-
-A -f 2 -s wrr
|
183
|
-
-a -f 2 -r 10.0.1.225:80 -i -w 1
|
184
|
-
OUTPUT
|
175
|
+
BigBrother.ipvs.stub(:running_configuration).and_return({'100' => ['127.0.1.223', '127.0.1.224']})
|
185
176
|
BigBrother.configure(TEST_CONFIG)
|
186
177
|
first = Factory.node(:address => '127.0.1.223')
|
187
178
|
second = Factory.node(:address => '127.0.1.225')
|
data/spec/big_brother_spec.rb
CHANGED
@@ -31,14 +31,22 @@ describe BigBrother do
|
|
31
31
|
run_in_reactor
|
32
32
|
around(:each) do |spec|
|
33
33
|
response_time = 1 #seconds
|
34
|
-
|
34
|
+
server1 = StubServer.new(<<HTTP, response_time, 9001, '127.0.0.1')
|
35
35
|
HTTP/1.0 200 OK
|
36
36
|
Connection: close
|
37
37
|
|
38
38
|
Health: 50
|
39
39
|
HTTP
|
40
|
+
server2 = StubServer.new(<<HTTP, response_time, 9002, '127.0.0.1')
|
41
|
+
HTTP/1.0 200 OK
|
42
|
+
Connection: close
|
43
|
+
|
44
|
+
Health: 99
|
45
|
+
HTTP
|
46
|
+
|
40
47
|
spec.run
|
41
|
-
|
48
|
+
server1.stop
|
49
|
+
server2.stop
|
42
50
|
end
|
43
51
|
|
44
52
|
it "reconfigures the clusters" do
|
@@ -173,8 +181,7 @@ EOF
|
|
173
181
|
end
|
174
182
|
BigBrother.reconfigure
|
175
183
|
BigBrother.clusters['test1'].nodes.first.path.should == "/test/another/path"
|
176
|
-
|
177
|
-
@stub_executor.commands.last.should include("--weight 50")
|
184
|
+
BigBrother.clusters['test1'].nodes.first.weight.should == 50
|
178
185
|
end
|
179
186
|
end
|
180
187
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: big_brother
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
5
|
-
prerelease:
|
4
|
+
version: 0.8.8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Braintree
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-02-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: thin
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: async-rack
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: sinatra
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rack-fiber_pool
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: eventmachine
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: em-http-request
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: em-synchrony
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: em-resolv-replace
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ~>
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: em-syslog
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ~>
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ~>
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: kwalify
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ~>
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :runtime
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ~>
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: rspec
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ~>
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ~>
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: rack-test
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ~>
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ~>
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -206,23 +181,20 @@ dependencies:
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: rake
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
|
-
- -
|
185
|
+
- - '>='
|
212
186
|
- !ruby/object:Gem::Version
|
213
187
|
version: '0'
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
|
-
- -
|
192
|
+
- - '>='
|
220
193
|
- !ruby/object:Gem::Version
|
221
194
|
version: '0'
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: rake_commit
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
199
|
- - ~>
|
228
200
|
- !ruby/object:Gem::Version
|
@@ -230,7 +202,6 @@ dependencies:
|
|
230
202
|
type: :development
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
206
|
- - ~>
|
236
207
|
- !ruby/object:Gem::Version
|
@@ -255,6 +226,24 @@ files:
|
|
255
226
|
- big_brother.gemspec
|
256
227
|
- bin/bigbro
|
257
228
|
- config.ru
|
229
|
+
- debian/big-brother.bigbro.init
|
230
|
+
- debian/big-brother.docs
|
231
|
+
- debian/big-brother.postinst.debhelper
|
232
|
+
- debian/big-brother.postrm.debhelper
|
233
|
+
- debian/big-brother.prerm.debhelper
|
234
|
+
- debian/big-brother.substvars
|
235
|
+
- debian/changelog
|
236
|
+
- debian/compat
|
237
|
+
- debian/control
|
238
|
+
- debian/copyright
|
239
|
+
- debian/files
|
240
|
+
- debian/install
|
241
|
+
- debian/patches/fix_config_ru_path.patch
|
242
|
+
- debian/patches/series
|
243
|
+
- debian/ruby-tests.rake
|
244
|
+
- debian/rules
|
245
|
+
- debian/source/format
|
246
|
+
- debian/watch
|
258
247
|
- lib/big_brother.rb
|
259
248
|
- lib/big_brother/active_active_cluster.rb
|
260
249
|
- lib/big_brother/active_passive_cluster.rb
|
@@ -305,27 +294,26 @@ files:
|
|
305
294
|
- spec/support/stub_server.rb
|
306
295
|
homepage: https://github.com/braintree/big_brother
|
307
296
|
licenses: []
|
297
|
+
metadata: {}
|
308
298
|
post_install_message:
|
309
299
|
rdoc_options: []
|
310
300
|
require_paths:
|
311
301
|
- lib
|
312
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
313
|
-
none: false
|
314
303
|
requirements:
|
315
|
-
- -
|
304
|
+
- - '>='
|
316
305
|
- !ruby/object:Gem::Version
|
317
306
|
version: '0'
|
318
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
319
|
-
none: false
|
320
308
|
requirements:
|
321
|
-
- -
|
309
|
+
- - '>='
|
322
310
|
- !ruby/object:Gem::Version
|
323
311
|
version: '0'
|
324
312
|
requirements: []
|
325
313
|
rubyforge_project:
|
326
|
-
rubygems_version:
|
314
|
+
rubygems_version: 2.0.14
|
327
315
|
signing_key:
|
328
|
-
specification_version:
|
316
|
+
specification_version: 4
|
329
317
|
summary: Process to monitor and update weights for servers in an IPVS pool
|
330
318
|
test_files:
|
331
319
|
- spec/big_brother/active_active_cluster_spec.rb
|