litmus_paper 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/litmus_paper.rb CHANGED
@@ -22,6 +22,7 @@ require 'facts/loadaverage'
22
22
 
23
23
  require 'litmus_paper/app'
24
24
  require 'litmus_paper/configuration'
25
+ require 'litmus_paper/configuration_file'
25
26
  require 'litmus_paper/dependency/haproxy_backends'
26
27
  require 'litmus_paper/dependency/http'
27
28
  require 'litmus_paper/dependency/tcp'
@@ -37,7 +38,8 @@ require 'litmus_paper/version'
37
38
 
38
39
  module LitmusPaper
39
40
  class << self
40
- attr_reader :services, :config_dir
41
+ extend Forwardable
42
+ def_delegators :@config, :services, :data_directory, :port
41
43
  attr_accessor :logger
42
44
  end
43
45
 
@@ -46,7 +48,7 @@ module LitmusPaper
46
48
  def self.check_service(service_name)
47
49
  Facter.flush
48
50
 
49
- if service = @services[service_name]
51
+ if service = services[service_name]
50
52
  service.current_health
51
53
  else
52
54
  nil
@@ -55,24 +57,17 @@ module LitmusPaper
55
57
 
56
58
  def self.configure(filename)
57
59
  @config_file = filename
58
-
59
- begin
60
- @services = LitmusPaper::Configuration.new(filename).evaluate
61
- rescue Exception
62
- end
63
- end
64
-
65
- def self.config_dir=(path)
66
- @config_dir = Pathname.new(path)
60
+ @config = LitmusPaper::ConfigurationFile.new(filename).evaluate
67
61
  end
68
62
 
69
63
  def self.reload
70
64
  LitmusPaper.logger.info "Reloading configuration"
71
- configure(@config_file)
72
- end
73
-
74
- def self.reset
75
- @services = {}
65
+ begin
66
+ configure(@config_file)
67
+ rescue Exception => e
68
+ LitmusPaper.logger.error "Problem reloading config: #{e.message}"
69
+ LitmusPaper.logger.error e.backtrace.join("\n")
70
+ end
76
71
  end
77
72
  end
78
73
 
@@ -15,7 +15,8 @@ module LitmusPaper
15
15
  if command = Admin.commands[command_name]
16
16
  options = {}
17
17
  request = command.build_request(options, argv)
18
- _litmus_request(options[:host], options[:port], request)
18
+ LitmusPaper.configure(options[:litmus_config])
19
+ _litmus_request('127.0.0.1', LitmusPaper.port, request)
19
20
  else
20
21
  _display_help
21
22
  end
@@ -3,18 +3,15 @@ module LitmusPaper
3
3
  class Admin
4
4
  class Command
5
5
  def self._default_options
6
- options = { :port => 9292, :host => '127.0.0.1' }
6
+ options = { :litmus_config => "/etc/litmus.conf" }
7
7
  end
8
8
 
9
9
  def self._extend_default_parser(options, &block)
10
10
  OptionParser.new do |opts|
11
11
  block.call(opts)
12
12
 
13
- opts.on("-p", "--port=port", Integer, "Port litmus is running on", "Default: 9292") do |port|
14
- options[:port] = port
15
- end
16
- opts.on("-h", "--host=ip", String, ":Host litmus is running on", "Default: localhost") do |host|
17
- options[:host] = host
13
+ opts.on("-c", "--config=file", String, "Litmus configuration file", "Default: /etc/litmus.conf") do |config|
14
+ options[:litmus_config] = config
18
15
  end
19
16
  opts.on("--help", "Show this help message.") { puts opts; exit }
20
17
  end
@@ -9,13 +9,8 @@ module LitmusPaper
9
9
  opts.banner = "Usage: litmus [mongrel, thin, etc] [options]"
10
10
  opts.on("-c", "--config=file", String,
11
11
  "Litmus configuration file", "Default: /etc/litmus.conf") { |v| options[:litmus_config] = v }
12
- opts.on("-D", "--data-dir=path", String,
13
- "Litmus data directory", "Default: /etc/litmus") { |v| options[:config_dir] = v }
14
-
15
12
  opts.separator ""
16
13
 
