roadworker 0.5.5.beta5 → 0.5.5.beta6
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 +1 -0
- data/lib/roadworker.rb +3 -0
- data/lib/roadworker/log.rb +2 -1
- data/lib/roadworker/route53-ext.rb +27 -19
- data/lib/roadworker/route53-wrapper.rb +2 -2
- data/lib/roadworker/struct-ext.rb +9 -0
- data/lib/roadworker/utils.rb +14 -0
- data/lib/roadworker/version.rb +1 -1
- metadata +45 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bae16b7e11e639856bfb16ad7153ae2804ffb76
|
4
|
+
data.tar.gz: 495fa3ec71b3174dc41c86642d290b908e7d4b96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c1c7e2a0cf2e03c8c7ec716d413a204a4cf2cefe7b988aee9570f75fb48c2ae6e9ec0bac9c75e79dea8cea4b2fc5d1f2a3b0edaeb21bbefc1583caaaddf4dd0
|
7
|
+
data.tar.gz: 7172d5fac966080e75df126495b8f30833f39e940b3157e6a335ea587021630bc8068ffc683eed3d5259f975bc5188a8bd958fa1de85756189714de15938a499
|
data/README.md
CHANGED
@@ -15,6 +15,7 @@ It defines the state of Route53 using DSL, and updates Route53 according to DSL.
|
|
15
15
|
* `>= 0.5.5`
|
16
16
|
* **Disable Divided HostedZone**
|
17
17
|
* **Use aws-sdk v2** [PR#20](https://github.com/winebarrel/roadworker/pull/20)
|
18
|
+
* Support Cross Account ELB Alias PR#21](https://github.com/winebarrel/roadworker/pull/21)
|
18
19
|
|
19
20
|
## Installation
|
20
21
|
|
data/lib/roadworker.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'logger'
|
2
2
|
require 'ostruct'
|
3
3
|
require 'socket'
|
4
|
+
require 'pp'
|
4
5
|
require 'tempfile'
|
5
6
|
require 'uri'
|
6
7
|
require 'uuid'
|
8
|
+
require 'diffy'
|
7
9
|
|
8
10
|
require 'roadworker/string-ext'
|
11
|
+
require 'roadworker/struct-ext'
|
9
12
|
require 'roadworker/route53-ext'
|
10
13
|
|
11
14
|
require 'roadworker/version'
|
data/lib/roadworker/log.rb
CHANGED
@@ -5,7 +5,8 @@ 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 @options.dry_run
|
8
|
-
|
8
|
+
message = message.send(color) if color
|
9
|
+
@options.logger.send(level, message)
|
9
10
|
end
|
10
11
|
|
11
12
|
end # Log
|
@@ -40,7 +40,7 @@ module Aws
|
|
40
40
|
|
41
41
|
if name =~ /([^.]+)\.elb\.amazonaws.com\Z/i
|
42
42
|
region = $1.downcase
|
43
|
-
alias_target = elb_dns_name_to_alias_target(name, region)
|
43
|
+
alias_target = elb_dns_name_to_alias_target(name, region, options)
|
44
44
|
|
45
45
|
# XXX:
|
46
46
|
alias_target.merge(options)
|
@@ -58,28 +58,36 @@ module Aws
|
|
58
58
|
|
59
59
|
private
|
60
60
|
|
61
|
-
def elb_dns_name_to_alias_target(name, region)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
61
|
+
def elb_dns_name_to_alias_target(name, region, options)
|
62
|
+
if options[:hosted_zone_id]
|
63
|
+
{
|
64
|
+
:hosted_zone_id => options[:hosted_zone_id],
|
65
|
+
:dns_name => name,
|
66
|
+
:evaluate_target_health => false, # XXX:
|
67
|
+
}
|
68
|
+
else
|
69
|
+
elb = Aws::ElasticLoadBalancing::Client.new(:region => region)
|
70
|
+
|
71
|
+
load_balancer = nil
|
72
|
+
elb.describe_load_balancers.each do |page|
|
73
|
+
page.load_balancer_descriptions.each do |lb|
|
74
|
+
if lb.dns_name == name
|
75
|
+
load_balancer = lb
|
76
|
+
end
|
69
77
|
end
|
78
|
+
break if load_balancer
|
70
79
|
end
|
71
|
-
break if load_balancer
|
72
|
-
end
|
73
80
|
|
74
|
-
|
75
|
-
|
76
|
-
|
81
|
+
unless load_balancer
|
82
|
+
raise "Cannot find ELB: #{name}"
|
83
|
+
end
|
77
84
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
85
|
+
{
|
86
|
+
:hosted_zone_id => load_balancer.canonical_hosted_zone_name_id,
|
87
|
+
:dns_name => load_balancer.dns_name,
|
88
|
+
:evaluate_target_health => false, # XXX:
|
89
|
+
}
|
90
|
+
end
|
83
91
|
end
|
84
92
|
|
85
93
|
def s3_dns_name_to_alias_target(name, region, hosted_zone_id)
|
@@ -253,13 +253,13 @@ module Roadworker
|
|
253
253
|
actual = nil if actual.kind_of?(Array) && actual.empty?
|
254
254
|
|
255
255
|
if (expected and !actual) or (!expected and actual)
|
256
|
-
log(:info, "
|
256
|
+
log(:info, " #{attribute}:\n".green + Roadworker::Utils.diff(actual, expected, :color => @options.color, :indent => ' '), false)
|
257
257
|
unless @options.dry_run
|
258
258
|
self.send(:"#{attribute}=", expected)
|
259
259
|
end
|
260
260
|
elsif expected and actual
|
261
261
|
if expected != actual
|
262
|
-
log(:info, "
|
262
|
+
log(:info, " #{attribute}:\n".green + Roadworker::Utils.diff(actual, expected, :color => @options.color, :indent => ' '), false)
|
263
263
|
unless @options.dry_run
|
264
264
|
self.send(:"#{attribute}=", expected)
|
265
265
|
end
|
data/lib/roadworker/utils.rb
CHANGED
@@ -14,6 +14,20 @@ module Roadworker
|
|
14
14
|
|
15
15
|
result
|
16
16
|
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class << self
|
20
|
+
def diff(obj1, obj2, options = {})
|
21
|
+
diffy = Diffy::Diff.new(
|
22
|
+
obj1.pretty_inspect,
|
23
|
+
obj2.pretty_inspect,
|
24
|
+
:diff => '-u'
|
25
|
+
)
|
26
|
+
|
27
|
+
out = diffy.to_s(options[:color] ? :color : :text).gsub(/\s+\z/m, '')
|
28
|
+
out.gsub!(/^/, options[:indent]) if options[:indent]
|
29
|
+
out
|
30
|
+
end
|
17
31
|
end # of class methods
|
18
32
|
end
|
19
33
|
end
|
data/lib/roadworker/version.rb
CHANGED
metadata
CHANGED
@@ -1,181 +1,195 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roadworker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.5.
|
4
|
+
version: 0.5.5.beta6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: term-ansicolor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: net-dns2
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.8.6
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.8.6
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: uuid
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: systemu
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: diffy
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '0'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rake
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- -
|
122
|
+
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: 3.0.0
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- -
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: 3.0.0
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: rspec-instafail
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- -
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
145
|
version: '0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- -
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rubydns
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - ~>
|
157
|
+
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
159
|
version: 0.8.5
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - ~>
|
164
|
+
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
166
|
version: 0.8.5
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: coveralls
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- -
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
173
|
version: '0'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- -
|
178
|
+
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: transpec
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
|
-
- -
|
185
|
+
- - ">="
|
172
186
|
- !ruby/object:Gem::Version
|
173
187
|
version: '0'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
|
-
- -
|
192
|
+
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: '0'
|
181
195
|
description: Roadworker is a tool to manage Route53. It defines the state of Route53
|
@@ -188,6 +202,7 @@ extra_rdoc_files: []
|
|
188
202
|
files:
|
189
203
|
- README.md
|
190
204
|
- bin/roadwork
|
205
|
+
- lib/roadworker.rb
|
191
206
|
- lib/roadworker/client.rb
|
192
207
|
- lib/roadworker/collection.rb
|
193
208
|
- lib/roadworker/dsl-converter.rb
|
@@ -199,9 +214,9 @@ files:
|
|
199
214
|
- lib/roadworker/route53-health-check.rb
|
200
215
|
- lib/roadworker/route53-wrapper.rb
|
201
216
|
- lib/roadworker/string-ext.rb
|
217
|
+
- lib/roadworker/struct-ext.rb
|
202
218
|
- lib/roadworker/utils.rb
|
203
219
|
- lib/roadworker/version.rb
|
204
|
-
- lib/roadworker.rb
|
205
220
|
homepage: http://roadworker.codenize.tools/
|
206
221
|
licenses:
|
207
222
|
- MIT
|
@@ -212,17 +227,17 @@ require_paths:
|
|
212
227
|
- lib
|
213
228
|
required_ruby_version: !ruby/object:Gem::Requirement
|
214
229
|
requirements:
|
215
|
-
- -
|
230
|
+
- - ">="
|
216
231
|
- !ruby/object:Gem::Version
|
217
232
|
version: '0'
|
218
233
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
234
|
requirements:
|
220
|
-
- -
|
235
|
+
- - ">"
|
221
236
|
- !ruby/object:Gem::Version
|
222
237
|
version: 1.3.1
|
223
238
|
requirements: []
|
224
239
|
rubyforge_project:
|
225
|
-
rubygems_version: 2.
|
240
|
+
rubygems_version: 2.4.5
|
226
241
|
signing_key:
|
227
242
|
specification_version: 4
|
228
243
|
summary: Roadworker is a tool to manage Route53.
|