dns-catalog_zone 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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