splicer-dns_made_easy 2.1.2 → 2.2.1
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 +5 -13
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/lib/splicer/dns_made_easy/provider.rb +20 -9
- data/lib/splicer/dns_made_easy/record.rb +4 -1
- data/lib/splicer/dns_made_easy/version.rb +1 -1
- data/spec/splicer/dns_made_easy/config_spec.rb +8 -2
- data/spec/splicer/dns_made_easy/domain_spec.rb +10 -4
- data/spec/splicer/dns_made_easy/provider_spec.rb +10 -2
- data/spec/splicer/dns_made_easy/record_spec.rb +22 -7
- data/splicer-dns_made_easy.gemspec +10 -10
- metadata +63 -30
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZTk1MTA4Y2JmOTY3ZThhOGU2MDhhMzUyZTczN2I3ZGQ1ZDQzMjg0NQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d6bf2988b2aba7b6bdb40c1f9e45d6a4e7ee1390
|
4
|
+
data.tar.gz: a44423d5eceb5c7857367687e94c25b4a749ad5c
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
N2RkNDYxNTU4MmQzZmFhNWU4NGJmMTg1NjNiODdiNTg3YTAwODgzMzQ2ZTFh
|
11
|
-
Mjc0NjRhYTI5ZTY1M2I4MzdiYTEwMTdjOGFkMGIxY2ZmZjhjN2I=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZGQzNGY4MmJiYThlYTRiNzRiMjYxMzAzMTBhMTJlNjE3Yzc3ODNkNWM5NTQ5
|
14
|
-
MDc4ODNhNTIwMGI1MTkyOWFhZDhiZDFkYTU2MzViZTU2ZTM3NDIyNmMwYjU1
|
15
|
-
MGVjNmM5NDI1YWYyNDMxNjE2NGQ2MThmYjZiODFhMDEzOTZlM2Q=
|
6
|
+
metadata.gz: 0139e75437c1fcf56fc23c278c7cddce5c2fe675371d719f8d182c6b8ec4beeaa18e76e0933aa067e1996277e9f67ecb7e62239f2dddb649f091c4e9004d0c1a
|
7
|
+
data.tar.gz: 0fb5ff33f705d48272923adcb7a8ccf51f115fe46bda81837456d23273fc019d376cc81faefc569fa660b47ee0d5a9af3d37986c8381918d11b54bd3409a4e31
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
2.1.6
|
@@ -3,7 +3,7 @@ module Splicer
|
|
3
3
|
|
4
4
|
# @author Matthew A. Johnston <warmwaffles@gmail.com>
|
5
5
|
class Provider < Splicer::Provider
|
6
|
-
attr_reader :client
|
6
|
+
attr_reader :client, :records
|
7
7
|
|
8
8
|
def initialize(config)
|
9
9
|
@config = config
|
@@ -33,7 +33,7 @@ module Splicer
|
|
33
33
|
def delete_record_in_zone(record, zone)
|
34
34
|
Splicer.logger.debug "[SPLICER][DNSMADEEASY] #delete_record_in_zone record=#{record.inspect} zone=#{zone.inspect}"
|
35
35
|
domain = find_domain(zone.name)
|
36
|
-
return
|
36
|
+
return [] unless domain.persisted?
|
37
37
|
|
38
38
|
records = find_records(record.name, record.type, domain.id)
|
39
39
|
return false if records.empty?
|
@@ -64,18 +64,29 @@ module Splicer
|
|
64
64
|
create_record(domain.id, record)
|
65
65
|
end
|
66
66
|
|
67
|
+
def get_records_for(zone)
|
68
|
+
Splicer.logger.debug "[SPLICER][DNSMADEEASY] #get_records_for zone=#{zone.inspect}"
|
69
|
+
domain = find_domain(zone.name)
|
70
|
+
return false unless domain.persisted?
|
71
|
+
fetch_records(domain.id)
|
72
|
+
end
|
73
|
+
|
67
74
|
private
|
68
75
|
|
69
76
|
# @param [Integer] domain_id
|
70
77
|
# @return [Array<Splicer::DnsMadeEasy::Record>]
|
71
78
|
def fetch_records(domain_id)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
79
|
+
records_call = client.get(record_url(domain_id))
|
80
|
+
records = JSON.parse(records_call)['data']
|
81
|
+
|
82
|
+
@records = []
|
83
|
+
records.each do |record|
|
84
|
+
new_record = Record.new
|
85
|
+
record.each {|attribute, type| new_record.send(:"#{attribute}=", type)}
|
86
|
+
@records << new_record
|
76
87
|
end
|
77
|
-
|
78
|
-
rescue
|
88
|
+
@records
|
89
|
+
rescue
|
79
90
|
[]
|
80
91
|
end
|
81
92
|
|
@@ -85,7 +96,7 @@ module Splicer
|
|
85
96
|
def find_records(name, type, domain_id)
|
86
97
|
payload = {
|
87
98
|
type: type,
|
88
|
-
recordName: name
|
99
|
+
recordName: name || ''
|
89
100
|
}
|
90
101
|
response = JSON.parse(client.get(record_url(domain_id), payload))
|
91
102
|
if response['data'].is_a?(Array)
|
@@ -2,7 +2,10 @@ module Splicer
|
|
2
2
|
module DnsMadeEasy
|
3
3
|
|
4
4
|
class Record
|
5
|
-
|
5
|
+
attr_accessor :name, :value, :id, :type, :dynamicDns,
|
6
|
+
:failed, :gtdLocation, :hardLink, :ttl,
|
7
|
+
:failover, :monitor, :sourceId, :source, :data
|
8
|
+
|
6
9
|
def initialize(params={})
|
7
10
|
@id = params['id']
|
8
11
|
@type = params['type']
|
@@ -5,8 +5,14 @@ describe Splicer::DnsMadeEasy::Config do
|
|
5
5
|
|
6
6
|
describe '#initialize' do
|
7
7
|
subject { config }
|
8
|
-
|
9
|
-
|
8
|
+
|
9
|
+
it "should find :key to be equal to 'key'" do
|
10
|
+
expect(config.key).to eq('key')
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should find :secret to be equal to 'secret'" do
|
14
|
+
expect(config.secret).to eq('secret')
|
15
|
+
end
|
10
16
|
end
|
11
17
|
|
12
18
|
describe '#provider' do
|
@@ -7,20 +7,26 @@ describe Splicer::DnsMadeEasy::Domain do
|
|
7
7
|
{ 'id' => 1 }
|
8
8
|
end
|
9
9
|
subject { Splicer::DnsMadeEasy::Domain.new(params) }
|
10
|
-
|
11
|
-
|
10
|
+
|
11
|
+
it 'should find :id to be equal to 1' do
|
12
|
+
expect(subject.id).to eq(1)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should find :data to be equal to passed params' do
|
16
|
+
expect(subject.data).to eq(params)
|
17
|
+
end
|
12
18
|
end
|
13
19
|
|
14
20
|
describe '#persisted?' do
|
15
21
|
subject { domain.persisted? }
|
16
22
|
context 'when the domain is persisted' do
|
17
23
|
let(:domain) { Splicer::DnsMadeEasy::Domain.new({'id' => 1}) }
|
18
|
-
it { should
|
24
|
+
it { should be_truthy }
|
19
25
|
end
|
20
26
|
|
21
27
|
context 'when the domain is not persisted' do
|
22
28
|
let(:domain) { Splicer::DnsMadeEasy::Domain.new }
|
23
|
-
it { should
|
29
|
+
it { should be_falsy }
|
24
30
|
end
|
25
31
|
end
|
26
32
|
end
|
@@ -14,7 +14,7 @@ describe Splicer::DnsMadeEasy::Provider do
|
|
14
14
|
provider.stub(:find_domain).and_return(domain)
|
15
15
|
provider.stub(:create_domain).and_raise(Splicer::Errors::RequestError)
|
16
16
|
end
|
17
|
-
it { should
|
17
|
+
it { should be_falsy }
|
18
18
|
end
|
19
19
|
|
20
20
|
context 'when the domain exists' do
|
@@ -23,7 +23,7 @@ describe Splicer::DnsMadeEasy::Provider do
|
|
23
23
|
provider.stub(:create_domain).and_return(true)
|
24
24
|
provider.stub(:create_record).and_return(true)
|
25
25
|
end
|
26
|
-
it { should
|
26
|
+
it { should be_truthy }
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -53,4 +53,12 @@ describe Splicer::DnsMadeEasy::Provider do
|
|
53
53
|
let(:zone) { Splicer::Zone.new('rspectesting.com') }
|
54
54
|
subject { provider.create_record_in_zone(record, zone) }
|
55
55
|
end
|
56
|
+
|
57
|
+
|
58
|
+
describe '#get_records_for' do
|
59
|
+
let(:record) { Splicer::Records::ARecord.new(nil, '127.0.0.1') }
|
60
|
+
let(:zone) { Splicer::Zone.new('rspectesting.com') }
|
61
|
+
let(:records) { provider.create_record_in_zone(record, zone) }
|
62
|
+
subject { provider.get_records_for(zone) }
|
63
|
+
end
|
56
64
|
end
|
@@ -11,23 +11,38 @@ describe Splicer::DnsMadeEasy::Record do
|
|
11
11
|
}
|
12
12
|
end
|
13
13
|
subject { Splicer::DnsMadeEasy::Record.new(params) }
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
|
15
|
+
it "should find :id to be equal to passed params['id']" do
|
16
|
+
expect(subject.id).to eq(params['id'])
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should find :type to be equal to passed params['type']" do
|
20
|
+
expect(subject.type).to eq(params['type'])
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should find :value to be equal to passed params['value']" do
|
24
|
+
expect(subject.value).to eq(params['value'])
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should find :ttl to be equal to passed params['ttl']" do
|
28
|
+
expect(subject.ttl).to eq(params['ttl'])
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should find :data to be equal to passed params" do
|
32
|
+
expect(subject.data).to eq(params)
|
33
|
+
end
|
19
34
|
end
|
20
35
|
|
21
36
|
describe '#persisted?' do
|
22
37
|
subject { record.persisted? }
|
23
38
|
context 'when the record is persisted' do
|
24
39
|
let(:record) { Splicer::DnsMadeEasy::Record.new({'id' => 1}) }
|
25
|
-
it { should
|
40
|
+
it { should be_truthy }
|
26
41
|
end
|
27
42
|
|
28
43
|
context 'when the record is not persisted' do
|
29
44
|
let(:record) { Splicer::DnsMadeEasy::Record.new }
|
30
|
-
it { should
|
45
|
+
it { should be_falsy }
|
31
46
|
end
|
32
47
|
end
|
33
48
|
end
|
@@ -6,11 +6,11 @@ require 'splicer/dns_made_easy/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "splicer-dns_made_easy"
|
8
8
|
spec.version = Splicer::DnsMadeEasy::VERSION
|
9
|
-
spec.authors = ["Matthew Johnston"]
|
10
|
-
spec.email = ["warmwaffles@gmail.com"]
|
11
|
-
spec.description = %q{The
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.homepage = "https://github.com/
|
9
|
+
spec.authors = ["Matthew Johnston", "Joshua Stowers"]
|
10
|
+
spec.email = ["warmwaffles@gmail.com", "joshua@pressable.com"]
|
11
|
+
spec.description = %q{The Splicer adapter for interacting DnsMadeEasy}
|
12
|
+
spec.summary = %q{Use this gem together with Splicer if you are using multiple DNS providers, and want a unified interface to manage each of them simultaneously}
|
13
|
+
spec.homepage = "https://github.com/pressable/splicer-dns_made_easy"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency('splicer', '~> 2.
|
22
|
-
spec.add_dependency('rest-client')
|
21
|
+
spec.add_dependency('splicer', '~> 2.2', '>= 2.2.0')
|
22
|
+
spec.add_dependency('rest-client', '~> 1.8', '>= 1.0.0')
|
23
23
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.3', '>= 1.3.0'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.4', '>= 10.4.0'
|
26
|
+
spec.add_development_dependency 'rspec', '~> 3.4.0', '>= 3.4.0'
|
27
27
|
end
|
metadata
CHANGED
@@ -1,96 +1,128 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: splicer-dns_made_easy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Johnston
|
8
|
+
- Joshua Stowers
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: splicer
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - ~>
|
18
|
+
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
20
|
+
version: '2.2'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.2.0
|
20
24
|
type: :runtime
|
21
25
|
prerelease: false
|
22
26
|
version_requirements: !ruby/object:Gem::Requirement
|
23
27
|
requirements:
|
24
|
-
- - ~>
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '2.2'
|
31
|
+
- - ">="
|
25
32
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
33
|
+
version: 2.2.0
|
27
34
|
- !ruby/object:Gem::Dependency
|
28
35
|
name: rest-client
|
29
36
|
requirement: !ruby/object:Gem::Requirement
|
30
37
|
requirements:
|
31
|
-
- -
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.8'
|
41
|
+
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
43
|
+
version: 1.0.0
|
34
44
|
type: :runtime
|
35
45
|
prerelease: false
|
36
46
|
version_requirements: !ruby/object:Gem::Requirement
|
37
47
|
requirements:
|
38
|
-
- -
|
48
|
+
- - "~>"
|
39
49
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
50
|
+
version: '1.8'
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.0.0
|
41
54
|
- !ruby/object:Gem::Dependency
|
42
55
|
name: bundler
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
44
57
|
requirements:
|
45
|
-
- - ~>
|
58
|
+
- - "~>"
|
46
59
|
- !ruby/object:Gem::Version
|
47
60
|
version: '1.3'
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.3.0
|
48
64
|
type: :development
|
49
65
|
prerelease: false
|
50
66
|
version_requirements: !ruby/object:Gem::Requirement
|
51
67
|
requirements:
|
52
|
-
- - ~>
|
68
|
+
- - "~>"
|
53
69
|
- !ruby/object:Gem::Version
|
54
70
|
version: '1.3'
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.3.0
|
55
74
|
- !ruby/object:Gem::Dependency
|
56
75
|
name: rake
|
57
76
|
requirement: !ruby/object:Gem::Requirement
|
58
77
|
requirements:
|
59
|
-
- -
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '10.4'
|
81
|
+
- - ">="
|
60
82
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
83
|
+
version: 10.4.0
|
62
84
|
type: :development
|
63
85
|
prerelease: false
|
64
86
|
version_requirements: !ruby/object:Gem::Requirement
|
65
87
|
requirements:
|
66
|
-
- -
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '10.4'
|
91
|
+
- - ">="
|
67
92
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
93
|
+
version: 10.4.0
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: rspec
|
71
96
|
requirement: !ruby/object:Gem::Requirement
|
72
97
|
requirements:
|
73
|
-
- -
|
98
|
+
- - "~>"
|
74
99
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
100
|
+
version: 3.4.0
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.4.0
|
76
104
|
type: :development
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
80
|
-
- -
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.4.0
|
111
|
+
- - ">="
|
81
112
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
description: The
|
113
|
+
version: 3.4.0
|
114
|
+
description: The Splicer adapter for interacting DnsMadeEasy
|
84
115
|
email:
|
85
116
|
- warmwaffles@gmail.com
|
117
|
+
- joshua@pressable.com
|
86
118
|
executables: []
|
87
119
|
extensions: []
|
88
120
|
extra_rdoc_files: []
|
89
121
|
files:
|
90
|
-
- .gitignore
|
91
|
-
- .rspec
|
92
|
-
- .ruby-gemset
|
93
|
-
- .ruby-version
|
122
|
+
- ".gitignore"
|
123
|
+
- ".rspec"
|
124
|
+
- ".ruby-gemset"
|
125
|
+
- ".ruby-version"
|
94
126
|
- Gemfile
|
95
127
|
- LICENSE.txt
|
96
128
|
- README.md
|
@@ -110,7 +142,7 @@ files:
|
|
110
142
|
- spec/splicer/dns_made_easy/provider_spec.rb
|
111
143
|
- spec/splicer/dns_made_easy/record_spec.rb
|
112
144
|
- splicer-dns_made_easy.gemspec
|
113
|
-
homepage: https://github.com/
|
145
|
+
homepage: https://github.com/pressable/splicer-dns_made_easy
|
114
146
|
licenses:
|
115
147
|
- MIT
|
116
148
|
metadata: {}
|
@@ -120,20 +152,21 @@ require_paths:
|
|
120
152
|
- lib
|
121
153
|
required_ruby_version: !ruby/object:Gem::Requirement
|
122
154
|
requirements:
|
123
|
-
- -
|
155
|
+
- - ">="
|
124
156
|
- !ruby/object:Gem::Version
|
125
157
|
version: '0'
|
126
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
159
|
requirements:
|
128
|
-
- -
|
160
|
+
- - ">="
|
129
161
|
- !ruby/object:Gem::Version
|
130
162
|
version: '0'
|
131
163
|
requirements: []
|
132
164
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.2.3
|
134
166
|
signing_key:
|
135
167
|
specification_version: 4
|
136
|
-
summary:
|
168
|
+
summary: Use this gem together with Splicer if you are using multiple DNS providers,
|
169
|
+
and want a unified interface to manage each of them simultaneously
|
137
170
|
test_files:
|
138
171
|
- spec/spec_helper.rb
|
139
172
|
- spec/splicer/dns_made_easy/client_spec.rb
|