route53 0.1.2 → 0.1.3
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.
- data/bin/route53 +1 -0
- data/lib/route53.rb +7 -2
- data/lib/route53/cli.rb +11 -12
- data/lib/route53/version.rb +1 -1
- data/route53.gemspec +1 -2
- metadata +8 -25
- data/Gemfile +0 -4
- data/Gemfile.lock +0 -21
data/bin/route53
CHANGED
data/lib/route53.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
|
2
|
+
require 'rubygems'
|
1
3
|
require 'hmac'
|
2
4
|
require 'hmac-sha2'
|
3
5
|
require 'base64'
|
4
6
|
require 'time'
|
5
7
|
require 'net/http'
|
8
|
+
require 'net/https'
|
6
9
|
require 'uri'
|
7
10
|
require 'hpricot'
|
8
11
|
require 'builder'
|
@@ -31,7 +34,8 @@ module Route53
|
|
31
34
|
puts "Req: #{data}" if type != "GET" && @verbose
|
32
35
|
uri = URI(url)
|
33
36
|
http = Net::HTTP.new(uri.host, uri.port)
|
34
|
-
http.use_ssl = true
|
37
|
+
http.use_ssl = true if uri.scheme == "https"
|
38
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if RUBY_VERSION.start_with?("1.8")
|
35
39
|
time = get_date
|
36
40
|
hmac = HMAC::SHA256.new(@secret)
|
37
41
|
hmac.update(time)
|
@@ -78,7 +82,8 @@ module Route53
|
|
78
82
|
if @date_stale.nil? || @date_stale < Time.now - 30
|
79
83
|
uri = URI(@endpoint)
|
80
84
|
http = Net::HTTP.new(uri.host, uri.port)
|
81
|
-
http.use_ssl = true
|
85
|
+
http.use_ssl = true if uri.scheme == "https"
|
86
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if RUBY_VERSION.start_with?("1.8")
|
82
87
|
resp = nil
|
83
88
|
puts "Making Date Request" if @verbose
|
84
89
|
http.start { |http| resp = http.head('/date') }
|
data/lib/route53/cli.rb
CHANGED
@@ -4,7 +4,6 @@ require 'optparse'
|
|
4
4
|
require 'ostruct'
|
5
5
|
require 'date'
|
6
6
|
require 'yaml'
|
7
|
-
require 'route53/version'
|
8
7
|
|
9
8
|
module Route53
|
10
9
|
class CLI
|
@@ -60,7 +59,7 @@ module Route53
|
|
60
59
|
opts.on('-g', '--change', String, "Change a record") { |record| @options.change_record = true }
|
61
60
|
|
62
61
|
opts.on('--name [NAME]', String, "Specify a name for a record") { |name| @options.name = name }
|
63
|
-
opts.on('--type [TYPE]', String, "Specify a type for a record") { |
|
62
|
+
opts.on('--type [TYPE]', String, "Specify a type for a record") { |dnstype| @options.dnstype = dnstype }
|
64
63
|
opts.on('--ttl [TTL]', String, "Specify a TTL for a record") { |ttl| @options.ttl = ttl }
|
65
64
|
opts.on('--values [VALUE1],[VALUE2],[VALUE3]', Array, "Specify one or multiple values for a record") { |value| @options.values = value }
|
66
65
|
|
@@ -143,7 +142,7 @@ module Route53
|
|
143
142
|
resps = []
|
144
143
|
zones.each do |z|
|
145
144
|
puts "Creating Record"
|
146
|
-
record = Route53::DNSRecord.new(@options.name,@options.
|
145
|
+
record = Route53::DNSRecord.new(@options.name,@options.dnstype,@options.ttl,@options.values,z)
|
147
146
|
puts "Creating Record #{record}"
|
148
147
|
resps.push(record.create)
|
149
148
|
end
|
@@ -161,7 +160,7 @@ module Route53
|
|
161
160
|
zones = conn.get_zones(@options.zone)
|
162
161
|
if zones.size > 0
|
163
162
|
zones.each do |z|
|
164
|
-
records = z.get_records(@options.
|
163
|
+
records = z.get_records(@options.dnstype.nil? ? "ANY" : @options.dnstype)
|
165
164
|
if records.size > 0
|
166
165
|
if records.size > 1
|
167
166
|
records = record_picker(records)
|
@@ -173,7 +172,7 @@ module Route53
|
|
173
172
|
puts "Record Deleted." unless resp.error?
|
174
173
|
end
|
175
174
|
else
|
176
|
-
$stderr.puts "ERROR: Couldn't Find Record for @options.zone of type "+(@options.
|
175
|
+
$stderr.puts "ERROR: Couldn't Find Record for @options.zone of type "+(@options.dnstype.nil? ? "ANY" : @options.dnstype)+"."
|
177
176
|
end
|
178
177
|
end
|
179
178
|
else
|
@@ -185,19 +184,19 @@ module Route53
|
|
185
184
|
zones = conn.get_zones(@options.zone)
|
186
185
|
if zones.size > 0
|
187
186
|
zones.each do |z|
|
188
|
-
records = z.get_records(@options.
|
187
|
+
records = z.get_records(@options.dnstype.nil? ? "ANY" : @options.dnstype)
|
189
188
|
if records.size > 0
|
190
189
|
if records.size > 1
|
191
190
|
records = record_picker(records,false)
|
192
191
|
end
|
193
192
|
records.each do |r|
|
194
193
|
puts "Modifying Record #{r.name}"
|
195
|
-
resp = r.update(@options.name,@options.
|
194
|
+
resp = r.update(@options.name,@options.dnstype,@options.ttl,@options.values,comment=nil)
|
196
195
|
pending_wait(resp)
|
197
196
|
puts "Record Modified." unless resp.error?
|
198
197
|
end
|
199
198
|
else
|
200
|
-
$stderr.puts "ERROR: Couldn't Find Record for @options.zone of type "+(@options.
|
199
|
+
$stderr.puts "ERROR: Couldn't Find Record for @options.zone of type "+(@options.dnstype.nil? ? "ANY" : @options.dnstype)+"."
|
201
200
|
end
|
202
201
|
end
|
203
202
|
else
|
@@ -210,7 +209,7 @@ module Route53
|
|
210
209
|
zones.each do |z|
|
211
210
|
puts z
|
212
211
|
if @options.zone
|
213
|
-
records = z.get_records(@options.
|
212
|
+
records = z.get_records(@options.dnstype.nil? ? "ANY" : @options.dnstype)
|
214
213
|
records.each do |r|
|
215
214
|
puts r
|
216
215
|
end
|
@@ -223,7 +222,7 @@ module Route53
|
|
223
222
|
puts "You've either elected to run the setup or a configuration file could not be found."
|
224
223
|
puts "Please answer the following prompts."
|
225
224
|
new_config = Hash.new
|
226
|
-
new_config['access_key'] = get_input(String,"Amazon Access Key"
|
225
|
+
new_config['access_key'] = get_input(String,"Amazon Access Key")
|
227
226
|
new_config['secret_key'] = get_input(String,"Amazon Secret Key")
|
228
227
|
new_config['api'] = get_input(String,"Amazon Route 53 API Version","2010-10-01")
|
229
228
|
new_config['endpoint'] = get_input(String,"Amazon Route 53 Endpoint","https://route53.amazonaws.com/")
|
@@ -240,7 +239,7 @@ module Route53
|
|
240
239
|
|
241
240
|
end
|
242
241
|
|
243
|
-
def get_input(
|
242
|
+
def get_input(inputtype,description,default = nil)
|
244
243
|
print "#{description}: [#{default}] "
|
245
244
|
STDOUT.flush
|
246
245
|
selection = gets
|
@@ -248,7 +247,7 @@ module Route53
|
|
248
247
|
if selection == ""
|
249
248
|
selection = default
|
250
249
|
end
|
251
|
-
if
|
250
|
+
if inputtype == true.class
|
252
251
|
selection = (selection == 'Y')
|
253
252
|
end
|
254
253
|
return selection
|
data/lib/route53/version.rb
CHANGED
data/route53.gemspec
CHANGED
@@ -11,9 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "Library for Amazon's Route 53 service"
|
12
12
|
s.description = "Provides CRUD and list operations for records and zones as part of Amazon's Route 53 service."
|
13
13
|
|
14
|
-
s.required_rubygems_version = ">= 1.3.
|
14
|
+
s.required_rubygems_version = ">= 1.3.5"
|
15
15
|
|
16
|
-
s.add_dependency "bundler", ">= 1.0.0"
|
17
16
|
s.add_dependency "ruby-hmac"
|
18
17
|
s.add_dependency "hpricot"
|
19
18
|
s.add_dependency "builder"
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Philip Corliss
|
@@ -18,7 +18,7 @@ date: 2010-12-09 00:00:00 -06:00
|
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
21
|
+
name: ruby-hmac
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
@@ -26,14 +26,12 @@ dependencies:
|
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
segments:
|
29
|
-
- 1
|
30
|
-
- 0
|
31
29
|
- 0
|
32
|
-
version:
|
30
|
+
version: "0"
|
33
31
|
type: :runtime
|
34
32
|
version_requirements: *id001
|
35
33
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
34
|
+
name: hpricot
|
37
35
|
prerelease: false
|
38
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
37
|
none: false
|
@@ -46,7 +44,7 @@ dependencies:
|
|
46
44
|
type: :runtime
|
47
45
|
version_requirements: *id002
|
48
46
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
47
|
+
name: builder
|
50
48
|
prerelease: false
|
51
49
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
@@ -58,19 +56,6 @@ dependencies:
|
|
58
56
|
version: "0"
|
59
57
|
type: :runtime
|
60
58
|
version_requirements: *id003
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: builder
|
63
|
-
prerelease: false
|
64
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
version: "0"
|
72
|
-
type: :runtime
|
73
|
-
version_requirements: *id004
|
74
59
|
description: Provides CRUD and list operations for records and zones as part of Amazon's Route 53 service.
|
75
60
|
email: pcorlis@50projects.com
|
76
61
|
executables:
|
@@ -81,8 +66,6 @@ extra_rdoc_files: []
|
|
81
66
|
|
82
67
|
files:
|
83
68
|
- .gitignore
|
84
|
-
- Gemfile
|
85
|
-
- Gemfile.lock
|
86
69
|
- README.markdown
|
87
70
|
- Rakefile
|
88
71
|
- bin/route53
|
@@ -115,8 +98,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
98
|
segments:
|
116
99
|
- 1
|
117
100
|
- 3
|
118
|
-
-
|
119
|
-
version: 1.3.
|
101
|
+
- 5
|
102
|
+
version: 1.3.5
|
120
103
|
requirements: []
|
121
104
|
|
122
105
|
rubyforge_project:
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
route53 (0.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: http://rubygems.org/
|
8
|
-
specs:
|
9
|
-
builder (3.0.0)
|
10
|
-
hpricot (0.8.3)
|
11
|
-
ruby-hmac (0.4.0)
|
12
|
-
|
13
|
-
PLATFORMS
|
14
|
-
ruby
|
15
|
-
|
16
|
-
DEPENDENCIES
|
17
|
-
builder
|
18
|
-
bundler (>= 1.0.0)
|
19
|
-
hpricot
|
20
|
-
route53!
|
21
|
-
ruby-hmac
|