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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c89e85d2d1c41dc34abb5fe3373d01f9825f0d5
4
- data.tar.gz: b706ac65aba1dcd92037a0557fb1da34478483cf
3
+ metadata.gz: 6728e9d481aa2975e230a25a60e2ad3a9607f94a
4
+ data.tar.gz: 0725f50ba8ae99e6b4c9e219763734eb1c9925bf
5
5
  SHA512:
6
- metadata.gz: e4e279416186036dbd7120151fadc36367d28d53790203a02429a04ec7e9b300da37e82268bdbea5794afa492234b6a3ddb24a9f2ec8293aff22fbc9332a5601
7
- data.tar.gz: 8b375a8a856d3905d04b57718d6923652123a1102396a3fdd25953a3e3fe4b1195e9aee712f116bd0217c0c8106e4530558ad9379fd2292da9e63cdd9c8391cc
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
  [![Gem Version](https://badge.fury.io/rb/roadworker.png)](http://badge.fury.io/rb/roadworker)
8
- [![Build Status](https://drone.io/bitbucket.org/winebarrel/roadworker/status.png)](https://drone.io/bitbucket.org/winebarrel/roadworker/latest)
8
+ [![Build Status](https://travis-ci.org/winebarrel/roadworker.svg?branch=master)](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
- ![Roadworker Demo](https://bitbucket.org/winebarrel/roadworker/downloads/roadworker-demo.gif)
137
+ ![Roadworker Demo](https://raw.githubusercontent.com/winebarrel/roadworker/master/etc/demo.gif)
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| (%w(TXT SPF).include?(type) ? i.txt : i.value).strip }.sort
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
@@ -1,5 +1,5 @@
1
1
  module Roadworker
2
- VERSION = "0.4.8"
2
+ VERSION = "0.4.9"
3
3
  end
4
4
 
5
5
  Version = Roadworker::VERSION
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.8
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-07-25 00:00:00.000000000 Z
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.0.14
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.