17
- opts.on("-p", "--port=port", Integer,
18
- "Runs Litmus on the specified port.", "Default: 9292") { |v| options[:Port] = v }
19
14
  opts.on("-b", "--binding=ip", String,
20
15
  "Binds Litmus to the specified ip.", "Default: 0.0.0.0") { |v| options[:Host] = v }
21
16
  opts.on("-d", "--daemon", "Make server run as a Daemon.") { options[:daemonize] = true }
@@ -47,14 +42,14 @@ module LitmusPaper
47
42
  end
48
43
 
49
44
  LitmusPaper.configure(options[:litmus_config])
50
- LitmusPaper.config_dir = options[:config_dir]
45
+ options[:Port] = LitmusPaper.port
46
+
51
47
  super
52
48
  end
53
49
 
54
50
  def default_options
55
51
  super.merge(
56
- :litmus_config => '/etc/litmus.conf',
57
- :config_dir => '/etc/litmus'
52
+ :litmus_config => '/etc/litmus.conf'
58
53
  )
59
54
  end
60
55
  end
@@ -1,30 +1,4 @@
1
1
  module LitmusPaper
2
- class Configuration
3
- def initialize(config_file_path)
4
- @config_file_path = config_file_path
5
- @services = {}
6
- end
7
-
8
- def evaluate(file = @config_file_path)
9
- LitmusPaper.logger.info "Loading file #{file}"
10
- config_contents = File.read(file)
11
- instance_eval(config_contents)
12
- @services
13
- end
14
-
15
- def include_files(glob_pattern)
16
- full_glob_pattern = File.expand_path(glob_pattern, File.dirname(@config_file_path))
17
- LitmusPaper.logger.info "Searching for files matching: #{full_glob_pattern}"
18
-
19
- Dir.glob(full_glob_pattern).each do |file|
20
- evaluate(file)
21
- end
22
- end
23
-
24
- def service(name, &block)
25
- service = Service.new(name.to_s)
26
- block.call(service)
27
- @services[name.to_s] = service
28
- end
2
+ class Configuration < Struct.new(:port, :data_directory, :services)
29
3
  end
30
4
  end
@@ -0,0 +1,40 @@
1
+ module LitmusPaper
2
+ class ConfigurationFile
3
+ def initialize(config_file_path)
4
+ @config_file_path = config_file_path
5
+ @services = {}
6
+ @port = 9292
7
+ @data_directory = "/etc/litmus"
8
+ end
9
+
10
+ def evaluate(file = @config_file_path)
11
+ LitmusPaper.logger.info "Loading file #{file}"
12
+ config_contents = File.read(file)
13
+ instance_eval(config_contents)
14
+ LitmusPaper::Configuration.new(@port, @data_directory, @services)
15
+ end
16
+
17
+ def include_files(glob_pattern)
18
+ full_glob_pattern = File.expand_path(glob_pattern, File.dirname(@config_file_path))
19
+ LitmusPaper.logger.info "Searching for files matching: #{full_glob_pattern}"
20
+
21
+ Dir.glob(full_glob_pattern).each do |file|
22
+ evaluate(file)
23
+ end
24
+ end
25
+
26
+ def port(port)
27
+ @port = port
28
+ end
29
+
30
+ def data_directory(directory)
31
+ @data_directory = directory
32
+ end
33
+
34
+ def service(name, &block)
35
+ service = Service.new(name.to_s)
36
+ block.call(service)
37
+ @services[name.to_s] = service
38
+ end
39
+ end
40
+ end
@@ -11,12 +11,15 @@ module LitmusPaper
11
11
 
12
12
  def available?
13
13
  stats = _parse_stats(_fetch_stats)
14
+ backend = _find_backend(stats, @cluster)
14
15
 
15
- servers = _servers_in(stats, @cluster)
16
- available = servers.select { |s| s['status'] == "UP" }
17
-
18
- available.size > 0
16
+ if backend['status'] != 'UP'
17
+ LitmusPaper.logger.info("HAproxy available check failed, #{@cluster} backend is #{backend['status']}")
18
+ return false
19
+ end
20
+ return true
19
21
  rescue Timeout::Error
22
+ LitmusPaper.logger.info("HAproxy available check timed out for #{@cluster}")
20
23
  false
21
24
  end
22
25
 
