litmus_paper 0.3.1 → 0.3.2

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.
@@ -1,7 +1,8 @@
1
1
  module LitmusPaper
2
2
  class App < Sinatra::Base
3
3
  get "/" do
4
- output = "Services monitored:\n"
4
+ output = "Litmus Paper #{LitmusPaper::VERSION}\n"
5
+ output += "Services monitored:\n"
5
6
  output += LitmusPaper.services.keys.join("\n")
6
7
 
7
8
  text 200, output
@@ -17,6 +17,10 @@ module LitmusPaper
17
17
  available.size > 0
18
18
  end
19
19
 
20
+ def to_s
21
+ "Dependency::HaproxyBackends(#{@domain_socket}, #{@cluster})"
22
+ end
23
+
20
24
  def _servers_in(stats, cluster)
21
25
  stats.select do |line|
22
26
  line['# pxname'] == cluster && !["FRONTEND", "BACKEND"].include?(line["svname"])
@@ -20,12 +20,12 @@ module LitmusPaper
20
20
  return @memory_total unless @memory_total.nil?
21
21
 
22
22
  size, scale = @facter.value('memorytotal').split(' ')
23
- @memory_total = size.to_i * MULTIPLIER[scale]
23
+ @memory_total = (size.to_f * MULTIPLIER[scale]).to_i
24
24
  end
25
25
 
26
26
  def memory_free
27
27
  size, scale = @facter.value('memoryfree').split(' ')
28
- size.to_i * MULTIPLIER[scale]
28
+ (size.to_f * MULTIPLIER[scale]).to_i
29
29
  end
30
30
 
31
31
  def to_s
@@ -1,3 +1,3 @@
1
1
  module LitmusPaper
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
data/lib/litmus_paper.rb CHANGED
@@ -22,6 +22,7 @@ require 'litmus_paper/metric/available_memory'
22
22
  require 'litmus_paper/metric/cpu_load'
23
23
  require 'litmus_paper/service'
24
24
  require 'litmus_paper/status_file'
25
+ require 'litmus_paper/version'
25
26
 
26
27
  module LitmusPaper
27
28
  class << self
@@ -16,6 +16,13 @@ describe LitmusPaper::App do
16
16
  last_response.body.should include('test')
17
17
  last_response.body.should include('another')
18
18
  end
19
+
20
+ it "includes the litmus version" do
21
+ get "/"
22
+
23
+ last_response.status.should == 200
24
+ last_response.body.should include("Litmus Paper #{LitmusPaper::VERSION}")
25
+ end
19
26
  end
20
27
 
21
28
  describe "POST /force/*" do
@@ -20,5 +20,12 @@ describe LitmusPaper::Dependency::HaproxyBackends do
20
20
  haproxy.should_not be_available
21
21
  end
22
22
  end
23
+
24
+ describe "to_s" do
25
+ it "includes the socket file and the cluster" do
26
+ haproxy = LitmusPaper::Dependency::HaproxyBackends.new("/tmp/stub-haproxy-stats", "orange_cluster")
27
+ haproxy.to_s.should == 'Dependency::HaproxyBackends(/tmp/stub-haproxy-stats, orange_cluster)'
28
+ end
29
+ end
23
30
  end
24
31
 
@@ -8,12 +8,24 @@ describe LitmusPaper::Metric::AvailableMemory do
8
8
  memory.current_health.should == 25
9
9
  end
10
10
 
11
+ it "multiplies weight by memory available when handling floating point values" do
12
+ facter = StubFacter.new({"memorytotal" => "2.0 GB", "memoryfree" => "1.8 GB"})
13
+ memory = LitmusPaper::Metric::AvailableMemory.new(50, facter)
14
+ memory.current_health.should == 44
15
+ end
16
+
11
17
  describe "#memory_total" do
12
18
  it "is a positive integer" do
13
19
  metric = LitmusPaper::Metric::AvailableMemory.new(50)
14
20
  metric.memory_total.should > 1_000
15
21
  end
16
22
 
23
+ it "handles floating point values properly" do
24
+ facter = StubFacter.new("memorytotal" => "1.80 GB")
25
+ memory = LitmusPaper::Metric::AvailableMemory.new(50, facter)
26
+ memory.memory_total.should == 1932735283
27
+ end
28
+
17
29
  it "is cached" do
18
30
  Facter.should_receive(:value).once.and_return("10 MB")
19
31
  metric = LitmusPaper::Metric::AvailableMemory.new(50)
@@ -28,6 +40,12 @@ describe LitmusPaper::Metric::AvailableMemory do
28
40
  metric = LitmusPaper::Metric::AvailableMemory.new(50)
29
41
  metric.memory_free.should > 100
30
42
  end
43
+
44
+ it "handles floating point values properly" do
45
+ facter = StubFacter.new("memoryfree" => "1.80 GB")
46
+ memory = LitmusPaper::Metric::AvailableMemory.new(50, facter)
47
+ memory.memory_free.should == 1932735283
48
+ end
31
49
  end
32
50
 
33
51
  describe "#to_s" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: litmus_paper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-06-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &70366165028280 !ruby/object:Gem::Requirement
16
+ requirement: &70248649019060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.3.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70366165028280
24
+ version_requirements: *70248649019060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: facter
27
- requirement: &70366165009340 !ruby/object:Gem::Requirement
27
+ requirement: &70248649000380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.7
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70366165009340
35
+ version_requirements: *70248649000380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: SyslogLogger
38
- requirement: &70366164935220 !ruby/object:Gem::Requirement
38
+ requirement: &70248648925460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.4.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70366164935220
46
+ version_requirements: *70248648925460
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70366160654080 !ruby/object:Gem::Requirement
49
+ requirement: &70248644644480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.9.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70366160654080
57
+ version_requirements: *70248644644480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack-test
60
- requirement: &70366160547260 !ruby/object:Gem::Requirement
60
+ requirement: &70248644537640 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.6.1
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70366160547260
68
+ version_requirements: *70248644537640
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
- requirement: &70366160552680 !ruby/object:Gem::Requirement
71
+ requirement: &70248644543240 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.9.2.2
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70366160552680
79
+ version_requirements: *70248644543240
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rake_commit
82
- requirement: &70366160551600 !ruby/object:Gem::Requirement
82
+ requirement: &70248644542440 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0.13'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70366160551600
90
+ version_requirements: *70248644542440
91
91
  description: Backend health tester for HA Services
92
92
  email:
93
93
  - code@getbraintree.com