powerdns_db_cli 0.0.6 → 0.0.7
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 -5
- data/README.md +14 -8
- data/Rakefile +13 -0
- data/docker-compose.yml +7 -0
- data/lib/powerdns_db_cli/record.rb +25 -4
- data/powerdns_db_cli.gemspec +3 -4
- metadata +8 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 466c2c33bbc5f995943ce43108cdd596b7edd287bdaa8267ffcac102894c1cc1
|
4
|
+
data.tar.gz: d8bfbbcced1c61aef1de4edf19edd383b662471be67f787c4a7a4f4c3501c4d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e262578c7a9f7305901aa5b58144885b204d90497c0c8c21077942f91d5587fcc74b758dda361d74d39d54b59f1e928dd4bc411736c6b3baf2df6c0560bd490
|
7
|
+
data.tar.gz: 762b08381dd437a65c709b211598f59e516bf6d1dd956b5325b25d13ed6bd021c562041a14769d928e630a88d08e9c8d9c34a1b05557b8a0f4c43db7fa8c5f66
|
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
powerdns_db_cli
|
2
|
-
===============
|
1
|
+
# powerdns_db_cli
|
3
2
|
|
4
|
-
Minimal command-line interface for PowerDNS database administration based on
|
3
|
+
Minimal command-line interface for PowerDNS database administration based on
|
4
|
+
[Active Record][0] and [thor][1]. Some of the code was shamelessly copied from
|
5
|
+
[PowerDNS on Rails][2].
|
5
6
|
|
6
|
-
Installation
|
7
|
-
------------
|
7
|
+
## Installation
|
8
8
|
|
9
9
|
From source:
|
10
10
|
|
@@ -14,8 +14,7 @@ Or from rubygems.org:
|
|
14
14
|
|
15
15
|
gem install powerdns_db_cli
|
16
16
|
|
17
|
-
Usage
|
18
|
-
-----
|
17
|
+
## Usage
|
19
18
|
|
20
19
|
pdns domain list
|
21
20
|
pdns domain create <name>
|
@@ -25,4 +24,11 @@ Usage
|
|
25
24
|
pdns record create <domain> <name> <type> <content> [prio] [ttl] [auth]
|
26
25
|
pdns record remove <domain> <name> <type> [content] [prio]
|
27
26
|
|
28
|
-
With `pdns -i`, it is also possible to interact with the database direcly using
|
27
|
+
With `pdns -i`, it is also possible to interact with the database direcly using
|
28
|
+
the [Active Record Query Interface][3].
|
29
|
+
|
30
|
+
|
31
|
+
[0]: https://github.com/rails/rails/tree/master/activerecord
|
32
|
+
[1]: https://github.com/erikhuda/thor
|
33
|
+
[2]: https://github.com/kennethkalmer/powerdns-on-rails
|
34
|
+
[3]: http://guides.rubyonrails.org/active_record_querying.html
|
data/Rakefile
CHANGED
@@ -1 +1,14 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
|
+
|
3
|
+
namespace :db do
|
4
|
+
desc 'Import initial database schema'
|
5
|
+
task :init do
|
6
|
+
sh "echo 'create database pdns;' | psql -h localhost -U postgres"
|
7
|
+
sh "psql -h localhost -U postgres pdns < powerdns.pgsql"
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'Drop database pdns on localhost'
|
11
|
+
task :drop do
|
12
|
+
sh "echo 'drop database pdns;' | psql -h localhost -U postgres"
|
13
|
+
end
|
14
|
+
end
|
data/docker-compose.yml
ADDED
@@ -22,14 +22,35 @@ module PowerDNS
|
|
22
22
|
after_save :update_soa_serial
|
23
23
|
after_destroy :update_soa_serial
|
24
24
|
|
25
|
+
# We do not use the conventional serial format (e.g. 1970010199), because
|
26
|
+
# the serial update counter is limited to two digits which is a problem
|
27
|
+
# with DynDNS.
|
28
|
+
#
|
29
|
+
# The serial has the format:
|
30
|
+
# <year><month-plus-20><four-digit-update-counter>
|
31
|
+
# e.g. 1970219999
|
32
|
+
#
|
33
|
+
# Maximum serial in PowerDNS is 2147483647.
|
34
|
+
# See https://github.com/PowerDNS/pdns/issues/4943
|
25
35
|
def update_serial
|
26
36
|
return if self.type != 'SOA'
|
27
37
|
|
28
38
|
a = self.content.split(' ')
|
29
|
-
i = a[2][8..-1].to_i + 1
|
30
|
-
t = Time.now.strftime('%Y%m%d')
|
31
39
|
|
32
|
-
|
40
|
+
# Last 4 digits of serial (serial update counter)
|
41
|
+
i = a[2][6..-1].to_i
|
42
|
+
|
43
|
+
# 201801 -> 201821
|
44
|
+
t = Time.now.strftime('%Y%m').to_i + 20
|
45
|
+
|
46
|
+
# Reset serial update counter if serial is on "old" format (e.g.
|
47
|
+
# 2018010199)
|
48
|
+
i = 0 if a[2][4..5].to_i <= 12
|
49
|
+
|
50
|
+
# Increment serial update counter
|
51
|
+
i += 1
|
52
|
+
|
53
|
+
a[2] = t.to_s + "%04d" % i
|
33
54
|
self.content = a.join(' ')
|
34
55
|
end
|
35
56
|
|
@@ -45,7 +66,7 @@ module PowerDNS
|
|
45
66
|
self.name = self.domain.name
|
46
67
|
else
|
47
68
|
unless self.name.include?(self.domain.name)
|
48
|
-
self.name << ".#{self.domain.name}"
|
69
|
+
self.name << ".#{self.domain.name}"
|
49
70
|
end
|
50
71
|
end
|
51
72
|
end
|
data/powerdns_db_cli.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'powerdns_db_cli'
|
3
|
-
s.version = '0.0.
|
3
|
+
s.version = '0.0.7'
|
4
4
|
s.authors = ['henning mueller']
|
5
5
|
s.email = ['mail@nning.io']
|
6
6
|
|
@@ -14,9 +14,8 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
15
15
|
s.require_paths = ['lib']
|
16
16
|
|
17
|
-
s.add_development_dependency '
|
18
|
-
s.add_development_dependency '
|
19
|
-
s.add_development_dependency 'rake', '~> 10.0'
|
17
|
+
s.add_development_dependency 'pg', '~> 0.19'
|
18
|
+
s.add_development_dependency 'rake', '~> 12.0'
|
20
19
|
|
21
20
|
s.add_runtime_dependency 'activerecord', '~> 5.0', '< 5.1.0'
|
22
21
|
s.add_runtime_dependency 'thor', '~> 0.19'
|
metadata
CHANGED
@@ -1,57 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: powerdns_db_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- henning mueller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.7'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.7'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: pg
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - "~>"
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
19
|
+
version: '0.19'
|
34
20
|
type: :development
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
24
|
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
26
|
+
version: '0.19'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rake
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - "~>"
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
33
|
+
version: '12.0'
|
48
34
|
type: :development
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
38
|
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
40
|
+
version: '12.0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: activerecord
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +101,7 @@ files:
|
|
115
101
|
- Rakefile
|
116
102
|
- TODO
|
117
103
|
- bin/pdns
|
104
|
+
- docker-compose.yml
|
118
105
|
- lib/powerdns_db_cli.rb
|
119
106
|
- lib/powerdns_db_cli/cli/domain.rb
|
120
107
|
- lib/powerdns_db_cli/cli/main.rb
|
@@ -149,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
136
|
version: '0'
|
150
137
|
requirements: []
|
151
138
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.6
|
139
|
+
rubygems_version: 2.7.6
|
153
140
|
signing_key:
|
154
141
|
specification_version: 4
|
155
142
|
summary: Minimal command-line interface for PowerDNS database administration.
|