@@ -24,9 +27,9 @@ module LitmusPaper
24
27
  "Dependency::HaproxyBackends(#{@domain_socket}, #{@cluster})"
25
28
  end
26
29
 
27
- def _servers_in(stats, cluster)
28
- stats.select do |line|
29
- line['# pxname'] == cluster && !["FRONTEND", "BACKEND"].include?(line["svname"])
30
+ def _find_backend(stats, cluster)
31
+ stats.detect do |line|
32
+ line['# pxname'] == cluster && line['svname'] == 'BACKEND'
30
33
  end
31
34
  end
32
35
 
@@ -12,7 +12,8 @@ module LitmusPaper
12
12
  socket.close
13
13
  end
14
14
  true
15
- rescue Exception
15
+ rescue Exception => e
16
+ LitmusPaper.logger.info("TCP available check to #{@ip}:#{@port} failed with #{e.message}")
16
17
  false
17
18
  end
18
19
 
@@ -1,7 +1,7 @@
1
1
  module LitmusPaper
2
2
  class Logger
3
3
  extend Forwardable
4
- def_delegators :@syslog, :debug, :info
4
+ def_delegators :@syslog, :debug, :info, :error
5
5
 
6
6
  def initialize
7
7
  @syslog = SyslogLogger.new("litmus_paper")
@@ -28,7 +28,7 @@ module LitmusPaper
28
28
  end
29
29
 
30
30
  def initialize(filename, health)
31
- @path = File.join(LitmusPaper.config_dir, filename)
31
+ @path = File.join(LitmusPaper.data_directory, filename)
32
32
  @health = health
33
33
  end
34
34
 
@@ -1,3 +1,3 @@
1
1
  module LitmusPaper
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  end
@@ -5,6 +5,10 @@ describe LitmusPaper::App do
5
5
  LitmusPaper::App
6
6
  end
7
7
 
8
+ before :each do
9
+ LitmusPaper.configure(TEST_CONFIG)
10
+ end
11
+
8
12
  describe "GET /" do
9
13
  it "returns the list of services litmus monitors" do
10
14
  LitmusPaper.services['test'] = LitmusPaper::Service.new('test')
@@ -3,11 +3,11 @@ require 'spec_helper'
3
3
 
4
4
  describe 'litmusctl' do
5
5
  def _litmusctl(args)
6
- `bundle exec ruby -I lib bin/litmusctl #{args} -p 9293`
6
+ `bundle exec ruby -I lib bin/litmusctl #{args} -c #{TEST_CONFIG}`
7
7
  end
8
8
 
9
9
  before(:all) do
10
- system "bundle exec ruby -I lib bin/litmus -p 9293 -d -D /tmp/litmus_paper -c #{TEST_CONFIG} -P /tmp/litmus.pid"
10
+ system "bundle exec ruby -I lib bin/litmus -d -c #{TEST_CONFIG} -P /tmp/litmus.pid"
11
11
  end
12
12
 
13
13
  after(:all) do
@@ -7,10 +7,5 @@ describe LitmusPaper::CLI::Server do
7
7
  options = LitmusPaper::CLI::Server::Options.new.parse!(['-c', 'foo.conf'])
8
8
  options[:litmus_config].should == 'foo.conf'
9
9
  end
10
-
11
- it 'parses the config dir options' do
12
- options = LitmusPaper::CLI::Server::Options.new.parse!(['-D', '/tmp/foo'])
13
- options[:config_dir].should == '/tmp/foo'
14
- end
15
10
  end
16
11
  end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe LitmusPaper::ConfigurationFile do
