roadworker 0.4.4 → 0.4.5

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: 6f694d04bb0eda4bc71551dd53e709123d8d7f81
4
- data.tar.gz: 3970732f55fc1f556cd65f1393480bd996feac05
3
+ metadata.gz: af3665677e4511d16efbe94f88b4be369f6e5cde
4
+ data.tar.gz: b61a6cf8b695aa77a9334ccb3353077f860eb3fb
5
5
  SHA512:
6
- metadata.gz: c4133a0c6f348ac2dc5fbeaaf0150f446400af9c5f68ca65b4731eaf56d2d0b290c2ee40267cf0bbd77343de16742da877becdfbb3a6f981534863e49445ff97
7
- data.tar.gz: a2deb137b51610117ef0792a71d5e72ab97525f85d0a29c95f038cc2e89528b9839b700f0c84f6672048470f26896ca4c85ef72f3d9a8f930d5d44b1364fcd42
6
+ metadata.gz: 1a214364df43143a33b4977c2f79bd348b87ea9e1f5b9198f771304ba307d2d181c1bcf390059014e889d11f6bca17ea52c69c437fa32a139abd3d29c6128642
7
+ data.tar.gz: 87707077040830d1627d45611d2b3cad50a168ce094353ab1ec9354783581c3b387ec3330d11df44f74d049659212693e59dc7083c6941fa6197921346efa078
data/README.md CHANGED
@@ -65,6 +65,10 @@ hosted_zone "info.winebarrel.jp." do
65
65
  dns_name "elb-dns-name.elb.amazonaws.com"
66
66
  end
67
67
 
68
+ rrset "yyy.info.winebarrel.jp.", "A" do
69
+ dns_name "elb-dns-name2.elb.amazonaws.com", :evaluate_target_health => true
70
+ end
71
+
68
72
  rrset "zzz.info.winebarrel.jp", "A" do
69
73
  set_identifier "Primary"
70
74
  failover "PRIMARY"
@@ -42,6 +42,16 @@ module Roadworker
42
42
  end
43
43
 
44
44
  "health_check #{hc_args}"
45
+ when :dns_name
46
+ if value.kind_of?(Array) and value.length > 1
47
+ dns_name_opts = value.pop
48
+ value = value.inspect.sub(/\A\[/, '').sub(/\]\Z/, '')
49
+ dns_name_opts = dns_name_opts.inspect.sub(/\A\{/, '').sub(/\}\Z/, '')
50
+ "#{key} #{value}, #{dns_name_opts}"
51
+ else
52
+ value = [value].flatten.inspect.sub(/\A\[/, '').sub(/\]\Z/, '')
53
+ "#{key} #{value}"
54
+ end
45
55
  else
46
56
  "#{key} #{value.inspect}"
47
57
  end
@@ -22,7 +22,6 @@ proc {
22
22
  }.call
23
23
 
24
24
  require 'net/dns'
25
- require 'roadworker/net-dns-ext'
26
25
 
27
26
  module Roadworker
28
27
  class DSL
@@ -112,8 +112,9 @@ module Roadworker
112
112
  @result.region = value
113
113
  end
114
114
 
115
- def dns_name(value)
116
- @result.dns_name = value
115
+ def dns_name(value, options = {})
116
+ options = AWS::Route53.normalize_dns_name_options(options)
117
+ @result.dns_name = [value, options]
117
118
  end
118
119
 
119
120
  def failover(value)
@@ -64,6 +64,13 @@ module Roadworker
64
64
 
65
65
  if (alias_target = record_h.delete(:alias_target))
66
66
  record_h[:dns_name] = alias_target[:dns_name]
67
+
68
+ if alias_target[:evaluate_target_health]
69
+ record_h[:dns_name] = [
70
+ record_h[:dns_name],
71
+ {:evaluate_target_health => alias_target[:evaluate_target_health]}
72
+ ]
73
+ end
67
74
  end
68
75
  end
69
76
  end
@@ -1,45 +1,6 @@
1
1
  require 'aws-sdk'
2
2
 
3
3
  module AWS
4
- module Core
5
- class Client
6
-
7
- # PTF:
8
- class << self
9
- alias load_api_config_orig load_api_config
10
-
11
- def load_api_config(api_version)
12
- yaml = load_api_config_orig(api_version)
13
-
14
- if service_name == 'Route53'
15
- rewrite_api(yaml)
16
- end
17
-
18
- return yaml
19
- end
20
-
21
- private
22
-
23
- def rewrite_api(value)
24
- case value
25
- when Array
26
- value.each {|v| rewrite_api(v) }
27
- when Hash
28
- value.each do |k, v|
29
- case k
30
- when :health_check_config
31
- v[:members][:ip_address][:required] = false
32
- end
33
-
34
- rewrite_api(v)
35
- end
36
- end
37
- end
38
- end # of class method
39
-
40
- end # Client
41
- end # Core
42
-
43
4
  class Route53
44
5
 
45
6
  # http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
@@ -59,13 +20,29 @@ module AWS
59
20
  CF_HOSTED_ZONE_ID = 'Z2FDTNDATAQYW2'
60
21
 
61
22
  class << self
