smart_proxy_dns_powerdns 0.2.1 → 0.3.0
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 +27 -4
- data/lib/smart_proxy_dns_powerdns/backend/dummy.rb +2 -2
- data/lib/smart_proxy_dns_powerdns/backend/mysql.rb +7 -7
- data/lib/smart_proxy_dns_powerdns/backend/postgresql.rb +4 -4
- data/lib/smart_proxy_dns_powerdns/backend/rest.rb +97 -0
- data/lib/smart_proxy_dns_powerdns/dns_powerdns_configuration.rb +64 -0
- data/lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb +56 -15
- data/lib/smart_proxy_dns_powerdns/dns_powerdns_plugin.rb +4 -8
- data/lib/smart_proxy_dns_powerdns/dns_powerdns_version.rb +1 -1
- data/test/config/smart-proxy-settings.d/dns.yml +3 -0
- data/test/config/smart-proxy-settings.d/dns_powerdns.yml +4 -0
- data/test/config/smart-proxy-settings.yml +4 -0
- data/test/integration/integration_test.rb +24 -4
- data/test/test_helper.rb +3 -0
- data/test/unit/dns_powerdns_configuration_test.rb +119 -0
- data/test/unit/dns_powerdns_record_dummy_test.rb +26 -0
- data/test/unit/dns_powerdns_record_mysql_test.rb +32 -52
- data/test/unit/dns_powerdns_record_postgresql_test.rb +56 -9
- data/test/unit/dns_powerdns_record_rest_test.rb +67 -0
- data/test/unit/dns_powerdns_record_test.rb +124 -54
- metadata +20 -10
- data/lib/smart_proxy_dns_powerdns/dependencies.rb +0 -15
- data/lib/smart_proxy_dns_powerdns/dns_powerdns_configuration_validator.rb +0 -32
- data/test/unit/dns_powerdns_configuration_validator_test.rb +0 -78
@@ -1,115 +1,185 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
require 'smart_proxy_dns_powerdns/dns_powerdns_plugin'
|
4
3
|
require 'smart_proxy_dns_powerdns/dns_powerdns_main'
|
5
4
|
|
6
5
|
class DnsPowerdnsRecordTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
def setup
|
7
|
+
@provider = Proxy::Dns::Powerdns::Record.new('localhost', 86400, 'sudo pdnssec')
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_initialize
|
11
|
+
assert_equal 86400, @provider.ttl
|
12
|
+
assert_equal 'sudo pdnssec', @provider.pdnssec
|
12
13
|
end
|
13
14
|
|
14
15
|
# Test A record creation
|
15
16
|
def test_create_a
|
16
|
-
|
17
|
+
@provider.expects(:a_record_conflicts).with('test.example.com', '10.1.1.1').returns(-1)
|
18
|
+
@provider.expects(:get_zone).with('test.example.com').returns({'id' => 1, 'name' => 'example.com'})
|
19
|
+
@provider.expects(:create_record).with(1, 'test.example.com', 'A', '10.1.1.1').returns(true)
|
20
|
+
@provider.expects(:rectify_zone).with('example.com').returns(true)
|
17
21
|
|
18
|
-
|
19
|
-
|
20
|
-
instance.expects(:create_record).with(1, 'test.example.com', 'A', '10.1.1.1').returns(true)
|
21
|
-
instance.expects(:rectify_zone).with('example.com').returns(true)
|
22
|
+
assert @provider.create_a_record(fqdn, ipv4)
|
23
|
+
end
|
22
24
|
|
23
|
-
|
25
|
+
# Test A record creation does nothing if the same record exists
|
26
|
+
def test_create_a_duplicate
|
27
|
+
@provider.expects(:a_record_conflicts).with('test.example.com', '10.1.1.1').returns(0)
|
28
|
+
|
29
|
+
assert_equal nil, @provider.create_a_record(fqdn, ipv4)
|
24
30
|
end
|
25
31
|
|
26
32
|
# Test A record creation fails if the record exists
|
27
33
|
def test_create_a_conflict
|
28
|
-
|
34
|
+
@provider.expects(:a_record_conflicts).with('test.example.com', '10.1.1.1').returns(1)
|
35
|
+
|
36
|
+
assert_raise(Proxy::Dns::Collision) { @provider.create_a_record(fqdn, ipv4) }
|
37
|
+
end
|
38
|
+
|
39
|
+
# Test AAAA record creation
|
40
|
+
def test_create_aaaa
|
41
|
+
@provider.expects(:aaaa_record_conflicts).with('test.example.com', '2001:db8:1234:abcd::1').returns(-1)
|
42
|
+
@provider.expects(:get_zone).with('test.example.com').returns({'id' => 1, 'name' => 'example.com'})
|
43
|
+
@provider.expects(:create_record).with(1, 'test.example.com', 'AAAA', '2001:db8:1234:abcd::1').returns(true)
|
44
|
+
@provider.expects(:rectify_zone).with('example.com').returns(true)
|
45
|
+
|
46
|
+
assert @provider.create_aaaa_record(fqdn, ipv6)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Test AAAA record creation does nothing if the same record exists
|
50
|
+
def test_create_aaaa_duplicate
|
51
|
+
@provider.expects(:aaaa_record_conflicts).with('test.example.com', '2001:db8:1234:abcd::1').returns(0)
|
52
|
+
|
53
|
+
assert_equal nil, @provider.create_aaaa_record(fqdn, ipv6)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Test AAAA record creation fails if the record exists
|
57
|
+
def test_create_aaaa_conflict
|
58
|
+
@provider.expects(:aaaa_record_conflicts).with('test.example.com', '2001:db8:1234:abcd::1').returns(1)
|
59
|
+
|
60
|
+
assert_raise(Proxy::Dns::Collision) { @provider.create_aaaa_record(fqdn, ipv6) }
|
61
|
+
end
|
62
|
+
|
63
|
+
# Test CNAME record creation
|
64
|
+
def test_create_cname
|
65
|
+
@provider.expects(:cname_record_conflicts).with('test.example.com', 'something.example.com').returns(-1)
|
66
|
+
@provider.expects(:get_zone).with('test.example.com').returns({'id' => 1, 'name' => 'example.com'})
|
67
|
+
@provider.expects(:create_record).with(1, 'test.example.com', 'CNAME', 'something.example.com').returns(true)
|
68
|
+
@provider.expects(:rectify_zone).with('example.com').returns(true)
|
69
|
+
|
70
|
+
assert @provider.create_cname_record(fqdn, 'something.example.com')
|
71
|
+
end
|
72
|
+
|
73
|
+
# Test CNAME record creation does nothing if the same record exists
|
74
|
+
def test_create_cname_duplicate
|
75
|
+
@provider.expects(:cname_record_conflicts).with('test.example.com', 'something.example.com').returns(0)
|
29
76
|
|
30
|
-
|
77
|
+
assert_equal nil, @provider.create_cname_record(fqdn, 'something.example.com')
|
78
|
+
end
|
79
|
+
|
80
|
+
# Test CNAME record creation fails if the record exists
|
81
|
+
def test_create_cname_conflict
|
82
|
+
@provider.expects(:cname_record_conflicts).with('test.example.com', 'something.example.com').returns(1)
|
31
83
|
|
32
|
-
assert_raise(Proxy::Dns::Collision) {
|
84
|
+
assert_raise(Proxy::Dns::Collision) { @provider.create_cname_record(fqdn, 'something.example.com') }
|
33
85
|
end
|
34
86
|
|
35
87
|
# Test PTR record creation
|
36
88
|
def test_create_ptr
|
37
|
-
|
89
|
+
@provider.expects(:ptr_record_conflicts).with('test.example.com', '10.1.1.1').returns(-1)
|
90
|
+
@provider.expects(:get_zone).with('1.1.1.10.in-addr.arpa').returns({'id' => 1, 'name' => '1.1.10.in-addr.arpa'})
|
91
|
+
@provider.expects(:create_record).with(1, '1.1.1.10.in-addr.arpa', 'PTR', 'test.example.com').returns(true)
|
92
|
+
@provider.expects(:rectify_zone).with('1.1.10.in-addr.arpa').returns(true)
|
38
93
|
|
39
|
-
|
40
|
-
|
41
|
-
instance.expects(:create_record).with(1, '1.1.1.10.in-addr.arpa', 'PTR', 'test.example.com').returns(true)
|
42
|
-
instance.expects(:rectify_zone).with('1.1.10.in-addr.arpa').returns(true)
|
94
|
+
assert @provider.create_ptr_record(fqdn, reverse_ipv4)
|
95
|
+
end
|
43
96
|
|
44
|
-
|
97
|
+
# Test PTR record creation does nothing if the same record exists
|
98
|
+
def test_create_ptr_duplicate
|
99
|
+
@provider.expects(:ptr_record_conflicts).with('test.example.com', '10.1.1.1').returns(0)
|
100
|
+
|
101
|
+
assert_equal nil, @provider.create_ptr_record(fqdn, reverse_ipv4)
|
45
102
|
end
|
46
103
|
|
47
104
|
# Test PTR record creation fails if the record exists
|
48
105
|
def test_create_ptr_conflict
|
49
|
-
|
106
|
+
@provider.expects(:ptr_record_conflicts).with('test.example.com', '10.1.1.1').returns(1)
|
107
|
+
|
108
|
+
assert_raise(Proxy::Dns::Collision) { @provider.create_ptr_record(fqdn, reverse_ipv4) }
|
109
|
+
end
|
50
110
|
|
51
|
-
|
111
|
+
# Test PTR record creation
|
112
|
+
def test_create_ptr_ipv6
|
113
|
+
@provider.expects(:ptr_record_conflicts).with('test.example.com', '2001:0db8:1234:abcd:0000:0000:0000:0001').returns(-1)
|
114
|
+
@provider.expects(:get_zone).with('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa').returns({'id' => 1, 'name' => 'd.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa'})
|
115
|
+
@provider.expects(:create_record).with(1, '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa', 'PTR', 'test.example.com').returns(true)
|
116
|
+
@provider.expects(:rectify_zone).with('d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa').returns(true)
|
52
117
|
|
53
|
-
|
118
|
+
assert @provider.create_ptr_record(fqdn, reverse_ipv6)
|
54
119
|
end
|
55
120
|
|
56
121
|
# Test A record removal
|
57
122
|
def test_remove_a
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
instance.expects(:delete_record).with(1, 'test.example.com', 'A').returns(true)
|
62
|
-
instance.expects(:rectify_zone).with('example.com').returns(true)
|
123
|
+
@provider.expects(:get_zone).with('test.example.com').returns({'id' => 1, 'name' => 'example.com'})
|
124
|
+
@provider.expects(:delete_record).with(1, 'test.example.com', 'A').returns(true)
|
125
|
+
@provider.expects(:rectify_zone).with('example.com').returns(true)
|
63
126
|
|
64
|
-
assert
|
127
|
+
assert @provider.remove_a_record(fqdn)
|
65
128
|
end
|
66
129
|
|
67
130
|
# Test PTR record removal
|
68
|
-
def
|
69
|
-
|
131
|
+
def test_remove_ptr_ipv4
|
132
|
+
@provider.expects(:get_zone).with('1.1.1.10.in-addr.arpa').returns({'id' => 1, 'name' => '1.1.10.in-addr.arpa'})
|
133
|
+
@provider.expects(:delete_record).with(1, '1.1.1.10.in-addr.arpa', 'PTR').returns(true)
|
134
|
+
@provider.expects(:rectify_zone).with('1.1.10.in-addr.arpa').returns(true)
|
70
135
|
|
71
|
-
|
72
|
-
|
73
|
-
instance.expects(:rectify_zone).with('1.1.10.in-addr.arpa').returns(true)
|
136
|
+
assert @provider.remove_ptr_record(reverse_ipv4)
|
137
|
+
end
|
74
138
|
|
75
|
-
|
139
|
+
# Test PTR record removal
|
140
|
+
def test_remove_ptr_ipv6
|
141
|
+
@provider.expects(:get_zone).with('1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa').returns({'id' => 1, 'name' => 'd.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa'})
|
142
|
+
@provider.expects(:delete_record).with(1, '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa', 'PTR').returns(true)
|
143
|
+
@provider.expects(:rectify_zone).with('d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa').returns(true)
|
144
|
+
|
145
|
+
assert @provider.remove_ptr_record(reverse_ipv6)
|
76
146
|
end
|
77
147
|
|
78
148
|
def test_do_create
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
instance.expects(:create_record).with(1, 'test.example.com', 'A', '10.1.1.1').returns(true)
|
83
|
-
instance.expects(:rectify_zone).with('example.com').returns(true)
|
149
|
+
@provider.expects(:get_zone).with('test.example.com').returns({'id' => 1, 'name' => 'example.com'})
|
150
|
+
@provider.expects(:create_record).with(1, 'test.example.com', 'A', '10.1.1.1').returns(true)
|
151
|
+
@provider.expects(:rectify_zone).with('example.com').returns(true)
|
84
152
|
|
85
|
-
assert
|
153
|
+
assert @provider.do_create('test.example.com', '10.1.1.1', 'A')
|
86
154
|
end
|
87
155
|
|
88
156
|
def test_do_remove
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
instance.expects(:delete_record).with(1, 'test.example.com', 'A').returns(true)
|
93
|
-
instance.expects(:rectify_zone).with('example.com').returns(true)
|
157
|
+
@provider.expects(:get_zone).with('test.example.com').returns({'id' => 1, 'name' => 'example.com'})
|
158
|
+
@provider.expects(:delete_record).with(1, 'test.example.com', 'A').returns(true)
|
159
|
+
@provider.expects(:rectify_zone).with('example.com').returns(true)
|
94
160
|
|
95
|
-
assert
|
161
|
+
assert @provider.do_remove('test.example.com', 'A')
|
96
162
|
end
|
97
163
|
|
98
164
|
private
|
99
165
|
|
100
|
-
def klass
|
101
|
-
Proxy::Dns::Powerdns::Record
|
102
|
-
end
|
103
|
-
|
104
166
|
def fqdn
|
105
167
|
'test.example.com'
|
106
168
|
end
|
107
169
|
|
108
|
-
def
|
170
|
+
def ipv4
|
109
171
|
'10.1.1.1'
|
110
172
|
end
|
111
173
|
|
112
|
-
def
|
174
|
+
def reverse_ipv4
|
113
175
|
'1.1.1.10.in-addr.arpa'
|
114
176
|
end
|
177
|
+
|
178
|
+
def ipv6
|
179
|
+
'2001:db8:1234:abcd::1'
|
180
|
+
end
|
181
|
+
|
182
|
+
def reverse_ipv6
|
183
|
+
'1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.c.b.a.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa'
|
184
|
+
end
|
115
185
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_proxy_dns_powerdns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ewoud Kohl van Wijngaarden
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -81,20 +81,25 @@ files:
|
|
81
81
|
- lib/smart_proxy_dns_powerdns/backend/dummy.rb
|
82
82
|
- lib/smart_proxy_dns_powerdns/backend/mysql.rb
|
83
83
|
- lib/smart_proxy_dns_powerdns/backend/postgresql.rb
|
84
|
-
- lib/smart_proxy_dns_powerdns/
|
85
|
-
- lib/smart_proxy_dns_powerdns/
|
84
|
+
- lib/smart_proxy_dns_powerdns/backend/rest.rb
|
85
|
+
- lib/smart_proxy_dns_powerdns/dns_powerdns_configuration.rb
|
86
86
|
- lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb
|
87
87
|
- lib/smart_proxy_dns_powerdns/dns_powerdns_plugin.rb
|
88
88
|
- lib/smart_proxy_dns_powerdns/dns_powerdns_version.rb
|
89
|
+
- test/config/smart-proxy-settings.d/dns.yml
|
90
|
+
- test/config/smart-proxy-settings.d/dns_powerdns.yml
|
91
|
+
- test/config/smart-proxy-settings.yml
|
89
92
|
- test/integration/integration_test.rb
|
90
93
|
- test/test_helper.rb
|
91
|
-
- test/unit/
|
94
|
+
- test/unit/dns_powerdns_configuration_test.rb
|
95
|
+
- test/unit/dns_powerdns_record_dummy_test.rb
|
92
96
|
- test/unit/dns_powerdns_record_mysql_test.rb
|
93
97
|
- test/unit/dns_powerdns_record_postgresql_test.rb
|
98
|
+
- test/unit/dns_powerdns_record_rest_test.rb
|
94
99
|
- test/unit/dns_powerdns_record_test.rb
|
95
100
|
homepage: https://github.com/theforeman/smart_proxy_dns_powerdns
|
96
101
|
licenses:
|
97
|
-
-
|
102
|
+
- GPL-3.0
|
98
103
|
metadata: {}
|
99
104
|
post_install_message:
|
100
105
|
rdoc_options: []
|
@@ -112,14 +117,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
117
|
version: '0'
|
113
118
|
requirements: []
|
114
119
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.
|
120
|
+
rubygems_version: 2.6.8
|
116
121
|
signing_key:
|
117
122
|
specification_version: 4
|
118
123
|
summary: PowerDNS DNS provider plugin for Foreman's smart proxy
|
119
124
|
test_files:
|
120
|
-
- test/test_helper.rb
|
121
125
|
- test/integration/integration_test.rb
|
122
|
-
- test/unit/
|
123
|
-
- test/unit/dns_powerdns_configuration_validator_test.rb
|
126
|
+
- test/unit/dns_powerdns_configuration_test.rb
|
124
127
|
- test/unit/dns_powerdns_record_mysql_test.rb
|
128
|
+
- test/unit/dns_powerdns_record_rest_test.rb
|
125
129
|
- test/unit/dns_powerdns_record_test.rb
|
130
|
+
- test/unit/dns_powerdns_record_dummy_test.rb
|
131
|
+
- test/unit/dns_powerdns_record_postgresql_test.rb
|
132
|
+
- test/config/smart-proxy-settings.d/dns.yml
|
133
|
+
- test/config/smart-proxy-settings.d/dns_powerdns.yml
|
134
|
+
- test/config/smart-proxy-settings.yml
|
135
|
+
- test/test_helper.rb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'dns_common/dependency_injection/dependencies'
|
2
|
-
|
3
|
-
class Proxy::Dns::DependencyInjection::Dependencies
|
4
|
-
case Proxy::Dns::Powerdns::Plugin.settings.powerdns_backend
|
5
|
-
when 'mysql'
|
6
|
-
require 'smart_proxy_dns_powerdns/backend/mysql'
|
7
|
-
dependency :dns_provider, Proxy::Dns::Powerdns::Backend::Mysql
|
8
|
-
when 'postgresql'
|
9
|
-
require 'smart_proxy_dns_powerdns/backend/postgresql'
|
10
|
-
dependency :dns_provider, Proxy::Dns::Powerdns::Backend::Postgresql
|
11
|
-
when 'dummy'
|
12
|
-
require 'smart_proxy_dns_powerdns/backend/dummy'
|
13
|
-
dependency :dns_provider, Proxy::Dns::Powerdns::Backend::Dummy
|
14
|
-
end
|
15
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'smart_proxy_dns_powerdns/dns_powerdns_plugin'
|
2
|
-
|
3
|
-
module Proxy::Dns::Powerdns
|
4
|
-
class ConfigurationValidator
|
5
|
-
def validate_settings!(settings)
|
6
|
-
validate_choice(settings, :powerdns_backend, ['mysql', 'postgresql', 'dummy'])
|
7
|
-
|
8
|
-
case settings.powerdns_backend
|
9
|
-
when 'mysql'
|
10
|
-
validate_presence(settings, [:powerdns_mysql_username, :powerdns_mysql_password, :powerdns_mysql_database])
|
11
|
-
when 'postgresql'
|
12
|
-
validate_presence(settings, [:powerdns_postgresql_connection])
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def validate_choice(settings, setting, choices)
|
17
|
-
value = settings.send(setting)
|
18
|
-
unless choices.include?(value)
|
19
|
-
raise ::Proxy::Error::ConfigurationError, "Parameter '#{setting}' is expected to be one of #{choices.join(",")}"
|
20
|
-
end
|
21
|
-
true
|
22
|
-
end
|
23
|
-
|
24
|
-
def validate_presence(settings, names)
|
25
|
-
names.each do |name|
|
26
|
-
value = settings.send(name)
|
27
|
-
raise ::Proxy::Error::ConfigurationError, "Parameter '#{name}' is expected to have a non-empty value" if value.nil? || value.to_s.empty?
|
28
|
-
end
|
29
|
-
true
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'ostruct'
|
3
|
-
|
4
|
-
require 'smart_proxy_dns_powerdns/dns_powerdns_plugin'
|
5
|
-
require 'smart_proxy_dns_powerdns/dns_powerdns_configuration_validator'
|
6
|
-
|
7
|
-
class DnsPowerdnsConfigurationValidatorTest < Test::Unit::TestCase
|
8
|
-
def setup
|
9
|
-
@config_validator = Proxy::Dns::Powerdns::ConfigurationValidator.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_initialize_missing_backend
|
13
|
-
settings = OpenStruct.new(:dns_provider => 'powerdns', :powerdns_backend => nil)
|
14
|
-
|
15
|
-
assert_raise Proxy::Error::ConfigurationError do
|
16
|
-
@config_validator.validate_settings!(settings)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_initialize_invalid_backend
|
21
|
-
settings = OpenStruct.new(:dns_provider => 'powerdns', :powerdns_backend => 'invalid')
|
22
|
-
|
23
|
-
assert_raise Proxy::Error::ConfigurationError do
|
24
|
-
@config_validator.validate_settings!(settings)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_initialize_dummy_with_settings
|
29
|
-
settings = OpenStruct.new(:dns_provider => 'powerdns', :powerdns_backend => 'dummy')
|
30
|
-
|
31
|
-
assert_nothing_raised do
|
32
|
-
@config_validator.validate_settings!(settings)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_initialize_mysql_without_settings
|
37
|
-
settings = OpenStruct.new(:dns_provider => 'powerdns', :powerdns_backend => 'mysql')
|
38
|
-
|
39
|
-
assert_raise Proxy::Error::ConfigurationError do
|
40
|
-
@config_validator.validate_settings!(settings)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_initialize_mysql_with_settings
|
45
|
-
settings = OpenStruct.new(
|
46
|
-
:dns_provider => 'powerdns',
|
47
|
-
:powerdns_backend => 'mysql',
|
48
|
-
:powerdns_mysql_hostname => 'localhost',
|
49
|
-
:powerdns_mysql_username => 'username',
|
50
|
-
:powerdns_mysql_password => 'password',
|
51
|
-
:powerdns_mysql_database => 'powerdns'
|
52
|
-
)
|
53
|
-
|
54
|
-
assert_nothing_raised do
|
55
|
-
@config_validator.validate_settings!(settings)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_initialize_postgresql_without_settings
|
60
|
-
settings = OpenStruct.new(:dns_provider => 'powerdns', :powerdns_backend => 'postgresql')
|
61
|
-
|
62
|
-
assert_raise Proxy::Error::ConfigurationError do
|
63
|
-
@config_validator.validate_settings!(settings)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_initialize_postgresql_with_settings
|
68
|
-
settings = OpenStruct.new(
|
69
|
-
:dns_provider => 'powerdns',
|
70
|
-
:powerdns_backend => 'postgresql',
|
71
|
-
:powerdns_postgresql_connection => 'dbname=powerdns'
|
72
|
-
)
|
73
|
-
|
74
|
-
assert_nothing_raised do
|
75
|
-
@config_validator.validate_settings!(settings)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|