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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: eca096589ebf213eb06bf0142df9b2c3ab9d1f0a
4
- data.tar.gz: 999ab3697695ad9aad2f97ae0795dab443a8045b
2
+ SHA256:
3
+ metadata.gz: 466c2c33bbc5f995943ce43108cdd596b7edd287bdaa8267ffcac102894c1cc1
4
+ data.tar.gz: d8bfbbcced1c61aef1de4edf19edd383b662471be67f787c4a7a4f4c3501c4d6
5
5
  SHA512:
6
- metadata.gz: 4e5a936e33c9ceda32248a271b7b96c8eb2855870c8001dfc3fa21b29b058a5b380f1282053e37629050f5c528a22a9e0837023e5c09c5556c8ce128333037be
7
- data.tar.gz: bde1b5554173a93a956c35d8bf354601304e4de4e8d617b57823790563e78ccfba720611ff4c86cfbf7ac029977011b4e2d0d3a2853fd7872c2a3e986fb16fcc
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 [Active Record](https://github.com/rails/rails/tree/master/activerecord) and [thor](https://github.com/erikhuda/thor). Some of the code was shamelessly copied from [PowerDNS on Rails](https://github.com/kennethkalmer/powerdns-on-rails).
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 the [Active Record Query Interface](http://guides.rubyonrails.org/active_record_querying.html).
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
@@ -0,0 +1,7 @@
1
+ version: '3'
2
+
3
+ services:
4
+ pgsql:
5
+ image: postgres:alpine
6
+ ports:
7
+ - 5432:5432
@@ -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
- a[2] = t + "%02d" % i
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'powerdns_db_cli'
3
- s.version = '0.0.6'
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 'bundler', '~> 1.7'
18
- s.add_development_dependency 'pg', '~> 0.17'
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.6
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: 2017-01-05 00:00:00.000000000 Z
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.17'
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.17'
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: '10.0'
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: '10.0'
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.8
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.