62
- def dns_name_to_alias_target(name, hosted_zone_id, hosted_zone_name)
23
+ def normalize_dns_name_options(src)
24
+ dst = {}
25
+
26
+ {
27
+ :evaluate_target_health => false,
28
+ }.each do |key, defalut_value|
29
+ dst[key] = src[key] || false
30
+ end
31
+
32
+ return dst
33
+ end
34
+
35
+ def dns_name_to_alias_target(name, options, hosted_zone_id, hosted_zone_name)
63
36
  hosted_zone_name = hosted_zone_name.sub(/\.\Z/, '')
64
37
  name = name.sub(/\.\Z/, '')
38
+ options ||= {}
65
39
 
66
40
  if name =~ /([^.]+)\.elb\.amazonaws.com\Z/i
67
41
  region = $1.downcase
68
- elb_dns_name_to_alias_target(name, region)
42
+ alias_target = elb_dns_name_to_alias_target(name, region)
43
+
44
+ # XXX:
45
+ alias_target.merge(options)
69
46
  elsif (s3_hosted_zone_id = S3_WEBSITE_ENDPOINTS[name.downcase]) and name =~ /\As3-website-([^.]+)\.amazonaws\.com\Z/i
70
47
  region = $1.downcase
71
48
  s3_dns_name_to_alias_target(name, region, s3_hosted_zone_id)
@@ -133,7 +133,8 @@ module Roadworker
133
133
  case attribute
134
134
  when :dns_name
135
135
  attribute = :alias_target
136
- value = AWS::Route53.dns_name_to_alias_target(value, @hosted_zone.id, @hosted_zone.name || @options.hosted_zone_name)
136
+ dns_name, dns_name_opts = value
137
+ value = AWS::Route53.dns_name_to_alias_target(dns_name, dns_name_opts, @hosted_zone.id, @hosted_zone.name || @options.hosted_zone_name)
137
138
  when :health_check
138
139
  attribute = :health_check_id
139
140
  value = @options.health_checks.find_or_create(value)
@@ -173,8 +174,8 @@ module Roadworker
173
174
  elsif expected and actual
174
175
  case attribute
175
176
  when :dns_name
176
- expected = expected.downcase.sub(/\.\Z/, '')
177
- actual = actual.downcase.sub(/\.\Z/, '')
177
+ expected[0] = expected[0].downcase.sub(/\.\Z/, '')
178
+ actual[0] = actual[0].downcase.sub(/\.\Z/, '')
178
179
  end
179
180
 
180
181
  (expected == actual)
@@ -243,12 +244,23 @@ module Roadworker
243
244
  end
244
245
 
245
246
  def dns_name
246
- (@resource_record_set.alias_target || {})[:dns_name]
247
+ alias_target = @resource_record_set.alias_target || {}
248
+ dns_name = alias_target[:dns_name]
249
+
250
+ if dns_name
251
+ [
252
+ dns_name,
253
+ AWS::Route53.normalize_dns_name_options(alias_target),
254
+ ]
255
+ else
256
+ nil
257
+ end
247
258
  end
248
259
 
249
- def dns_name=(name)
250
- if name
251
- @resource_record_set.alias_target = AWS::Route53.dns_name_to_alias_target(name, @hosted_zone.id, @hosted_zone.name || @options.hosted_zone_name)
260
+ def dns_name=(value)
261
+ if value
262
+ dns_name, dns_name_opts = value
263
+ @resource_record_set.alias_target = AWS::Route53.dns_name_to_alias_target(dns_name, dns_name_opts, @hosted_zone.id, @hosted_zone.name || @options.hosted_zone_name)
252
264
  else
253
265
  @resource_record_set.alias_target = nil
254
266
  end
@@ -1,5 +1,5 @@
1
1
  module Roadworker
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
4
4
 
5
5
  Version = Roadworker::VERSION
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roadworker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - winebarrel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-03 00:00:00.000000000 Z
11
+ date: 2014-05-26 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
- version: 1.39.0
19
+ version: 1.41.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
- version: 1.39.0
26
+ version: 1.41.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: term-ansicolor
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: net-dns
42
+ name: net-dns2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.0
47
+ version: 0.8.4
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
- version: 0.8.0
54
+ version: 0.8.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: uuid
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -152,7 +152,6 @@ files:
152
152
  - lib/roadworker/dsl-tester.rb
153
153
  - lib/roadworker/dsl.rb
154
154
  - lib/roadworker/log.rb
155
- - lib/roadworker/net-dns-ext.rb
156
155
  - lib/roadworker/route53-exporter.rb
157
156
  - lib/roadworker/route53-ext.rb
158
157
  - lib/roadworker/route53-health-check.rb
@@ -185,3 +184,4 @@ signing_key:
185
184
  specification_version: 4
186
185
  summary: Roadworker is a tool to manage Route53.
187
186
  test_files: []
187
+ has_rdoc:
@@ -1,27 +0,0 @@
1
- require 'net/dns'
2
- require 'net/dns/rr'
3
-
4
- module Net
5
- module DNS
6
- module QueryTypes
7
- SPF = 99
8
- end # QueryTypes
9
-
10
- class RR
11
- class Types
12
- TYPES['SPF'] = 99
13
- end # Types
14
-
15
- class SPF < TXT
16
- def spf
17
- txt
18
- end
19
-
20
- private
21
- def set_type
22
- @type = Net::DNS::RR::Types.new("SPF")
23
- end
24
- end # SPF
25
- end # RR
26
- end # DNS
27
- end # Net