synapse 0.13.8 → 0.14.0

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.
@@ -30,7 +30,15 @@ class FakeAWSInstance
30
30
  end
31
31
 
32
32
  describe Synapse::ServiceWatcher::Ec2tagWatcher do
33
- let(:mock_synapse) { double }
33
+ let(:mock_synapse) do
34
+ mock_synapse = instance_double(Synapse::Synapse)
35
+ mockgenerator = Synapse::ConfigGenerator::BaseGenerator.new()
36
+ allow(mock_synapse).to receive(:available_generators).and_return({
37
+ 'haproxy' => mockgenerator
38
+ })
39
+ allow(mock_synapse).to receive(:reconfigure!).and_return(true)
40
+ mock_synapse
41
+ end
34
42
  subject { Synapse::ServiceWatcher::Ec2tagWatcher.new(basic_config, mock_synapse) }
35
43
 
36
44
  let(:basic_config) do
@@ -79,6 +87,12 @@ describe Synapse::ServiceWatcher::Ec2tagWatcher do
79
87
  args
80
88
  end
81
89
 
90
+ def munge_arg(name, new_value)
91
+ args = basic_config.clone
92
+ args[name] = new_value
93
+ args
94
+ end
95
+
82
96
  describe '#new' do
83
97
  let(:args) { basic_config }
84
98
 
@@ -102,19 +116,33 @@ describe Synapse::ServiceWatcher::Ec2tagWatcher do
102
116
  Synapse::ServiceWatcher::Ec2tagWatcher.new(remove_discovery_arg('aws_secret_access_key'), mock_synapse)
103
117
  }.not_to raise_error
104
118
  end
105
- it 'complains if server_port_override is missing' do
119
+ it 'complains if server_port_override and backend_port_override are missing' do
106
120
  expect {
107
121
  Synapse::ServiceWatcher::Ec2tagWatcher.new(remove_haproxy_arg('server_port_override'), mock_synapse)
108
- }.to raise_error(ArgumentError, /Missing server_port_override/)
122
+ }.to raise_error(ArgumentError, /Missing backend_port_override/)
123
+ end
124
+ it 'does not break if backend_port_override is set' do
125
+ expect {
126
+ Synapse::ServiceWatcher::Ec2tagWatcher.new(munge_arg('backend_port_override', 1234), mock_synapse)
127
+ }.not_to raise_error
109
128
  end
110
129
  end
111
130
 
112
131
  context 'invalid data' do
113
132
  it 'complains if the haproxy server_port_override is not a number' do
114
- expect {
115
- Synapse::ServiceWatcher::Ec2tagWatcher.new(munge_haproxy_arg('server_port_override', '80deadbeef'), mock_synapse)
116
- }.to raise_error(ArgumentError, /Invalid server_port_override/)
133
+ expect {
134
+ Synapse::ServiceWatcher::Ec2tagWatcher.new(munge_haproxy_arg('server_port_override', '80deadbeef'), mock_synapse)
135
+ }.to raise_error(ArgumentError, /Invalid backend_port_override/)
136
+ end
137
+ it 'complains if the backend_port_override is not a number' do
138
+ config = remove_haproxy_arg('server_port_override')
139
+ expect(config['haproxy']['backend_port_override']).to eq(nil)
140
+ config = munge_arg('backend_port_override', '80deadbeef')
141
+ expect {
142
+ Synapse::ServiceWatcher::Ec2tagWatcher.new(config, mock_synapse)
143
+ }.to raise_error(ArgumentError, /Invalid backend_port_override/)
117
144
  end
145
+
118
146
  end
119
147
  end
120
148
 
@@ -182,9 +210,15 @@ describe Synapse::ServiceWatcher::Ec2tagWatcher do
182
210
  end
183
211
 
184
212
  it 'sets the backend port to server_port_override for all backends' do
