assert_zone 0.2.0 → 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/assert_zone.gemspec +1 -1
- data/exe/assert_zone +17 -2
- data/lib/assert_zone.rb +18 -11
- data/lib/assert_zone/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9e5033994b5619de166ece33a2f701161a3d70a
|
4
|
+
data.tar.gz: c3b867d3d040906dc9db71252d8395092f71eee0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65355bf62bd0e6374e04183bcc251a534866063fcdc388d66850514509ecb454578b422734cc9c0a4a32e84c347c277a7487892f5265c2accdf1fdab429d55f2
|
7
|
+
data.tar.gz: 9b6ff8dd6342f57844333e72481d68330c5a3a25be0ad5aae1556440a4296c834027a05f026d7bc13a7cc4cafc07fa84ed4e981d341ba4c3a253216d43c1d064
|
data/assert_zone.gemspec
CHANGED
data/exe/assert_zone
CHANGED
@@ -11,12 +11,25 @@ options = {
|
|
11
11
|
|
12
12
|
OptionParser.new do |opts|
|
13
13
|
opts.banner = "Usage: assert_zone ZONE_FILE [NAMESERVER] [options]"
|
14
|
-
opts.on('--color', '
|
14
|
+
opts.on('-c', '--color', 'Enable color in the output.') do
|
15
15
|
options[:rspec_flags] << '--color'
|
16
16
|
end
|
17
|
+
opts.on('-f', '--format FORMATTER', 'Choose a formatter.') do |v|
|
18
|
+
options[:rspec_flags] << '--format'
|
19
|
+
options[:rspec_flags] << v
|
20
|
+
end
|
17
21
|
opts.on('--use-local-resolver', 'Use local resolver settings instead of explicit nameserver') do |v|
|
18
22
|
options[:use_local_resolver] = true
|
19
23
|
end
|
24
|
+
opts.on('--skip-ns', 'Skip NS records') do |v|
|
25
|
+
options[:skip_ns] = true
|
26
|
+
end
|
27
|
+
opts.on('--skip-soa', 'Skip SOA record') do |v|
|
28
|
+
options[:skip_soa] = true
|
29
|
+
end
|
30
|
+
opts.on('--ignore-ttl', 'Ignore TTL value') do |v|
|
31
|
+
options[:ignore_ttl] = true
|
32
|
+
end
|
20
33
|
opts.on_tail('-h', '--help', 'Show this message') do
|
21
34
|
puts opts
|
22
35
|
exit
|
@@ -27,4 +40,6 @@ OptionParser.new do |opts|
|
|
27
40
|
end
|
28
41
|
end.parse!
|
29
42
|
|
30
|
-
|
43
|
+
options[:nameserver] = ARGV[1]
|
44
|
+
|
45
|
+
AssertZone.run(ARGV[0], options)
|
data/lib/assert_zone.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rspec'
|
|
4
4
|
require 'rspec-dns'
|
5
5
|
|
6
6
|
module AssertZone
|
7
|
-
def self.run(filename, nameserver: nil, rspec_flags: [], use_local_resolver: false)
|
7
|
+
def self.run(filename, nameserver: nil, rspec_flags: [], use_local_resolver: false, skip_soa: false, skip_ns: false, ignore_ttl: false)
|
8
8
|
ns_config = {}
|
9
9
|
ns_config[:nameserver] = nameserver if nameserver
|
10
10
|
|
@@ -18,20 +18,27 @@ module AssertZone
|
|
18
18
|
end
|
19
19
|
|
20
20
|
zone.records.each do |record|
|
21
|
-
next if
|
21
|
+
next if record.is_a?(DNS::Zone::RR::SOA) if skip_soa
|
22
|
+
next if record.is_a?(DNS::Zone::RR::NS) if skip_ns
|
22
23
|
|
23
24
|
fqdn = record.label == '@' ? zone.origin : "#{record.label}.#{zone.origin}".chomp('.')
|
24
25
|
|
25
26
|
describe fqdn do
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
it do
|
28
|
+
have_correct_dns = have_dns.with_type(record.type).config(ns_config)
|
29
|
+
have_correct_dns = have_correct_dns.and_ttl(record.ttl) unless ignore_ttl
|
30
|
+
|
31
|
+
if record.is_a?(DNS::Zone::RR::A)
|
32
|
+
have_correct_dns = have_correct_dns.and_address(record.address)
|
33
|
+
elsif record.is_a?(DNS::Zone::RR::CNAME)
|
34
|
+
have_correct_dns = have_correct_dns.and_domainname(record.domainname.chomp('.'))
|
35
|
+
elsif record.is_a?(DNS::Zone::RR::TXT)
|
36
|
+
have_correct_dns = have_correct_dns.and_data(record.text)
|
37
|
+
else
|
38
|
+
warn "WARN: Unsupported record type: #{record.type}. Value of #{record.type} record for #{fqdn} will not be tested."
|
39
|
+
end
|
40
|
+
|
41
|
+
is_expected.to have_correct_dns
|
35
42
|
end
|
36
43
|
end
|
37
44
|
end
|
data/lib/assert_zone/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: assert_zone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Radcliffe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.3.1
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.3.1
|
83
83
|
description: Assert that a DNS server returns the correct responses based on a zone
|
84
84
|
file.
|
85
85
|
email:
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.5.1
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Assert DNS zone files.
|