dns-catalog_zone 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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -0
  4. data/.coveralls.yml +2 -0
  5. data/.gitignore +13 -0
  6. data/.rspec +1 -0
  7. data/.travis.yml +11 -0
  8. data/Gemfile +9 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.jp.md +115 -0
  11. data/README.md +113 -0
  12. data/Rakefile +8 -0
  13. data/bin/catz +33 -0
  14. data/certs/mimuret.pem +21 -0
  15. data/dns-catalog_zone.gemspec +33 -0
  16. data/lib/dns/catalog_zone.rb +40 -0
  17. data/lib/dns/catalog_zone/catalog_zone.rb +125 -0
  18. data/lib/dns/catalog_zone/cli.rb +88 -0
  19. data/lib/dns/catalog_zone/config.rb +83 -0
  20. data/lib/dns/catalog_zone/errors.rb +32 -0
  21. data/lib/dns/catalog_zone/helper.rb +98 -0
  22. data/lib/dns/catalog_zone/master.rb +47 -0
  23. data/lib/dns/catalog_zone/output.rb +44 -0
  24. data/lib/dns/catalog_zone/output/base.rb +42 -0
  25. data/lib/dns/catalog_zone/output/file.rb +57 -0
  26. data/lib/dns/catalog_zone/output/stdout.rb +41 -0
  27. data/lib/dns/catalog_zone/prefixes.rb +45 -0
  28. data/lib/dns/catalog_zone/provider.rb +46 -0
  29. data/lib/dns/catalog_zone/provider/base.rb +66 -0
  30. data/lib/dns/catalog_zone/provider/knot.rb +278 -0
  31. data/lib/dns/catalog_zone/provider/nsd.rb +106 -0
  32. data/lib/dns/catalog_zone/provider/yadifa.rb +139 -0
  33. data/lib/dns/catalog_zone/source.rb +47 -0
  34. data/lib/dns/catalog_zone/source/axfr.rb +54 -0
  35. data/lib/dns/catalog_zone/source/base.rb +59 -0
  36. data/lib/dns/catalog_zone/source/file.rb +49 -0
  37. data/lib/dns/catalog_zone/version.rb +27 -0
  38. data/lib/dns/catalog_zone/zone.rb +39 -0
  39. data/share/CatalogZone +24 -0
  40. data/share/knotd-catalog.sh +32 -0
  41. data/share/nsd-catalog.sh +37 -0
  42. data/share/yadifad-catalog.sh +34 -0
  43. metadata +183 -0
  44. metadata.gz.sig +0 -0
