roadworker 0.4.8 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
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.