roadworker 0.5.14 → 0.5.16
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/bin/roadwork +4 -4
- data/lib/roadworker/batch.rb +17 -4
- data/lib/roadworker/client.rb +1 -1
- data/lib/roadworker/dsl-tester.rb +2 -2
- data/lib/roadworker/log.rb +1 -1
- data/lib/roadworker/string_helper.rb +27 -0
- data/lib/roadworker/version.rb +1 -1
- data/lib/roadworker.rb +1 -1
- metadata +18 -4
- data/lib/roadworker/string-ext.rb +0 -28
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3668f2c1e88bb9bb0094afd9c0bdc2521eb1dd496357f1fbcd655502e258aaa7
|
|
4
|
+
data.tar.gz: c40a29d0329c4ecae501b8563213fdbfe56e85bac67cc6dce6ae2a2db225f5be
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cc4096d507f7c487efe8f7a261f42fd5297f086a3720188c84fda0cce623152847995974ce2b454937310552b5101fca2244d42751cac0c5e8cbace1cc6ebffb
|
|
7
|
+
data.tar.gz: f8b3d161ade57d208682bcfd3fead73773aa5616c78a4cba34e97a3b2145f22e15f9e3fa4a76b135a37adac2f0372e85c725f0e6b9d5abd7651f85cabbd09a3e
|
data/bin/roadwork
CHANGED
|
@@ -164,9 +164,9 @@ begin
|
|
|
164
164
|
result_message = [examples_message, failures_message].join(', ')
|
|
165
165
|
|
|
166
166
|
if failures.zero?
|
|
167
|
-
logger.info(
|
|
167
|
+
logger.info(Roadworker::StringHelper.green(result_message))
|
|
168
168
|
else
|
|
169
|
-
logger.info(
|
|
169
|
+
logger.info(Roadworker::StringHelper.red(result_message))
|
|
170
170
|
exit 1
|
|
171
171
|
end
|
|
172
172
|
when :apply
|
|
@@ -180,7 +180,7 @@ begin
|
|
|
180
180
|
|
|
181
181
|
updated = client.apply(file)
|
|
182
182
|
|
|
183
|
-
logger.info('No change'
|
|
183
|
+
logger.info(Roadworker::StringHelper.intense_blue('No change')) unless updated
|
|
184
184
|
else
|
|
185
185
|
raise 'must not happen'
|
|
186
186
|
end
|
|
@@ -188,7 +188,7 @@ rescue => e
|
|
|
188
188
|
if options[:debug]
|
|
189
189
|
raise e
|
|
190
190
|
else
|
|
191
|
-
$stderr.puts("[ERROR] #{e.class}: #{e.message}"
|
|
191
|
+
$stderr.puts(Roadworker::StringHelper.red("[ERROR] #{e.class}: #{e.message}"))
|
|
192
192
|
exit 1
|
|
193
193
|
end
|
|
194
194
|
end
|
data/lib/roadworker/batch.rb
CHANGED
|
@@ -85,10 +85,10 @@ module Roadworker
|
|
|
85
85
|
total_ops = 0
|
|
86
86
|
ops.slice_before do |op|
|
|
87
87
|
total_value_size += op.value_size
|
|
88
|
-
total_ops +=
|
|
88
|
+
total_ops += op.op_size
|
|
89
89
|
if total_value_size > 32000 || total_ops > 1000
|
|
90
90
|
total_value_size = op.value_size
|
|
91
|
-
total_ops =
|
|
91
|
+
total_ops = op.op_size
|
|
92
92
|
true
|
|
93
93
|
else
|
|
94
94
|
false
|
|
@@ -150,6 +150,8 @@ module Roadworker
|
|
|
150
150
|
end
|
|
151
151
|
|
|
152
152
|
# Count total length of RR "Value" included in changes
|
|
153
|
+
# https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests-changeresourcerecordsets
|
|
154
|
+
#
|
|
153
155
|
# See also: Batch#slice_operations
|
|
154
156
|
# @return [Integer]
|
|
155
157
|
def value_size
|
|
@@ -163,6 +165,17 @@ module Roadworker
|
|
|
163
165
|
end.sum || 0
|
|
164
166
|
end
|
|
165
167
|
|
|
168
|
+
# Count of operational size
|
|
169
|
+
# https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests-changeresourcerecordsets
|
|
170
|
+
#
|
|
171
|
+
# See also: Batch#slice_operations
|
|
172
|
+
# @return [Integer]
|
|
173
|
+
def op_size
|
|
174
|
+
changes.map do |change|
|
|
175
|
+
change[:action] == 'UPSERT' ? 2 : 1
|
|
176
|
+
end.sum || 0
|
|
177
|
+
end
|
|
178
|
+
|
|
166
179
|
# @return [Array<Hash>]
|
|
167
180
|
def changes
|
|
168
181
|
raise NotImplementedError
|
|
@@ -342,8 +355,8 @@ module Roadworker
|
|
|
342
355
|
end
|
|
343
356
|
|
|
344
357
|
if desired != present
|
|
345
|
-
color =
|
|
346
|
-
log(:info, " #{attribute}:\n"
|
|
358
|
+
color = Roadworker::StringHelper.colorize # XXX:
|
|
359
|
+
log(:info, Roadworker::StringHelper.green(" #{attribute}:\n") + Roadworker::Utils.diff(present, desired, color: color, indent: ' '), false)
|
|
347
360
|
end
|
|
348
361
|
end
|
|
349
362
|
end
|
data/lib/roadworker/client.rb
CHANGED
|
@@ -6,7 +6,7 @@ module Roadworker
|
|
|
6
6
|
def initialize(options = {})
|
|
7
7
|
@options = OpenStruct.new(options)
|
|
8
8
|
@options.logger ||= Logger.new($stdout)
|
|
9
|
-
|
|
9
|
+
Roadworker::StringHelper.colorize = @options.color
|
|
10
10
|
@options.route53 = Aws::Route53::Client.new
|
|
11
11
|
@health_checks = HealthCheck.health_checks(@options.route53, :extended => true)
|
|
12
12
|
@options.health_checks = @health_checks
|
|
@@ -323,11 +323,11 @@ module Roadworker
|
|
|
323
323
|
end
|
|
324
324
|
|
|
325
325
|
def print_success
|
|
326
|
-
print '.'
|
|
326
|
+
print Roadworker::StringHelper.intense_green('.') unless @options.debug
|
|
327
327
|
end
|
|
328
328
|
|
|
329
329
|
def print_failure
|
|
330
|
-
print 'F'
|
|
330
|
+
print Roadworker::StringHelper.intense_red('F') unless @options.debug
|
|
331
331
|
end
|
|
332
332
|
|
|
333
333
|
def fetch_dns_name(dns_name)
|
data/lib/roadworker/log.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Roadworker
|
|
|
5
5
|
log_id = yield if block_given?
|
|
6
6
|
message = "#{message}: #{log_id}" if log_id
|
|
7
7
|
message << ' (dry-run)' if dry_run
|
|
8
|
-
message =
|
|
8
|
+
message = Roadworker::StringHelper.public_send(color, message) if color
|
|
9
9
|
logger.send(level, message)
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'term/ansicolor'
|
|
2
|
+
|
|
3
|
+
module Roadworker
|
|
4
|
+
module StringHelper
|
|
5
|
+
@colorize = false
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
def colorize=(value)
|
|
9
|
+
@colorize = value
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def colorize
|
|
13
|
+
@colorize
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
Term::ANSIColor::Attribute.named_attributes.map do |attribute|
|
|
17
|
+
define_method(attribute.name) do |str|
|
|
18
|
+
if colorize
|
|
19
|
+
Term::ANSIColor.public_send(attribute.name, str)
|
|
20
|
+
else
|
|
21
|
+
str
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/roadworker/version.rb
CHANGED
data/lib/roadworker.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.5.
|
|
4
|
+
version: 0.5.16
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- winebarrel
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-11-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk-route53
|
|
@@ -192,6 +192,20 @@ dependencies:
|
|
|
192
192
|
- - ">="
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
194
|
version: '0'
|
|
195
|
+
- !ruby/object:Gem::Dependency
|
|
196
|
+
name: nokogiri
|
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
|
198
|
+
requirements:
|
|
199
|
+
- - ">="
|
|
200
|
+
- !ruby/object:Gem::Version
|
|
201
|
+
version: '0'
|
|
202
|
+
type: :development
|
|
203
|
+
prerelease: false
|
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
+
requirements:
|
|
206
|
+
- - ">="
|
|
207
|
+
- !ruby/object:Gem::Version
|
|
208
|
+
version: '0'
|
|
195
209
|
description: Roadworker is a tool to manage Route53. It defines the state of Route53
|
|
196
210
|
using DSL, and updates Route53 according to DSL.
|
|
197
211
|
email: sgwr_dts@yahoo.co.jp
|
|
@@ -214,7 +228,7 @@ files:
|
|
|
214
228
|
- lib/roadworker/route53-ext.rb
|
|
215
229
|
- lib/roadworker/route53-health-check.rb
|
|
216
230
|
- lib/roadworker/route53-wrapper.rb
|
|
217
|
-
- lib/roadworker/
|
|
231
|
+
- lib/roadworker/string_helper.rb
|
|
218
232
|
- lib/roadworker/struct-ext.rb
|
|
219
233
|
- lib/roadworker/template-helper.rb
|
|
220
234
|
- lib/roadworker/utils.rb
|
|
@@ -238,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
238
252
|
- !ruby/object:Gem::Version
|
|
239
253
|
version: '0'
|
|
240
254
|
requirements: []
|
|
241
|
-
rubygems_version: 3.1
|
|
255
|
+
rubygems_version: 3.4.1
|
|
242
256
|
signing_key:
|
|
243
257
|
specification_version: 4
|
|
244
258
|
summary: Roadworker is a tool to manage Route53.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require 'term/ansicolor'
|
|
2
|
-
|
|
3
|
-
class String
|
|
4
|
-
@@colorize = false
|
|
5
|
-
|
|
6
|
-
class << self
|
|
7
|
-
def colorize=(value)
|
|
8
|
-
@@colorize = value
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def colorize
|
|
12
|
-
@@colorize
|
|
13
|
-
end
|
|
14
|
-
end # of class method
|
|
15
|
-
|
|
16
|
-
Term::ANSIColor::Attribute.named_attributes.map do |attribute|
|
|
17
|
-
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
|
18
|
-
def #{attribute.name}
|
|
19
|
-
if @@colorize
|
|
20
|
-
Term::ANSIColor.send(#{attribute.name.inspect}, self)
|
|
21
|
-
else
|
|
22
|
-
self
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
EOS
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
end
|