roadworker 0.5.5.beta5 → 0.5.5.beta6

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: 292c907fb987acc0bbb3062ff2ebcb35142e7cf9
4
- data.tar.gz: 2e45b43a43831f14fa42f6e127e7b6d98251d4ed
3
+ metadata.gz: 5bae16b7e11e639856bfb16ad7153ae2804ffb76
4
+ data.tar.gz: 495fa3ec71b3174dc41c86642d290b908e7d4b96
5
5
  SHA512:
6
- metadata.gz: b76aefef72d4d62356ba3bd6ea52f1eba5545b97bb765d9899e6d7aa81c3f900ff45153bb061672e81584525811683aae2740e0c4a34ff8ceab4e414080a7d19
7
- data.tar.gz: 6e82becf01cc502f8d1ff35fbeb0b96ba8b59b1bcff1bcadea45376e8d639c794a839a9be89460c0f1ab3af59d306fb6e2aa44b553e73e5ee06532887dc09210
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'
@@ -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
- @options.logger.send(level, message.send(color))
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
- elb = Aws::ElasticLoadBalancing::Client.new(:region => region)
63
-
64
- load_balancer = nil
65
- elb.describe_load_balancers.each do |page|
66
- page.load_balancer_descriptions.each do |lb|
67
- if lb.dns_name == name
68
- load_balancer = lb
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
- unless load_balancer
75
- raise "Cannot find ELB: #{name}"
76
- end
81
+ unless load_balancer
82
+ raise "Cannot find ELB: #{name}"
83
+ end
77
84
 
78
- {
79
- :hosted_zone_id => load_balancer.canonical_hosted_zone_name_id,
80
- :dns_name => load_balancer.dns_name,
81
- :evaluate_target_health => false, # XXX:
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, " set #{attribute}=#{expected.inspect}" , :green)
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, " set #{attribute}=#{expected.inspect}" , :green)
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
@@ -0,0 +1,9 @@
1
+ class Struct
2
+ def pretty_print(q)
3
+ self.to_h.pretty_print(q)
4
+ end
5
+
6
+ def pretty_print_cycle(q)
7
+ self.to_h.pretty_print_cycle(q)
8
+ end
9
+ end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Roadworker
2
- VERSION = "0.5.5.beta5"
2
+ VERSION = "0.5.5.beta6"
3
3
  end
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.beta5
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-07 00:00:00.000000000 Z
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.0.14.1
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.