### USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
###
-<%= resolvconf = case hoster
- when "ubcece" then "search debprivate-ubc.debian.org debian.org
-nameserver 206.12.19.5
-nameserver 137.82.1.1
-nameserver 142.103.1.1
-"
+<%=
+nameservers = []
+searchpaths = []
+options = []
+resolvconf = ''
+
+if %w{draghi}.include?(hostname)
+ nameservers << "127.0.0.1"
end
-if resolvconf == ""
- raise Puppet::ParseError, "resolv.conf is empty"
+
+nameservers += scope.lookupvar('ns')
+searchpaths += scope.lookupvar('sp')
+options += scope.lookupvar('opts')
+
+searchpaths << "debian.org"
+
+resolvconf += "search " + searchpaths.to_a.flatten.join(" ") + "\n"
+
+if has_variable?('unbound') and unbound and unbound == "true"
+ resolvconf += "nameserver 127.0.0.1\n"
+else
+ if nameservers.empty?
+ #raise Puppet::ParseError, "Something has gone wrong writing resolv.conf. No nameservers to use!"
+ scope.function_warning(["Something has gone wrong writing resolv.conf. No nameservers to use - using google's!"])
+ nameservers << '8.8.8.8'
+ nameservers << '8.8.4.4'
+ end
+
+ nameservers.to_a.flatten.each do |ns|
+ resolvconf += "nameserver " + ns + "\n"
+ end
+end
+
+options.to_a.flatten.each do |opt|
+ resolvconf += "options " + opt + "\n"
end
+
resolvconf
%>