powerdns_db_cli 0.0.6 → 0.0.7

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