@@ -0,0 +1,27 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (c) 2016 Manabu Sonoda
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+
23
+ module Dns
24
+ module CatalogZone
25
+ VERSION = '0.1.3'.freeze
26
+ end
27
+ end
@@ -0,0 +1,39 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (c) 2016 Manabu Sonoda
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+
23
+ module Dns
24
+ module CatalogZone
25
+ # Zone class
26
+ class Zone
27
+ include Dns::CatalogZone::ZoneHelper
28
+ attr_reader :zonename
29
+ attr_reader :masters, :notifies, :allow_transfers
30
+
31
+ def initialize(zonename)
32
+ @zonename = zonename
33
+ @masters = {}
34
+ @notifies = {}
35
+ @allow_transfers = {}
36
+ end
37
+ end
38
+ end
39
+ end
data/share/CatalogZone ADDED
@@ -0,0 +1,24 @@
1
+ #
2
+ # Configuration of catz
3
+ #
4
+
5
+
6
+ #
7
+ # for make from zonefile
8
+ #
9
+ setting("catalog.example.jp") do |s|
10
+ s.software="nsd"
11
+ s.source="file"
12
+ s.zonename="catalog.example.jp"
13
+ s.zonefile="/etc/nsd/catalog.example.jp.zone"
14
+ end
15
+
16
+ #
17
+ # for make from axfr
18
+ #
19
+ #setting("catalog2.example.jp") do |s|
20
+ # s.software="knot"
21
+ # s.source="axfr"
22
+ # s.zonename="catalog2.example.jp"
23
+ # s.server="ns.example.jp"
24
+ #end
@@ -0,0 +1,32 @@
1
+ #!/bin/bash
2
+ #
3
+ # add yadifad.conf
4
+ # >> include catalog.conf
5
+ #
6
+ DNS_catalog_zone_DIR='/var/service/ans/dns-catalog_zone'
7
+ KNOT_CONF_DIR='/var/service/ans/conf/knot'
8
+ CONF=$KNOT_CONF_DIR/catalog-zone.conf
9
+ KNOTC='/var/service/ans/knot/sbin/knotc'
10
+
11
+ # zone flush to file
12
+ $KNOTC zone-flush
13
+
14
+ # make config
15
+ cd $DNS_catalog_zone_DIR
16
+ bundle exec catz make $1 > $CONF.new 2>/dev/null
17
+
18
+ if [ $? -eq 0 ] ; then
19
+ diff $CONF.new $CONF > /dev/null 2>&1
20
+ if [ $? -ne 0 ] ; then
21
+ echo "reconfig"
22
+ mv $CONF.new $CONF
23
+ $KNOTC conf-check
24
+ if [ $? -eq 0 ] ; then
25
+ $KNOTC reload
26
+ fi
27
+ fi
28
+ fi
29
+
30
+ if [ -e $CONF.new ] ; then
31
+ rm $CONF.new
32
+ fi
@@ -0,0 +1,37 @@
1
+ #!/bin/bash
2
+ #
3
+ # add yadifad.conf
4
+ # >> include catalog.conf
5
+ #
6
+ NSD_CONF_DIR='/etc/nsd'
7
+ NSD_CHECKCONF='/usr/local/sbin/nsd-checkconf'
8
+ NSD_CONTROL='/usr/local/sbin/nsd-control'
9
+ DNS_catalog_zone_DIR='/usr/local/dns-catalog_zone'
10
+ CONF='/etc/nsd/catalog-zone.conf'
11
+
12
+ if [ -e /etc/sysconfig/dns-catalog_zone ] ; then
13
+ . /etc/sysconfig/dns-catalog_zone
14
+ fi
15
+
16
+ # zone flush to file
17
+ $NSD_CONTROL write
18
+
19
+ # make config
20
+ cd $DNS_catalog_zone_DIR
21
+ bundle exec catz make $1 > $CONF.new 2>/dev/null
22
+
23
+ if [ $? -eq 0 ] ; then
24
+ diff $CONF.new $CONF > /dev/null 2>&1
25
+ if [ $? -ne 0 ] ; then
26
+ echo "reconfig"
27
+ mv $CONF.new $CONF
28
+ $NSD_CHECKCONF $NSD_CONF_DIR/nsd.conf
29
+ if [ $? -eq 0 ] ; then
30
+ $NSD_CONTROL reconfig
31
+ fi
32
+ fi
33
+ fi
34
+
35
+ if [ -e $CONF.new ] ; then
36
+ rm $CONF.new
37
+ fi
@@ -0,0 +1,34 @@
1
+ #!/bin/bash
2
+ #
3
+ # add yadifad.conf
4
+ # >> include catalog.conf
5
+ #
6
+ DNS_catalog_zone_DIR='/usr/local/dns-catalog_zone'
7
+ YADIFA_CONF_DIR='/usr/local/etc'
8
+ PID_FILE=/var/run/yadifad/yadifa.pid
9
+ CONF=$YADIFA_CONF_DIR/catalog-zone.conf
10
+
11
+ if [ -e /etc/sysconfig/dns-catalog_zone ] ; then
12
+ . /etc/sysconfig/dns-catalog_zone
13
+ fi
14
+
15
+ # write zonefile
16
+ if [ -e "$PID_FILE" ] ; then
17
+ kill -USR1 `cat $PID_FILE`
18
+ fi
19
+ # make config
20
+ cd $DNS_catalog_zone_DIR
21
+ bundle exec catz make $1 > $CONF.new 2>/dev/null
22
+
23
+ if [ $? -eq 0 ] ; then
24
+ diff $CONF.new $CONF > /dev/null 2>&1
25
+ if [ $? -ne 0 ] ; then
26
+ echo "reconfig"
27
+ mv $CONF.new $CONF
28
+ systemctl restart yadifad
29
+ fi
30
+ fi
31
+
32
+ if [ -e $CONF.new ] ; then
33
+ rm $CONF.new
34
+ fi
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dns-catalog_zone
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.3
5
+ platform: ruby
6
+ authors:
7
+ - Manabu Sonoda
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MRAwDgYDVQQDDAdtaW11
14
+ cmV0MRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNjb20w
15
+ HhcNMTcwNDI1MTE1MDAyWhcNMTgwNDI1MTE1MDAyWjA+MRAwDgYDVQQDDAdtaW11
16
+ cmV0MRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNjb20w
17
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRP3BH0JFr+66vfyW9B0MS
18
+ 9ANVCCJZSQ/AJMdxSPTDJq5kOf2t5RlSp83zRitt/OAfF3zv8PWDNzqujuZgLstx
19
+ WCOFGmlCVgZICVAhsxuywns9HQdaANjP6GQzge4n8jizsZSXQTJ0P0Y2BhFqIYWC
20
+ gxv/3UKI6lB2yEcASsOa5lXNdvhLcjf6avHQPNPbJvhCKc+rwuATZwb7ssOzhESo
21
+ K4TCcX3/MAV/PSI1SYIPG311Foc8/rgxI5gCquow1vK4/5+bhEv5ZGKU2wop+FSB
22
+ 7ksrTeMJlOaxTuydATrC3SaeW8F00RT8p1+6EZND//epYAyel37g6cVkDiD4R/dt
23
+ AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBTLaG0u
24
+ y9BEJGp9Rc1Y4ivzbfxdKjAcBgNVHREEFTATgRFtaW11cmV0QGdtYWlsLmNvbTAc
25
+ BgNVHRIEFTATgRFtaW11cmV0QGdtYWlsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEA
26
+ PT/rDW0zDeeUaZASY0/xrEB+AyFOQ3cB858/qVxDrzN0etboT7LyOr/ZMZKagxqF
27
+ zuYT7nUxMlNpaoRGWqpdivy0uMgyIXACCgAtZo5HD/1kpeOfDINmbHhOzu8Y962M
28
+ sLeKUMffm52sWsl0DEjP1Ma0sUUdNDgcqzyD1xOL/0zI10BAqWUnG48TyKFVnqrR
29
+ xiXeFJo5AtADvjXz9Uj7ei+OlOKFw44HVXNjvt3GBcHW2Wm4hY0kw3hiB34zJLtF
30
+ guIFECsHQ0h/8urS1WgWDj3Tyk/r/S0KDWh8Ltm96bhASHLL7EqN4g2QTOIu42jX
31
+ DKPIX0hHK6LpcHPQEP8FyQ==
32
+ -----END CERTIFICATE-----
33
+ date: 2017-07-05 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: bundler
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.12'
42
+ type: :development
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.12'
49
+ - !ruby/object:Gem::Dependency
50
+ name: rake
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '10.0'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '10.0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: dnsruby
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.60'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.60.1
73
+ type: :runtime
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.60'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.60.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: thor
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: camelizable
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: create zone config from catalog zone file.
112
+ email:
113
+ - mimuret@gmail.com
114
+ executables:
115
+ - catz
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".coveralls.yml"
120
+ - ".gitignore"
121
+ - ".rspec"
122
+ - ".travis.yml"
123
+ - Gemfile
124
+ - LICENSE.txt
125
+ - README.jp.md
126
+ - README.md
127
+ - Rakefile
128
+ - bin/catz
129
+ - certs/mimuret.pem
130
+ - dns-catalog_zone.gemspec
131
+ - lib/dns/catalog_zone.rb
132
+ - lib/dns/catalog_zone/catalog_zone.rb
133
+ - lib/dns/catalog_zone/cli.rb
134
+ - lib/dns/catalog_zone/config.rb
135
+ - lib/dns/catalog_zone/errors.rb
136
+ - lib/dns/catalog_zone/helper.rb
137
+ - lib/dns/catalog_zone/master.rb
138
+ - lib/dns/catalog_zone/output.rb
139
+ - lib/dns/catalog_zone/output/base.rb
140
+ - lib/dns/catalog_zone/output/file.rb
141
+ - lib/dns/catalog_zone/output/stdout.rb
142
+ - lib/dns/catalog_zone/prefixes.rb
143
+ - lib/dns/catalog_zone/provider.rb
144
+ - lib/dns/catalog_zone/provider/base.rb
145
+ - lib/dns/catalog_zone/provider/knot.rb
146
+ - lib/dns/catalog_zone/provider/nsd.rb
147
+ - lib/dns/catalog_zone/provider/yadifa.rb
148
+ - lib/dns/catalog_zone/source.rb
149
+ - lib/dns/catalog_zone/source/axfr.rb
150
+ - lib/dns/catalog_zone/source/base.rb
151
+ - lib/dns/catalog_zone/source/file.rb
152
+ - lib/dns/catalog_zone/version.rb
153
+ - lib/dns/catalog_zone/zone.rb
154
+ - share/CatalogZone
155
+ - share/knotd-catalog.sh
156
+ - share/nsd-catalog.sh
157
+ - share/yadifad-catalog.sh
158
+ homepage: https://github.com/mimuret/dns-catalog_zone
159
+ licenses:
160
+ - MIT
161
+ metadata:
162
+ allowed_push_host: https://rubygems.org
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: 2.2.2
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 2.4.5.2
180
+ signing_key:
181
+ specification_version: 4
182
+ summary: create zone config from catalog zone file.
183
+ test_files: []
metadata.gz.sig ADDED
Binary file