summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-06-07 15:40:28 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-06-07 15:40:28 +0200
commit65eb56c93f846d2908f9f7496e4e5b265c952f83 (patch)
tree53929f79737bbab68754132fddae3095537f4776
parentRemove serial fact. (diff)
downloaddns-65eb56c93f846d2908f9f7496e4e5b265c952f83.tar.gz
dns-65eb56c93f846d2908f9f7496e4e5b265c952f83.tar.xz
Got content working.
-rw-r--r--lib/puppet/provider/dns_zone2/named.rb15
-rw-r--r--lib/puppet/type/dns_record2.rb5
-rw-r--r--lib/puppet/type/dns_zone2.rb21
-rw-r--r--manifests/zone.pp4
4 files changed, 15 insertions, 30 deletions
diff --git a/lib/puppet/provider/dns_zone2/named.rb b/lib/puppet/provider/dns_zone2/named.rb
index d929322..c1e39c5 100644
--- a/lib/puppet/provider/dns_zone2/named.rb
+++ b/lib/puppet/provider/dns_zone2/named.rb
@@ -1,4 +1,5 @@
Puppet::Type.type(:dns_zone2).provide(:named) do
+
def self.instances
`named-checkconf -l`.split("\n").map do |record|
name, cls, view, type = record.split(' ')
@@ -8,18 +9,12 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
def create(records)
print("Create #{resource[:name]}\n")
- write_zone records
end
def destroy
print("Remove #{resource[:name]}\n")
end
- def refresh(records)
- print("Refresh #{resource[:name]}\n")
- write_zone records
- end
-
def exists?
# instances.find { |r| r.name == resource[:name] }
# resource[:ensure] == :present
@@ -38,7 +33,7 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
content = <<~EOF
; File managed by Puppet.
; Local changes WILL be overwritten
- ; File last generated #{Time.now}
+ ; File last generated {Time.now}
$ORIGIN #{resource[:origin]}
$TTL #{resource[:default_ttl]}
@@ -70,12 +65,6 @@ Puppet::Type.type(:dns_zone2).provide(:named) do
content
end
- def write_zone(content)
- File.open(filename, 'w') do |file|
- file.write content
- end
- end
-
def serial
`rndc zonestatus #{name} | awk -F' ' '/^serial:/ { print $2 }'`.to_i
end
diff --git a/lib/puppet/type/dns_record2.rb b/lib/puppet/type/dns_record2.rb
index 98eaadb..1aceaf9 100644
--- a/lib/puppet/type/dns_record2.rb
+++ b/lib/puppet/type/dns_record2.rb
@@ -90,8 +90,7 @@ Puppet::Type.newtype(:dns_record2) do
EOF
end
- # autobefore('dns::zone') { value(:zone) }
- autonotify('dns_zone2') { [value(:zone)] }
- # autobefore('dns_zone2') { [value(:zone)] }
+ autonotify(:dns_zone2) { || [value(:zone)] }
+
# TODO views
end
diff --git a/lib/puppet/type/dns_zone2.rb b/lib/puppet/type/dns_zone2.rb
index 61fe8ce..ff0cf02 100644
--- a/lib/puppet/type/dns_zone2.rb
+++ b/lib/puppet/type/dns_zone2.rb
@@ -11,7 +11,9 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
newproperty(:ensure) do
newvalue(:present) do
- provider.write_zone(resource.should_content)
+ # @resource.content = resource.should_content
+ # provider.write_zone(resource.should_content)
+ print("Present resource\n")
end
# This should ideally remove the zone. This is however managed
@@ -36,7 +38,8 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
end
def refresh
- provider.write_zone(should_content)
+ print("Refreshing zone\n")
+ catalog.resource("File[/var/named/zones/#{self[:name]}db]")[:content] = should_content
end
newparam(:origin, namevar: true) do
@@ -115,26 +118,20 @@ Puppet::Type.newtype(:dns_zone2, self_refresh: true) do
end
# Create the file resource for us.
-
- # This prevents the directory purge on /var/named/zones from deleting us.
def generate
+ print("Generate\n")
params = {
ensure: :present,
path: provider.filename,
+ # notify: self[:notify],
}
+
[Puppet::Type.type(:file).new(params)]
end
def should_content
+ print("Getting content\n")
provider.zone_content(records)
end
- # def eval_generate
- # content = should_content
- # catalog.resource("File[/var/named/zones/#{self[:name]}db]")[:content] = content
- # # provider.refresh (resource.records)
- # [catalog.resource("File[/var/named/zones/#{self[:name]}db]")]
- # end
-
- # autorequire(:file) {["/var/named/zones/#{self[:name]}db"]}
end
diff --git a/manifests/zone.pp b/manifests/zone.pp
index c30becf..828b887 100644
--- a/manifests/zone.pp
+++ b/manifests/zone.pp
@@ -121,13 +121,13 @@ define dns::zone (
}
} else {
dns_zone2 { $zone:
- * => $params,
+ notify => Exec["Dns::zone reload ${zone_}"],
+ * => $params,
}
exec { "Dns::zone reload ${zone_}":
command => [$dns::rndc, 'reload', $zone_],
refreshonly => true,
- subscribe => Dns_zone2[$zone_],
}
}
}