auger 1.4.1 → 1.4.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.
- data/Gemfile +1 -0
- data/README.md +20 -5
- data/VERSION +1 -1
- data/lib/auger/project.rb +12 -3
- metadata +3 -3
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -68,7 +68,7 @@ Reference config files using `aug foo`, to find `foo.rb` in
|
|
68
68
|
```ruby
|
69
69
|
project "Front-end Web Servers" do
|
70
70
|
server "web-fe-[01-02]"
|
71
|
-
|
71
|
+
|
72
72
|
http 8000 do
|
73
73
|
get '/' do
|
74
74
|
test 'status code is 200' do |response|
|
@@ -126,7 +126,7 @@ Let's extend our example to be more interesting.
|
|
126
126
|
project "Front-end Web Servers" do
|
127
127
|
server 'web-fe-[01-02]', :web
|
128
128
|
server 'www.mydomain.com', :vip, :port => 80
|
129
|
-
|
129
|
+
|
130
130
|
socket 8000 do
|
131
131
|
roles :web
|
132
132
|
open? do
|
@@ -167,11 +167,26 @@ Servers can also have a hash of options, which will override
|
|
167
167
|
the matching connection options for just that server. In this case
|
168
168
|
we want to connect to port 80 on the vip rather than 8000.
|
169
169
|
|
170
|
+
Server names may be given as strings (which will be parsed by HostRange),
|
171
|
+
as arrays (or expressions returning arrays), or as a block returning
|
172
|
+
an array. All arrays will be flattened. Hence the following are all
|
173
|
+
equivalent:
|
174
|
+
|
175
|
+
```ruby
|
176
|
+
server "foo1", "foo2", "foo3"
|
177
|
+
server "foo[1-3]"
|
178
|
+
server HostRange.parse("foo[1-3]")
|
179
|
+
server [ "foo1", "foo2", "foo3" ]
|
180
|
+
server do
|
181
|
+
%w{ foo1 foo2 foo3 }
|
182
|
+
end
|
183
|
+
```
|
184
|
+
|
170
185
|
The `header` command demonstrates setting options for a request,
|
171
186
|
in this case setting an http request header.
|
172
187
|
|
173
188
|
The `socket` command creates a connection to the given port, and
|
174
|
-
`open?` returns true if the port is open. We just apply this to
|
189
|
+
`open?` returns true if the port is open. We just apply this to
|
175
190
|
the real web servers and not the vip.
|
176
191
|
|
177
192
|
The document title test demonstrates how to extract and return a regex
|
@@ -228,9 +243,9 @@ project "Elasticsearch" do
|
|
228
243
|
end
|
229
244
|
end
|
230
245
|
|
231
|
-
# I've discovered that a typical fail case with elasticsearch is
|
246
|
+
# I've discovered that a typical fail case with elasticsearch is
|
232
247
|
# that on occassion, nodes will come up and not join the cluster
|
233
|
-
# This is an easy way to see if the number of nodes that the host
|
248
|
+
# This is an easy way to see if the number of nodes that the host
|
234
249
|
# actually sees (actual_data_nodes) matches what we're
|
235
250
|
# expecting (expected_data_nodes).
|
236
251
|
# TODO: dynamically update expected_data_nodes based on defined hosts:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.4.
|
1
|
+
1.4.2
|
data/lib/auger/project.rb
CHANGED
@@ -4,7 +4,7 @@ module Auger
|
|
4
4
|
|
5
5
|
class Project
|
6
6
|
attr_accessor :name, :connections, :servers
|
7
|
-
|
7
|
+
|
8
8
|
def self.load(name, &block)
|
9
9
|
project = new(name)
|
10
10
|
project.instance_eval(&block)
|
@@ -20,10 +20,19 @@ module Auger
|
|
20
20
|
|
21
21
|
## set server, or list of server names, with optional roles and options
|
22
22
|
## e.g. server server1, server2, :roleA, :roleB, options => values
|
23
|
+
## servers can be any combination in:
|
24
|
+
## strings: passed through HostRange to make an array
|
25
|
+
## array: or expressions that returns an array
|
26
|
+
## block: returning an array (arrays will be flattened)
|
27
|
+
## roles are symbols
|
28
|
+
## options are hash members, must be last args
|
23
29
|
def server(*args)
|
24
30
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
25
31
|
roles = args.select { |arg| arg.class == Symbol }
|
26
|
-
servers =
|
32
|
+
servers =
|
33
|
+
args.select { |arg| arg.class == String }.map { |arg| HostRange.parse(arg) } +
|
34
|
+
args.select { |arg| arg.class == Array } +
|
35
|
+
(block_given? ? yield : [])
|
27
36
|
@servers += servers.flatten.map do |name|
|
28
37
|
Auger::Server.new(name, *roles, options)
|
29
38
|
end
|
@@ -60,5 +69,5 @@ module Auger
|
|
60
69
|
end
|
61
70
|
|
62
71
|
end
|
63
|
-
|
72
|
+
|
64
73
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-11-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
152
|
rubyforge_project:
|
153
|
-
rubygems_version: 1.8.
|
153
|
+
rubygems_version: 1.8.24
|
154
154
|
signing_key:
|
155
155
|
specification_version: 3
|
156
156
|
summary: App && infrastructure testing DSL
|