roadworker 0.5.6.beta → 0.5.6.beta2
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.
- checksums.yaml +4 -4
- data/README.md +20 -0
- data/lib/roadworker.rb +2 -0
- data/lib/roadworker/dsl.rb +25 -4
- data/lib/roadworker/template-helper.rb +20 -0
- data/lib/roadworker/version.rb +1 -1
- metadata +16 -2
- data/lib/roadworker/template_helper.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c374c9eb2340b97d52280b65853c864883456e33
|
4
|
+
data.tar.gz: 12cb31b18c1250f52d8a799eec0e2e3f98936ce0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6421fdd77cef322d125bad62596df0336b41028484c233e2adffe3b0f9828fd9062566635361257743c80a75f5e895d09e268408879fc4bc162244cb43fab090
|
7
|
+
data.tar.gz: 3f5fe53e3ed4a1b40e3423d7ac8c99e9de43adf3bdc63a94cf9118c579ed72fe4016824e26e5e29040c7ad133190cf89d9d6ba6d96d137840fba905810a2106e
|
data/README.md
CHANGED
@@ -20,6 +20,7 @@ It defines the state of Route53 using DSL, and updates Route53 according to DSL.
|
|
20
20
|
* Disable HealthCheck GC (pass `--health-check-gc` option if enable)
|
21
21
|
* Support Calculated Health Checks
|
22
22
|
* Support New Health Check attributes
|
23
|
+
* Add template feature
|
23
24
|
|
24
25
|
## Installation
|
25
26
|
|
@@ -174,6 +175,25 @@ hosted_zone "us-east-1.my.local." do
|
|
174
175
|
end
|
175
176
|
```
|
176
177
|
|
178
|
+
### Use template
|
179
|
+
|
180
|
+
```ruby
|
181
|
+
template('default_rrset') do
|
182
|
+
rrset context.name + '.' + context.hosted_zone_name, "A" do
|
183
|
+
ttl context.ttl
|
184
|
+
resource_records(
|
185
|
+
"127.0.0.1"
|
186
|
+
)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
hosted_zone "winebarrel.jp." do
|
191
|
+
context.ttl = 100
|
192
|
+
include_template 'default_rrset', name: 'www'
|
193
|
+
include_template 'default_rrset', name: 'www2'
|
194
|
+
end
|
195
|
+
```
|
196
|
+
|
177
197
|
## Test
|
178
198
|
|
179
199
|
Routefile compares the results of a query to the DNS and DSL in the test mode.
|
data/lib/roadworker.rb
CHANGED
@@ -6,6 +6,7 @@ require 'tempfile'
|
|
6
6
|
require 'uri'
|
7
7
|
require 'uuid'
|
8
8
|
require 'diffy'
|
9
|
+
require 'hashie'
|
9
10
|
|
10
11
|
require 'roadworker/string-ext'
|
11
12
|
require 'roadworker/struct-ext'
|
@@ -14,6 +15,7 @@ require 'roadworker/route53-ext'
|
|
14
15
|
require 'roadworker/version'
|
15
16
|
require 'roadworker/log'
|
16
17
|
require 'roadworker/utils'
|
18
|
+
require 'roadworker/template-helper'
|
17
19
|
|
18
20
|
require 'roadworker/client'
|
19
21
|
require 'roadworker/collection'
|
data/lib/roadworker/dsl.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
module Roadworker
|
2
2
|
class DSL
|
3
|
+
include Roadworker::TemplateHelper
|
3
4
|
|
4
5
|
class << self
|
5
6
|
def define(source, path, lineno = 1)
|
@@ -22,9 +23,19 @@ module Roadworker
|
|
22
23
|
def initialize(path, &block)
|
23
24
|
@path = path
|
24
25
|
@result = OpenStruct.new({:hosted_zones => []})
|
26
|
+
|
27
|
+
@context = Hashie::Mash.new(
|
28
|
+
:path => path,
|
29
|
+
:templates => {}
|
30
|
+
)
|
31
|
+
|
25
32
|
instance_eval(&block)
|
26
33
|
end
|
27
34
|
|
35
|
+
def template(name, &block)
|
36
|
+
@context.templates[name.to_s] = block
|
37
|
+
end
|
38
|
+
|
28
39
|
private
|
29
40
|
|
30
41
|
def require(file)
|
@@ -40,14 +51,17 @@ module Roadworker
|
|
40
51
|
end
|
41
52
|
|
42
53
|
def hosted_zone(name, &block)
|
43
|
-
@result.hosted_zones << HostedZone.new(name, [], &block).result
|
54
|
+
@result.hosted_zones << HostedZone.new(@context, name, [], &block).result
|
44
55
|
end
|
45
56
|
|
46
57
|
class HostedZone
|
58
|
+
include Roadworker::TemplateHelper
|
59
|
+
|
47
60
|
attr_reader :result
|
48
61
|
|
49
|
-
def initialize(name, rrsets = [], &block)
|
62
|
+
def initialize(context, name, rrsets = [], &block)
|
50
63
|
@name = name
|
64
|
+
@context = context.merge(:hosted_zone_name => name)
|
51
65
|
|
52
66
|
@result = OpenStruct.new({
|
53
67
|
:name => name,
|
@@ -84,14 +98,21 @@ module Roadworker
|
|
84
98
|
raise "Invalid ResourceRecordSet Name: #{rrset_name}"
|
85
99
|
end
|
86
100
|
|
87
|
-
@result.resource_record_sets << ResourceRecordSet.new(rrset_name, type, &block).result
|
101
|
+
@result.resource_record_sets << ResourceRecordSet.new(@context, rrset_name, type, &block).result
|
88
102
|
end
|
89
103
|
alias rrset resource_record_set
|
90
104
|
|
91
105
|
class ResourceRecordSet
|
106
|
+
include Roadworker::TemplateHelper
|
107
|
+
|
92
108
|
attr_reader :result
|
93
109
|
|
94
|
-
def initialize(name, type, &block)
|
110
|
+
def initialize(context, name, type, &block)
|
111
|
+
@context = context.merge(
|
112
|
+
:rrset_name => name,
|
113
|
+
:rrset_type => type
|
114
|
+
)
|
115
|
+
|
95
116
|
@result = OpenStruct.new({
|
96
117
|
:name => name,
|
97
118
|
:type => type,
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Roadworker
|
2
|
+
module TemplateHelper
|
3
|
+
def include_template(template_name, context = {})
|
4
|
+
tmplt = @context.templates[template_name.to_s]
|
5
|
+
|
6
|
+
unless tmplt
|
7
|
+
raise "Template `#{template_name}` is not defined"
|
8
|
+
end
|
9
|
+
|
10
|
+
context_orig = @context
|
11
|
+
@context = @context.merge(context)
|
12
|
+
instance_eval(&tmplt)
|
13
|
+
@context = context_orig
|
14
|
+
end
|
15
|
+
|
16
|
+
def context
|
17
|
+
@context
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/roadworker/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roadworker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.6.
|
4
|
+
version: 0.5.6.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: hashie
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,7 +229,7 @@ files:
|
|
215
229
|
- lib/roadworker/route53-wrapper.rb
|
216
230
|
- lib/roadworker/string-ext.rb
|
217
231
|
- lib/roadworker/struct-ext.rb
|
218
|
-
- lib/roadworker/
|
232
|
+
- lib/roadworker/template-helper.rb
|
219
233
|
- lib/roadworker/utils.rb
|
220
234
|
- lib/roadworker/version.rb
|
221
235
|
homepage: http://roadworker.codenize.tools/
|
File without changes
|