roadworker 0.5.7 → 0.5.8.beta

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: 6fe9d5b0776331837b7cf6bd2ebbf040295fa597
4
- data.tar.gz: 483e6c270f29fa43125663b8fe20c840f67d43e6
3
+ metadata.gz: 96ce8fe624182e9f1359bda2e4859d01cc574066
4
+ data.tar.gz: 40dc9668ed72d8571d504a6b006ed90d12975c3a
5
5
  SHA512:
6
- metadata.gz: 5e6fc9d11b4b10d25a84c5aa5d10784640f950cae23f7ddd5740b157fcc0a5c8b57bebc5d99f0115e6d00f606cf5a39d6fbbacd1a7d62a061d02e356955d99a8
7
- data.tar.gz: ae9b8d24576843ae3d36691e71603ce0919d4e6c9a07815013f6bb78291a135ec5742d460f105eda7fe01cd031907ee2917d2a6c5ff8373600dfdd3afa0cda8d
6
+ metadata.gz: feef75736ca96beae549fecf6edeee7daf4df51f21beaf176d6c4e1d780e5aa7e1aa1c2b7ae11836038dee3114769b3c10f4dffc94a4a941b22af440076d08bc
7
+ data.tar.gz: 29dcbb331bd6a942f812aec98812632d860b13c5c5ad9ab62a29435f8e62184fb000eec55d111eb582fc824e72d28393f619a76a3e08ca5a575e62f19c7a030f
data/README.md CHANGED
@@ -197,6 +197,20 @@ hosted_zone "winebarrel.jp." do
197
197
  end
198
198
  ```
199
199
 
200
+ ### Exclude specific records from management under Roadworker
201
+
202
+ Use this if your zone contains rrsets managed by other tools, and you want to ignore them in Roadworker.
203
+
204
+ ```ruby
205
+ hosted_zone "winebarrel.jp." do
206
+ ignore "ignore.winebarrel.jp"
207
+ ignore /^regexp-ignore/
208
+
209
+ # *.ignore2.winebarrel.jp and ignore2.winebarrel.jp
210
+ ignore_under "ignore2.winebarrel.jp"
211
+ end
212
+ ```
213
+
200
214
  ## Test
201
215
 
202
216
  Routefile compares the results of a query to the DNS and DSL in the test mode.
@@ -122,6 +122,13 @@ module Roadworker
122
122
  actual_record = actual.delete([name, actual_type, set_identifier])
123
123
  end
124
124
 
125
+ if expected_zone.ignore_patterns.any? { |pattern| pattern === name }
126
+ log(:warn, "Ignoring defined record in DSL, because it is ignored record", :yellow) do
127
+ "#{name} #{type}" + (set_identifier ? " (#{set_identifier})" : '')
128
+ end
129
+ next
130
+ end
131
+
125
132
  if actual_record
126
133
  unless actual_record.eql?(expected_record)
127
134
  actual_record.update(expected_record)
@@ -132,6 +139,11 @@ module Roadworker
132
139
  end
133
140
 
134
141
  actual.each do |keys, record|
142
+ name = keys[0]
143
+ if expected_zone.ignore_patterns.any? { |pattern| pattern === name }
144
+ next
145
+ end
146
+
135
147
  record.delete
136
148
  end
137
149
  end
@@ -298,7 +298,7 @@ module Roadworker
298
298
  end
299
299
 
300
300
  def asterisk_to_anyname(name)
301
- rand_str = (("a".."z").to_a + ("A".."z").to_a + (0..9).to_a).shuffle[0..7].join
301
+ rand_str = (("a".."z").to_a + ("A".."Z").to_a + (0..9).to_a).shuffle[0..7].join
302
302
  name.gsub('*', "#{ASTERISK_PREFIX}-#{rand_str}")
303
303
  end
304
304
 
@@ -68,6 +68,7 @@ module Roadworker
68
68
  :vpcs => [],
69
69
  :resource_record_sets => rrsets,
70
70
  :rrsets => rrsets,
71
+ :ignore_patterns => [],
71
72
  })
72
73
 
73
74
  instance_eval(&block)
@@ -93,6 +94,19 @@ module Roadworker
93
94
  @result.vpcs << vpc_h
94
95
  end
95
96
 
97
+ def ignore(rrset_name)
98
+ @result.ignore_patterns << case rrset_name
99
+ when Regexp
100
+ rrset_name
101
+ else
102
+ rrset_name.to_s.sub(/\.\z/, '')
103
+ end
104
+ end
105
+
106
+ def ignore_under(rrset_name)
107
+ ignore /(\A|\.)#{Regexp.escape(rrset_name.to_s.sub(/\.\z/, ''))}\z/
108
+ end
109
+
96
110
  def resource_record_set(rrset_name, type, &block)
97
111
  if rrset_name.sub(/\.\z/, '') !~ /#{Regexp.escape(@name.sub(/\.\Z/, ''))}\Z/i
98
112
  raise "Invalid ResourceRecordSet Name: #{rrset_name}"
@@ -1,3 +1,3 @@
1
1
  module Roadworker
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.8.beta"
3
3
  end
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.5.7
4
+ version: 0.5.8.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2016-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -247,12 +247,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  required_rubygems_version: !ruby/object:Gem::Requirement
249
249
  requirements:
250
- - - ">="
250
+ - - ">"
251
251
  - !ruby/object:Gem::Version
252
- version: '0'
252
+ version: 1.3.1
253
253
  requirements: []
254
254
  rubyforge_project:
255
- rubygems_version: 2.4.5.1
255
+ rubygems_version: 2.5.1
256
256
  signing_key:
257
257
  specification_version: 4
258
258
  summary: Roadworker is a tool to manage Route53.