aboutsummaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/dhcpd.conf.debian.erb16
-rw-r--r--templates/host.conf.erb31
-rw-r--r--templates/shared-network.erb11
-rw-r--r--templates/subnet.conf.erb49
4 files changed, 53 insertions, 54 deletions
diff --git a/templates/dhcpd.conf.debian.erb b/templates/dhcpd.conf.debian.erb
index ee95bee..7dfd168 100644
--- a/templates/dhcpd.conf.debian.erb
+++ b/templates/dhcpd.conf.debian.erb
@@ -4,22 +4,14 @@
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
-<% if has_variable?('dhcpd_ddns_update') -%>
-ddns-update-style <%=dhcpd_ddns_update%>;
-<% else -%>
-ddns-update-style none;
-<% end -%>
+ddns-update-style <%= @ddns_update %>;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
-<% if has_variable?('dhcpd_authoritative') -%>
-authoritative;
-<% else -%>
-#authoritative;
-<% end -%>
+<% unless @authoritative -%>#<%- end -%>authoritative;
-<% if has_variable?('dhcpd_opts') and not dhcpd_opts.empty? -%>
-<%= dhcpd_opts.join(";\n") %>
+<% unless @opts.empty? -%>
+<%= @opts.join(";\n") %>;
<% end -%>
# Use this to send dhcp log messages to a different log file (you also
diff --git a/templates/host.conf.erb b/templates/host.conf.erb
index e6a7073..c483d62 100644
--- a/templates/host.conf.erb
+++ b/templates/host.conf.erb
@@ -1,16 +1,25 @@
-<%- @hash_data.sort.each do |host, datas| -%>
-<%- datas.fetch('interfaces').sort.each do |if_name, if_mac| -%>
+<%- @hash_data.sort.each do |host, data|
+ scope.function_validate_hash([data])
+ raise Puppet::ParseError, "Missing interfaces hash for host '#{host}'" unless data.has_key? 'interfaces'
+ data.fetch('interfaces').sort.each do |if_name, if_mac|
+ scope.function_validate_re([if_name, '^\S+$'])
+ scope.function_validate_string([if_mac])
+ scope.function_validate_re([if_mac, '^[A-Fa-f0-9:.]+$'])
+ -%>
host <%= host %>-<%= if_name %> {
hardware ethernet <%= if_mac %>;
-<% if datas.fetch('fixed_address', false) -%>
- fixed-address <%= datas.fetch('fixed_address') %>;
-<% else -%>
- fixed-address <%= host %>;
-<% end -%>
-<% if datas.fetch('option', false) -%>
- <%= datas.fetch('option') %>
-<% elsif @global_options -%>
- <%= @global_options %>
+<%
+ fixed_address = data.fetch('fixed_address', nil) || host
+ scope.function_validate_string([fixed_address])
+ scope.function_validate_re([fixed_address, '^\S+$'])
+ -%>
+ fixed-address <%= fixed_address %>;
+<%
+ options = data.fetch('options', nil) || @global_options
+ scope.function_validate_array([options])
+ unless options.empty?
+ -%>
+ <%= options.join(";\n") %>;
<% end -%>
}
<% end -%>
diff --git a/templates/shared-network.erb b/templates/shared-network.erb
index 99a7aca..33810b8 100644
--- a/templates/shared-network.erb
+++ b/templates/shared-network.erb
@@ -1,7 +1,10 @@
-#### dhcp::shared-network <%= name %>
-shared-network <%= name %> {
-<% subnets.each do |subnet| -%>
+#### dhcp::shared_network <%= @name %>
+shared-network <%= @name %> {
+<% @subnets.each do |subnet|
+ scope.function_validate_string([subnet])
+ scope.function_validate_re([subnet, '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$'])
+-%>
include "<%= scope.lookupvar("dhcp::params::config_dir") %>/subnets/<%= subnet %>.conf";
<% end -%>
}
-#### END <%= name %>
+#### END <%= @name %>
diff --git a/templates/subnet.conf.erb b/templates/subnet.conf.erb
index 89ca82f..11f9ed4 100644
--- a/templates/subnet.conf.erb
+++ b/templates/subnet.conf.erb
@@ -1,33 +1,28 @@
# File managed by puppet
-<% if netmask -%>
-subnet <%=name%> netmask <%=netmask%> {
-<% else -%>
-subnet <%=name%> netmask <%=netmask_eth0%> {
-<% end -%>
-<% if routers and not routers.empty? -%>
- option routers <%= routers.collect! {|i| "#{i}" }.join(",") %>;
-<% else -%>
- option routers <%=network_eth0%>;
-<% end -%>
-<% if subnet_mask -%>
- option subnet-mask <%=subnet_mask%>;
-<% elsif netmask -%>
- option subnet-mask <%=netmask%>;
-<% else -%>
- option subnet-mask <%=netmask_eth0%>;
-<% end -%>
- option broadcast-address <%=broadcast%>;
-<% if domain_name -%>
- option domain-name "<%=domain_name%>";
-<% else -%>
- option domain-name "<%=domain%>";
-<% end -%>
-<% if other_opts and not other_opts.empty? -%>
- <% if other_opts.is_a?(Array) -%>
-<%= other_opts.collect! {|i| " #{i};"}.join("\n") %>
+<%-
+ _netmask = @netmask || scope.lookupvar('::netmask_eth0')
+ scope.function_validate_re([_netmask, @ip_re]) -%>
+subnet <%= @name %> netmask <%= _netmask %> {
+<%-
+ _routers = @routers unless @routers.empty?
+ _routers ||= [scope.lookupvar('::netmask_eth0')]
+ scope.function_validate_array([_routers]) -%>
+ option routers <%= _routers.collect! {|i| "#{i}" }.join(',') %>;
+<%-
+ _subnet_mask = @subnet_mask || _netmask
+ scope.function_validate_re([_subnet_mask, @ip_re]) -%>
+ option subnet-mask <%= _subnet_mask %>;
+ option broadcast-address <%= @broadcast %>;
+<%-
+ _domain_name = @domain_name || scope.lookupvar('::domain')
+ scope.function_validate_re([_domain_name, '^\S+$']) -%>
+ option domain-name "<%= _domain_name %>";
+<% unless @other_opts.empty? -%>
+ <% if @other_opts.is_a?(Array) -%>
+<%= @other_opts.collect! {|i| " #{i};"}.join("\n") %>
<% else -%>
- <%=other_opts%>;
+ <%= @other_opts %>;
<% end -%>
<% end -%>
}