4
+ describe "evaluate" do
5
+ it "configures a service" do
6
+ config_file = LitmusPaper::ConfigurationFile.new(TEST_CONFIG)
7
+ config = config_file.evaluate
8
+ config.services.has_key?('test').should == true
9
+ end
10
+
11
+ it "configures the port to listen on" do
12
+ config_file = LitmusPaper::ConfigurationFile.new(TEST_CONFIG)
13
+ config = config_file.evaluate
14
+ config.port.should == 9293
15
+ end
16
+
17
+ it "configures the data directory" do
18
+ config_file = LitmusPaper::ConfigurationFile.new(TEST_CONFIG)
19
+ config = config_file.evaluate
20
+ config.data_directory.should == "/tmp/litmus_paper"
21
+ end
22
+ end
23
+
24
+ describe "include_files" do
25
+ it "configures a dir glob of services" do
26
+ config_file = LitmusPaper::ConfigurationFile.new(TEST_D_CONFIG)
27
+ config = config_file.evaluate
28
+ config.services.has_key?('test').should == true
29
+ end
30
+
31
+ it "defaults configuration options" do
32
+ config_file = LitmusPaper::ConfigurationFile.new(TEST_D_CONFIG)
33
+ config = config_file.evaluate
34
+ config.services.has_key?('test').should == true
35
+ config.port.should == 9292
36
+ config.data_directory.should == "/etc/litmus"
37
+ end
38
+ end
39
+ end
@@ -32,20 +32,36 @@ describe LitmusPaper do
32
32
  LitmusPaper.services.has_key?('test').should == true
33
33
  end
34
34
 
35
- it "keeps the old config if there are errors in the new config" do
36
- old_config_file = SpecHelper.create_temp_file(<<-END)
35
+ it "blows up when initial configuration is invalid" do
36
+ bad_config_file = SpecHelper.create_temp_file(<<-END)
37
37
  service :old_service do |s|
38
- s.measure_health Metric::CPULoad, :weight => 100
38
+ syntax error here
39
39
  end
40
40
  END
41
- new_bad_config_file = SpecHelper.create_temp_file(<<-END)
41
+ expect do
42
+ LitmusPaper.configure(bad_config_file)
43
+ end.should raise_error
44
+ end
45
+
46
+ it "keeps the old config if there are errors in the new config" do
47
+ config_file = SpecHelper.create_temp_file(<<-END)
42
48
  service :old_service do |s|
43
- syntax error here
49
+ s.measure_health Metric::CPULoad, :weight => 100
44
50
  end
45
51
  END
46
- LitmusPaper.configure(old_config_file)
52
+
53
+ LitmusPaper.configure(config_file)
47
54
  LitmusPaper.services.keys.should == ["old_service"]
48
- LitmusPaper.configure(new_bad_config_file)
55
+
56
+ File.open(config_file, "w") do |file|
57
+ file.write(<<-END)
58
+ service :old_service do |s|
59
+ syntax error here
60
+ end
61
+ END
62
+ end
63
+
64
+ LitmusPaper.reload
49
65
  LitmusPaper.services.keys.should == ["old_service"]
50
66
  end
51
67
  end
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,11 @@ require 'rack/test'
5
5
  require 'litmus_paper'
6
6
  require 'tempfile'
7
7
 
8
+ TEST_CONFIG_DIR = "/tmp/litmus_paper"
9
+ TEST_CONFIG = File.expand_path('support/test.config', File.dirname(__FILE__))
10
+ TEST_D_CONFIG = File.expand_path('support/test.d.config', File.dirname(__FILE__))
11
+ TEST_CA_CERT = File.expand_path('ssl/server.crt', File.dirname(__FILE__))
12
+
8
13
  Dir.glob("#{File.expand_path('support', File.dirname(__FILE__))}/**/*.rb").each { |f| require f }
9
14
 
10
15
  RSpec.configure do |config|
@@ -12,8 +17,8 @@ RSpec.configure do |config|
12
17
  config.include Rack::Test::Methods
13
18
 
14
19
  config.before :each do
15
- FileUtils.rm_rf(LitmusPaper.config_dir)
16
- LitmusPaper.reset
20
+ FileUtils.rm_rf TEST_CONFIG_DIR
21
+ LitmusPaper.stub(:data_directory).and_return(TEST_CONFIG_DIR)
17
22
  end
18
23
  end
19
24
 
@@ -39,9 +44,3 @@ module SpecHelper
39
44
  end
40
45
  end
41
46
  end
42
-
43
- LitmusPaper.config_dir = "/tmp/litmus_paper"
44
-
45
- TEST_CONFIG = File.expand_path('support/test.config', File.dirname(__FILE__))
46
- TEST_D_CONFIG = File.expand_path('support/test.d.config', File.dirname(__FILE__))
47
- TEST_CA_CERT = File.expand_path('ssl/server.crt', File.dirname(__FILE__))
@@ -1,5 +1,9 @@
1
1
  # vim: set ft=ruby
