roadworker 0.4.8 → 0.4.9
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 +24 -2
- data/bin/roadwork +1 -0
- data/lib/roadworker/dsl-tester.rb +30 -2
- data/lib/roadworker/version.rb +1 -1
- metadata +24 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6728e9d481aa2975e230a25a60e2ad3a9607f94a
|
|
4
|
+
data.tar.gz: 0725f50ba8ae99e6b4c9e219763734eb1c9925bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0b009eb08fece5f8595cd3a5863ea5588c6f7858a95cd4dde574fd294728c620f79cba1db8e57fbb33c2e14edbdb926de1e3430f64014bdc7d9e1f80a068063a
|
|
7
|
+
data.tar.gz: 59237da6218cd64b1b85d40ab004de59e6730cf9c192acd2574096131a2cbedf408f1726f5582bc9207dcdc69483758ff757b3ef97650a1d28644d729b43a379
|
data/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Roadworker is a tool to manage Route53.
|
|
|
5
5
|
It defines the state of Route53 using DSL, and updates Route53 according to DSL.
|
|
6
6
|
|
|
7
7
|
[](http://badge.fury.io/rb/roadworker)
|
|
8
|
-
[](https://travis-ci.org/winebarrel/roadworker)
|
|
9
9
|
|
|
10
10
|
**Notice**
|
|
11
11
|
|
|
@@ -37,6 +37,28 @@ roadwork -a --dry-run
|
|
|
37
37
|
roudwork -a
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
## Help
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Usage: roadwork [options]
|
|
44
|
+
-p, --profile PROFILE_NAME
|
|
45
|
+
-k, --access-key ACCESS_KEY
|
|
46
|
+
-s, --secret-key SECRET_KEY
|
|
47
|
+
-a, --apply
|
|
48
|
+
-f, --file FILE
|
|
49
|
+
--dry-run
|
|
50
|
+
--force
|
|
51
|
+
--no-health-check-gc
|
|
52
|
+
-e, --export
|
|
53
|
+
-o, --output FILE
|
|
54
|
+
--split
|
|
55
|
+
--with-soa-ns
|
|
56
|
+
-t, --test
|
|
57
|
+
--nameservers SERVERS
|
|
58
|
+
--no-color
|
|
59
|
+
--debug
|
|
60
|
+
```
|
|
61
|
+
|
|
40
62
|
## Routefile example
|
|
41
63
|
|
|
42
64
|
```ruby
|
|
@@ -112,7 +134,7 @@ info.winebarrel.jp. A:
|
|
|
112
134
|
|
|
113
135
|
## Demo
|
|
114
136
|
|
|
115
|
-

|
|
116
138
|
|
|
117
139
|
## DNS management using GitHub/Bitbucket
|
|
118
140
|
|
data/bin/roadwork
CHANGED
|
@@ -45,6 +45,7 @@ ARGV.options do |opt|
|
|
|
45
45
|
opt.on('', '--with-soa-ns') { options[:with_soa_ns] = true }
|
|
46
46
|
opt.on('-t', '--test') { mode = :test }
|
|
47
47
|
opt.on('' , '--nameservers SERVERS', Array) {|v| options[:nameservers] = v }
|
|
48
|
+
opt.on('' , '--port PORT', Integer) {|v| options[:port] = v }
|
|
48
49
|
opt.on('' , '--no-color') { options[:color] = false }
|
|
49
50
|
opt.on('' , '--debug') { options[:debug] = true }
|
|
50
51
|
opt.parse!
|
|
@@ -82,11 +82,20 @@ module Roadworker
|
|
|
82
82
|
expected_value = (record.resource_records || []).map {|i| i[:value].strip }.sort
|
|
83
83
|
expected_ttl = fetch_dns_name(record.dns_name) ? 60 : record.ttl
|
|
84
84
|
|
|
85
|
-
actual_value = response.answer.map {|i|
|
|
85
|
+
actual_value = response.answer.map {|i|
|
|
86
|
+
case type
|
|
87
|
+
when 'TXT', 'SPF'
|
|
88
|
+
i.txt
|
|
89
|
+
when 'SRV'
|
|
90
|
+
[i.priority, i.weight, i.port, fix_srv_host(name, i.host)].join(' ')
|
|
91
|
+
else
|
|
92
|
+
i.value
|
|
93
|
+
end
|
|
94
|
+
}.map {|i| i.strip }.sort
|
|
86
95
|
actual_ttls = response.answer.map {|i| i.ttl }
|
|
87
96
|
|
|
88
97
|
case type
|
|
89
|
-
when 'NS', 'PTR', 'MX', 'CNAME'
|
|
98
|
+
when 'NS', 'PTR', 'MX', 'CNAME', 'SRV'
|
|
90
99
|
expected_value = expected_value.map {|i| i.downcase.sub(/\.\Z/, '') }
|
|
91
100
|
actual_value = actual_value.map {|i| i.downcase.sub(/\.\Z/, '') }
|
|
92
101
|
when 'TXT', 'SPF'
|
|
@@ -95,6 +104,11 @@ module Roadworker
|
|
|
95
104
|
actual_value = actual_value.map {|i| i.strip }
|
|
96
105
|
end
|
|
97
106
|
|
|
107
|
+
if ['SRV', 'MX'].include?(type)
|
|
108
|
+
expected_value = expected_value.map {|i| i.gsub(/\s+/, ' ') }
|
|
109
|
+
actual_value = actual_value.map {|i| i.gsub(/\s+/, ' ') }
|
|
110
|
+
end
|
|
111
|
+
|
|
98
112
|
expected_message = record.resource_records ? expected_value.map {|i| "#{i}(#{expected_ttl})" }.join(',') : "#{fetch_dns_name(record.dns_name)}(#{expected_ttl})"
|
|
99
113
|
actual_message = actual_value.zip(actual_ttls).map {|v, t| "#{v}(#{t})" }.join(',')
|
|
100
114
|
logmsg_expected = "expected=#{expected_message}"
|
|
@@ -236,9 +250,23 @@ module Roadworker
|
|
|
236
250
|
|
|
237
251
|
private
|
|
238
252
|
|
|
253
|
+
def fix_srv_host(query_name, host)
|
|
254
|
+
if (host || '').strip.empty?
|
|
255
|
+
query_name
|
|
256
|
+
elsif host =~ /\x1A\Z/
|
|
257
|
+
host = host.sub(/\x1A\Z/, '')
|
|
258
|
+
query_name = query_name.split('.')
|
|
259
|
+
query_name.slice!(0, host.count('.'))
|
|
260
|
+
host + query_name.join('.')
|
|
261
|
+
else
|
|
262
|
+
host
|
|
263
|
+
end
|
|
264
|
+
end
|
|
265
|
+
|
|
239
266
|
def create_resolver
|
|
240
267
|
log_file = @options.debug ? Net::DNS::Resolver::Defaults[:log_file] : '/dev/null'
|
|
241
268
|
resolver_opts = {:log_file => log_file}
|
|
269
|
+
resolver_opts[:port] = @options.port if @options.port
|
|
242
270
|
|
|
243
271
|
if File.exist?(Net::DNS::Resolver::Defaults[:config_file])
|
|
244
272
|
resolver_opts[:nameservers] = @options.nameservers if @options.nameservers
|
data/lib/roadworker/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: roadworker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- winebarrel
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-08-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk
|
|
@@ -17,6 +17,9 @@ dependencies:
|
|
|
17
17
|
- - '>='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: 1.48.0
|
|
20
|
+
- - <
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 2.0.0
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -24,6 +27,9 @@ dependencies:
|
|
|
24
27
|
- - '>='
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: 1.48.0
|
|
30
|
+
- - <
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 2.0.0
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: term-ansicolor
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,6 +142,20 @@ dependencies:
|
|
|
136
142
|
- - '>='
|
|
137
143
|
- !ruby/object:Gem::Version
|
|
138
144
|
version: '0'
|
|
145
|
+
- !ruby/object:Gem::Dependency
|
|
146
|
+
name: rubydns
|
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - '>='
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0'
|
|
152
|
+
type: :development
|
|
153
|
+
prerelease: false
|
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - '>='
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '0'
|
|
139
159
|
description: Roadworker is a tool to manage Route53. It defines the state of Route53
|
|
140
160
|
using DSL, and updates Route53 according to DSL.
|
|
141
161
|
email: sgwr_dts@yahoo.co.jp
|
|
@@ -146,6 +166,7 @@ extra_rdoc_files: []
|
|
|
146
166
|
files:
|
|
147
167
|
- README.md
|
|
148
168
|
- bin/roadwork
|
|
169
|
+
- lib/roadworker.rb
|
|
149
170
|
- lib/roadworker/client.rb
|
|
150
171
|
- lib/roadworker/collection.rb
|
|
151
172
|
- lib/roadworker/dsl-converter.rb
|
|
@@ -158,7 +179,6 @@ files:
|
|
|
158
179
|
- lib/roadworker/route53-wrapper.rb
|
|
159
180
|
- lib/roadworker/string-ext.rb
|
|
160
181
|
- lib/roadworker/version.rb
|
|
161
|
-
- lib/roadworker.rb
|
|
162
182
|
homepage: https://bitbucket.org/winebarrel/roadworker
|
|
163
183
|
licenses:
|
|
164
184
|
- MIT
|
|
@@ -179,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
179
199
|
version: '0'
|
|
180
200
|
requirements: []
|
|
181
201
|
rubyforge_project:
|
|
182
|
-
rubygems_version: 2.
|
|
202
|
+
rubygems_version: 2.4.1
|
|
183
203
|
signing_key:
|
|
184
204
|
specification_version: 4
|
|
185
205
|
summary: Roadworker is a tool to manage Route53.
|