big_brother 0.8.7 → 0.8.8

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -3,6 +3,7 @@
3
3
  *.swp
4
4
  .bundle
5
5
  .config
6
+ .pc
6
7
  .vagrant
7
8
  .yardoc
8
9
  Gemfile.lock
@@ -10,6 +11,8 @@ InstalledFiles
10
11
  Vagrantfile
11
12
  _yardoc
12
13
  coverage
14
+ debian/big-brother
15
+ debian/big-brother.debhelper.log
13
16
  doc/
14
17
  lib/bundler/man
15
18
  pkg
data/.travis.yml CHANGED
@@ -3,3 +3,6 @@ rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
5
  sudo: false
6
+ notifications:
7
+ email:
8
+ - blue-ci-notifications@getbraintree.com
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://secure.travis-ci.org/braintree/big_brother.png)](http://travis-ci.org/braintree/big_brother)
4
4
 
5
- TODO: Write a gem description
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
@@ -0,0 +1,2 @@
1
+ # FIXME: READMEs found
2
+ # README.md
@@ -0,0 +1,6 @@
1
+ # Automatically added by dh_installinit
2
+ if [ -x "/etc/init.d/bigbro" ]; then
3
+ update-rc.d bigbro defaults >/dev/null
4
+ invoke-rc.d bigbro start || exit $?
5
+ fi
6
+ # End automatically added section
@@ -0,0 +1,5 @@
1
+ # Automatically added by dh_installinit
2
+ if [ "$1" = "purge" ] ; then
3
+ update-rc.d bigbro remove >/dev/null
4
+ fi
5
+ # End automatically added section
@@ -0,0 +1,5 @@
1
+ # Automatically added by dh_installinit
2
+ if [ -x "/etc/init.d/bigbro" ]; then
3
+ invoke-rc.d bigbro stop || exit $?
4
+ fi
5
+ # End automatically added section
@@ -0,0 +1,2 @@
1
+ ruby:Versions=ruby1.9.1
2
+ misc:Depends=
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
@@ -0,0 +1,7 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new(:spec) do |spec|
4
+ spec.pattern = './spec/**/*_spec.rb'
5
+ end
6
+
7
+ task :default => :spec
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
@@ -0,0 +1,2 @@
1
+ version=3
2
+ http://pkg-ruby-extras.alioth.debian.org/cgi-bin/gemwatch/big_brother .*/big_brother-(.*).tar.gz
@@ -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
@@ -1,3 +1,3 @@
1
1
  module BigBrother
2
- VERSION = "0.8.7"
2
+ VERSION = "0.8.8"
3
3
  end
@@ -58,18 +58,15 @@ CombinedWeight: 300
58
58
  RESPONSE_BODY
59
59
  end
60
60
 
61
- it "attempts to synchronize the node if it is not running" do
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/test"
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
- @stub_executor.add_response("ipvsadm --save --numeric", <<-OUTPUT, 0)
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')
@@ -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
- server = StubServer.new(<<HTTP, response_time, 9001, '127.0.0.1')
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
- server.stop
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.7
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: 2015-12-07 00:00:00.000000000 Z
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: 1.8.23
314
+ rubygems_version: 2.0.14
327
315
  signing_key:
328
- specification_version: 3
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