2
2
 
3
+ port 9293
4
+
5
+ data_directory "/tmp/litmus_paper"
6
+
3
7
  service :test do |s|
4
8
  s.depends Dependency::HTTP, "http://localhost/heartbeat"
5
9
 
metadata CHANGED
@@ -1,137 +1,146 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: litmus_paper
3
- version: !ruby/object:Gem::Version
4
- version: 0.6.2
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 1
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 6
9
+ - 3
10
+ version: 0.6.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Braintreeps
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-10-23 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-11-07 00:00:00 -06:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: sinatra
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 1.3.2
22
- type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
26
+ requirements:
27
27
  - - ~>
28
- - !ruby/object:Gem::Version
28
+ - !ruby/object:Gem::Version
29
+ hash: 31
30
+ segments:
31
+ - 1
32
+ - 3
33
+ - 2
29
34
  version: 1.3.2
30
- - !ruby/object:Gem::Dependency
31
- name: facter
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: 1.6.7
38
35
  type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: facter
39
39
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
- requirements:
42
+ requirements:
43
43
  - - ~>
44
- - !ruby/object:Gem::Version
44
+ - !ruby/object:Gem::Version
45
+ hash: 1
46
+ segments:
47
+ - 1
48
+ - 6
49
+ - 7
45
50
  version: 1.6.7
46
- - !ruby/object:Gem::Dependency
47
- name: SyslogLogger
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: 1.4.1
54
51
  type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: SyslogLogger
55
55
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
57
  none: false
58
- requirements:
58
+ requirements:
59
59
  - - ~>
60
- - !ruby/object:Gem::Version
60
+ - !ruby/object:Gem::Version
61
+ hash: 5
62
+ segments:
63
+ - 1
64
+ - 4
65
+ - 1
61
66
  version: 1.4.1
62
- - !ruby/object:Gem::Dependency
67
+ type: :runtime
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
63
70
  name: rspec
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: 2.9.0
70
- type: :development
71
71
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
73
  none: false
74
- requirements:
74
+ requirements:
75
75
  - - ~>
76
- - !ruby/object:Gem::Version
76
+ - !ruby/object:Gem::Version
77
+ hash: 43
78
+ segments:
79
+ - 2
80
+ - 9
81
+ - 0
77
82
  version: 2.9.0
78
- - !ruby/object:Gem::Dependency
79
- name: rack-test
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 0.6.1
86
83
  type: :development
84
+ version_requirements: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ name: rack-test
87
87
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
88
+ requirement: &id005 !ruby/object:Gem::Requirement
89
89
  none: false
90
- requirements:
90
+ requirements:
91
91
  - - ~>
92
- - !ruby/object:Gem::Version
92
+ - !ruby/object:Gem::Version
93
+ hash: 5
94
+ segments:
95
+ - 0
96
+ - 6
97
+ - 1
93
98
  version: 0.6.1
94
- - !ruby/object:Gem::Dependency
95
- name: rake
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ~>
100
- - !ruby/object:Gem::Version
101
- version: 0.9.2.2
102
99
  type: :development
100
+ version_requirements: *id005
101
+ - !ruby/object:Gem::Dependency
102
+ name: rake
103
103
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
104
+ requirement: &id006 !ruby/object:Gem::Requirement
105
105
  none: false
106
- requirements:
106
+ requirements:
107
107
  - - ~>
108
- - !ruby/object:Gem::Version
108
+ - !ruby/object:Gem::Version
109
+ hash: 11
110
+ segments:
111
+ - 0
112
+ - 9
113
+ - 2
114
+ - 2
109
115
  version: 0.9.2.2
110
- - !ruby/object:Gem::Dependency
111
- name: rake_commit
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ~>
116
- - !ruby/object:Gem::Version
117
- version: '0.13'
118
116
  type: :development
117
+ version_requirements: *id006
118
+ - !ruby/object:Gem::Dependency
119
+ name: rake_commit
119
120
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
+ requirement: &id007 !ruby/object:Gem::Requirement
121
122
  none: false
122
- requirements:
123
+ requirements:
123
124
  - - ~>
