haproxy-tools 0.3.2 → 0.3.3

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.
data/.gitignore CHANGED
@@ -12,3 +12,4 @@ Gemfile.lock
12
12
  tmp
13
13
  *.orig
14
14
  .bundle
15
+ .idea
@@ -0,0 +1 @@
1
+ ruby-1.9.3
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ rvm:
5
+ - "1.9"
6
+
7
+ script: "bundle exec rake spec"
@@ -1,3 +1,6 @@
1
+ == 0.4.0
2
+ * Added support for 1.5 "keyword-type-argument" config (@drewsonne)
3
+
1
4
  == 0.3.2
2
5
  * Specify the MIT license in the gemspec
3
6
 
@@ -1,3 +1,4 @@
1
+ {<img src="https://travis-ci.org/subakva/haproxy-tools.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/subakva/haproxy-tools]
1
2
  = haproxy-tools
2
3
 
3
4
  Tools for managing HAProxy with Ruby.
@@ -55,6 +56,5 @@ Tools for managing HAProxy with Ruby.
55
56
 
56
57
  == Copyright
57
58
 
58
- Copyright (c) 2011-2013 Jason Wadsworth. See LICENSE.txt for
59
- further details.
59
+ Copyright (c) 2011-2015 Jason Wadsworth. See LICENSE.txt for further details.
60
60
 
@@ -18,12 +18,14 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ['lib']
20
20
 
21
+ gem.required_ruby_version = '1.9.3'
22
+
21
23
  gem.add_dependency('net-scp')
22
- gem.add_dependency("treetop")
23
- gem.add_development_dependency("rake")
24
- gem.add_development_dependency("rspec")
25
- gem.add_development_dependency("yard")
24
+ gem.add_dependency('treetop')
25
+ gem.add_development_dependency('rake')
26
+ gem.add_development_dependency('rspec', '~> 2.14')
27
+ gem.add_development_dependency('yard')
26
28
  gem.add_development_dependency('simplecov')
27
29
  gem.add_development_dependency('cane')
28
- gem.add_development_dependency('pry-debugger')
30
+ # gem.add_development_dependency('pry-debugger')
29
31
  end
@@ -180,4 +180,4 @@ module HAProxy
180
180
  end
181
181
 
182
182
  end
183
- end
183
+ end
@@ -88,7 +88,7 @@ module HAProxy::Treetop
88
88
  end
89
89
 
90
90
  rule keyword
91
- [a-z\-\.]+ <Keyword>
91
+ (("errorfile" / "timeout") whitespace)? [a-z0-9\-\.]+ <Keyword>
92
92
  end
93
93
 
94
94
  rule server_name
@@ -186,4 +186,3 @@ module HAProxy::Treetop
186
186
 
187
187
  end
188
188
  end
189
-
@@ -1,3 +1,3 @@
1
1
  module HAProxy
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -0,0 +1,31 @@
1
+ # This is a top-level comment. It should be allowed.
2
+
3
+ global
4
+ maxconn 4096 # Total Max Connections. This is dependent on ulimit
5
+ daemon
6
+ nbproc 4 # Number of processing cores. Dual Dual-core Opteron is 4 cores for example.
7
+ log 127.0.0.1 local0
8
+ log 127.0.0.1 local1 notice
9
+ user haproxy
10
+ group haproxy
11
+
12
+ defaults
13
+ mode http
14
+ option httpclose # Disable Keepalive
15
+ option httplog
16
+ option dontlognull
17
+ timeout connect 5000ms
18
+ timeout client 5000ms
19
+ timeout server 5000ms
20
+ errorfile 400 /etc/haproxy/errors/400.http
21
+ errorfile 504 /etc/haproxy/errors/504.http
22
+
23
+ listen http_proxy 55.55.55.55:80
24
+ balance roundrobin # Load Balancing algorithm
25
+ option httpchk
26
+ option forwardfor # This sets X-Forwarded-For
27
+
28
+ ## Define your servers to balance
29
+ server web1 dnshost66:80 weight 1 maxconn 512 check
30
+ server web2 77.77.77.77:80 weight 1 maxconn 512 check
31
+ server web3 88.88.88.88:80
@@ -24,7 +24,7 @@ describe "HAProxy::Config" do
24
24
  new_config = HAProxy::Parser.new.parse(new_config_text)
25
25
  s = new_config.backend('www_main').servers['prd_www_1']
26
26
  s.should_not be_nil
27
- s.attributes['disabled'].should be_true
27
+ s.attributes['disabled'].should be_truthy
28
28
  end
29
29
 
30
30
  it 'can re-render a config file with a server added' do
@@ -36,6 +36,26 @@ describe "HAProxy::Parser" do
36
36
  end
37
37
  end
38
38
 
39
+ context 'basic 1.5 config file' do
40
+ before(:each) do
41
+ @parser = HAProxy::Parser.new
42
+ @config = @parser.parse_file('spec/fixtures/simple.haproxy15.cfg')
43
+ end
44
+
45
+ it "parses structured configs" do
46
+ defaults = @config.defaults.first.config
47
+
48
+ defaults['timeout connect'].should == '5000ms'
49
+ defaults['timeout client'].should == '5000ms'
50
+ defaults['timeout server'].should == '5000ms'
51
+
52
+ defaults['errorfile 400'].should == '/etc/haproxy/errors/400.http'
53
+ defaults['errorfile 504'].should == '/etc/haproxy/errors/504.http'
54
+
55
+ end
56
+
57
+ end
58
+
39
59
  context 'basic config file' do
40
60
  before(:each) do
41
61
  @parser = HAProxy::Parser.new
metadata CHANGED
@@ -1,125 +1,126 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haproxy-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jason Wadsworth
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-08-08 00:00:00.000000000 Z
12
+ date: 2015-02-23 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: net-scp
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - '>='
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: treetop
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rspec
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ~>
60
68
  - !ruby/object:Gem::Version
61
- version: '0'
69
+ version: '2.14'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ~>
67
76
  - !ruby/object:Gem::Version
68
- version: '0'
77
+ version: '2.14'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: yard
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: '0'
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: '0'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: simplecov
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: cane
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
- - - '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: pry-debugger
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '>='
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
121
122
  requirements:
122
- - - '>='
123
+ - - ! '>='
123
124
  - !ruby/object:Gem::Version
124
125
  version: '0'
125
126
  description: Ruby tools for HAProxy, including config file management.
@@ -132,7 +133,9 @@ files:
132
133
  - .document
133
134
  - .gitignore
134
135
  - .rspec
136
+ - .ruby-version
135
137
  - .simplecov
138
+ - .travis.yml
136
139
  - CHANGES.rdoc
137
140
  - Gemfile
138
141
  - LICENSE.txt
@@ -153,6 +156,7 @@ files:
153
156
  - lib/haproxy_tools.rb
154
157
  - spec/fixtures/multi-pool.haproxy.cfg
155
158
  - spec/fixtures/simple.haproxy.cfg
159
+ - spec/fixtures/simple.haproxy15.cfg
156
160
  - spec/haproxy/config_spec.rb
157
161
  - spec/haproxy/parser_spec.rb
158
162
  - spec/haproxy/treetop/config_parser_spec.rb
@@ -160,30 +164,32 @@ files:
160
164
  homepage: https://github.com/subakva/haproxy-tools
161
165
  licenses:
162
166
  - MIT
163
- metadata: {}
164
167
  post_install_message:
165
168
  rdoc_options: []
166
169
  require_paths:
167
170
  - lib
168
171
  required_ruby_version: !ruby/object:Gem::Requirement
172
+ none: false
169
173
  requirements:
170
- - - '>='
174
+ - - '='
171
175
  - !ruby/object:Gem::Version
172
- version: '0'
176
+ version: 1.9.3
173
177
  required_rubygems_version: !ruby/object:Gem::Requirement
178
+ none: false
174
179
  requirements:
175
- - - '>='
180
+ - - ! '>='
176
181
  - !ruby/object:Gem::Version
177
182
  version: '0'
178
183
  requirements: []
179
184
  rubyforge_project:
180
- rubygems_version: 2.0.3
185
+ rubygems_version: 1.8.23.2
181
186
  signing_key:
182
- specification_version: 4
187
+ specification_version: 3
183
188
  summary: HAProxy Tools for Ruby
184
189
  test_files:
185
190
  - spec/fixtures/multi-pool.haproxy.cfg
186
191
  - spec/fixtures/simple.haproxy.cfg
192
+ - spec/fixtures/simple.haproxy15.cfg
187
193
  - spec/haproxy/config_spec.rb
188
194
  - spec/haproxy/parser_spec.rb
189
195
  - spec/haproxy/treetop/config_parser_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 1c1d426c50dd8bf48f341ee93223736eeae6adc1
4
- data.tar.gz: 0b43d53d067fc43ebb399311f71375c89f53c23d
5
- SHA512:
6
- metadata.gz: 4b9213898f321a7375900056456811f6a9b8c932efaa4fca982749f1150cdfbac534f043352639c16a8645a5ad2b3c159ed4aba2d122f7bf01e375147241bf40
7
- data.tar.gz: 75a5c499a2e002386ba18a4a3cc61eeda6d8fef689b23d1b070bf3fcc1a4a4d787241ead17ad5fe89a40d10e26899d9d29c38e07a4454c4037c10f9e4a13d307