185
- backends = subject.send(:discover_instances)
213
+ discovered_backends = subject.send(:discover_instances)
214
+ expect(
215
+ discovered_backends.all? { |b| b['port'].nil? }
216
+ ).to be_truthy
217
+
218
+ # Set backends is responsible for actually populating ports
219
+ expect(subject.send(:set_backends, discovered_backends)).to eq(true)
186
220
  expect(
187
- backends.all? { |b| b['port'] == basic_config['haproxy']['server_port_override'] }
221
+ subject.backends.all? { |b| b['port'] == basic_config['haproxy']['server_port_override'] }
188
222
  ).to be_truthy
189
223
  end
190
224
  end
@@ -2,7 +2,14 @@ require 'spec_helper'
2
2
  require 'synapse/service_watcher/marathon'
3
3
 
4
4
  describe Synapse::ServiceWatcher::MarathonWatcher do
5
- let(:mocksynapse) { double() }
5
+ let(:mocksynapse) do
6
+ mock_synapse = instance_double(Synapse::Synapse)
7
+ mockgenerator = Synapse::ConfigGenerator::BaseGenerator.new()
8
+ allow(mock_synapse).to receive(:available_generators).and_return({
9
+ 'haproxy' => mockgenerator
10
+ })
11
+ mock_synapse
12
+ end
6
13
  let(:marathon_host) { '127.0.0.1' }
7
14
  let(:marathon_port) { '8080' }
8
15
  let(:app_name) { 'foo' }
@@ -2,7 +2,14 @@ require 'spec_helper'
2
2
  require 'synapse/service_watcher'
3
3
 
4
4
  describe Synapse::ServiceWatcher do
5
- let(:mock_synapse) { double }
5
+ let(:mock_synapse) do
6
+ mock_synapse = instance_double(Synapse::Synapse)
7
+ mockgenerator = Synapse::ConfigGenerator::BaseGenerator.new()
8
+ allow(mock_synapse).to receive(:available_generators).and_return({
9
+ 'haproxy' => mockgenerator
10
+ })
11
+ mock_synapse
12
+ end
6
13
  subject { Synapse::ServiceWatcher }
7
14
  let(:config) do
8
15
  {
@@ -3,7 +3,14 @@ require 'synapse/service_watcher/zookeeper'
3
3
  require 'synapse/service_watcher/zookeeper_dns'
4
4
 
5
5
  describe Synapse::ServiceWatcher::ZookeeperWatcher do
6
- let(:mock_synapse) { double }
6
+ let(:mock_synapse) do
7
+ mock_synapse = instance_double(Synapse::Synapse)
8
+ mockgenerator = Synapse::ConfigGenerator::BaseGenerator.new()
9
+ allow(mock_synapse).to receive(:available_generators).and_return({
10
+ 'haproxy' => mockgenerator
11
+ })
12
+ mock_synapse
13
+ end
7
14
  let(:config) do
8
15
  {
9
16
  'name' => 'test',
@@ -22,6 +22,7 @@ haproxy:
22
22
  config_file_path: "/etc/haproxy/haproxy.cfg"
23
23
  do_writes: false
24
24
  do_reloads: false
25
+ do_socket: false
25
26
  global:
26
27
  - global_test_option
27
28
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synapse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.8
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Rhoads
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-09-01 00:00:00.000000000 Z
13
+ date: 2017-03-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: aws-sdk
@@ -197,8 +197,11 @@ files:
197
197
  - config/synapse_services/service2.json
198
198
  - lib/synapse.rb
199
199
  - lib/synapse/base.rb
200
- - lib/synapse/file_output.rb
201
- - lib/synapse/haproxy.rb
200
+ - lib/synapse/config_generator.rb
201
+ - lib/synapse/config_generator/README.md
202
+ - lib/synapse/config_generator/base.rb
203
+ - lib/synapse/config_generator/file_output.rb
204
+ - lib/synapse/config_generator/haproxy.rb
202
205
  - lib/synapse/log.rb
203
206
  - lib/synapse/service_watcher.rb
204
207
  - lib/synapse/service_watcher/README.md