124
- - !ruby/object:Gem::Version
125
- version: '0.13'
125
+ - !ruby/object:Gem::Version
126
+ hash: 17
127
+ segments:
128
+ - 0
129
+ - 13
130
+ version: "0.13"
131
+ type: :development
132
+ version_requirements: *id007
126
133
  description: Backend health tester for HA Services
127
- email:
134
+ email:
128
135
  - code@getbraintree.com
129
- executables:
136
+ executables:
130
137
  - litmus
131
138
  - litmusctl
132
139
  extensions: []
140
+
133
141
  extra_rdoc_files: []
134
- files:
142
+
143
+ files:
135
144
  - .gitignore
136
145
  - .rake_commit
137
146
  - .rvmrc
@@ -153,6 +162,7 @@ files:
153
162
  - lib/litmus_paper/cli/admin/status.rb
154
163
  - lib/litmus_paper/cli/server.rb
155
164
  - lib/litmus_paper/configuration.rb
165
+ - lib/litmus_paper/configuration_file.rb
156
166
  - lib/litmus_paper/dependency/haproxy_backends.rb
157
167
  - lib/litmus_paper/dependency/http.rb
158
168
  - lib/litmus_paper/dependency/tcp.rb
@@ -169,7 +179,7 @@ files:
169
179
  - spec/litmus_paper/app_spec.rb
170
180
  - spec/litmus_paper/cli/admin_spec.rb
171
181
  - spec/litmus_paper/cli/server_spec.rb
172
- - spec/litmus_paper/configuration_spec.rb
182
+ - spec/litmus_paper/configuration_file_spec.rb
173
183
  - spec/litmus_paper/dependency/haproxy_backends_spec.rb
174
184
  - spec/litmus_paper/dependency/http_spec.rb
175
185
  - spec/litmus_paper/dependency/tcp_spec.rb
@@ -196,35 +206,45 @@ files:
196
206
  - spec/support/stub_facter.rb
197
207
  - spec/support/test.config
198
208
  - spec/support/test.d.config
209
+ has_rdoc: true
199
210
  homepage: https://github.com/braintree/litmus_paper
200
211
  licenses: []
212
+
201
213
  post_install_message:
202
214
  rdoc_options: []
203
- require_paths:
215
+
216
+ require_paths:
204
217
  - lib
205
- required_ruby_version: !ruby/object:Gem::Requirement
218
+ required_ruby_version: !ruby/object:Gem::Requirement
206
219
  none: false
207
- requirements:
208
- - - ! '>='
209
- - !ruby/object:Gem::Version
210
- version: '0'
211
- required_rubygems_version: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ hash: 3
224
+ segments:
225
+ - 0
226
+ version: "0"
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
212
228
  none: false
213
- requirements:
214
- - - ! '>='
215
- - !ruby/object:Gem::Version
216
- version: '0'
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ hash: 3
233
+ segments:
234
+ - 0
235
+ version: "0"
217
236
  requirements: []
237
+
218
238
  rubyforge_project:
219
- rubygems_version: 1.8.23
239
+ rubygems_version: 1.3.7
220
240
  signing_key:
221
241
  specification_version: 3
222
242
  summary: Backend health tester for HA Services, partner project of big_brother
223
- test_files:
243
+ test_files:
224
244
  - spec/litmus_paper/app_spec.rb
225
245
  - spec/litmus_paper/cli/admin_spec.rb
226
246
  - spec/litmus_paper/cli/server_spec.rb
227
- - spec/litmus_paper/configuration_spec.rb
247
+ - spec/litmus_paper/configuration_file_spec.rb
228
248
  - spec/litmus_paper/dependency/haproxy_backends_spec.rb
229
249
  - spec/litmus_paper/dependency/http_spec.rb
230
250
  - spec/litmus_paper/dependency/tcp_spec.rb
@@ -1,19 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe LitmusPaper::Configuration do
4
- describe "evaluate" do
5
- it "configures a service" do
6
- config = LitmusPaper::Configuration.new(TEST_CONFIG)
7
- services = config.evaluate
8
- services.has_key?('test').should == true
9
- end
10
- end
11
-
12
- describe "include_files" do
13
- it "configures a dir glob of services" do
14
- config = LitmusPaper::Configuration.new(TEST_D_CONFIG)
15
- services = config.evaluate
16
- services.has_key?('test').should == true
17
- end
18
- end
19
- end