aboutsummaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorRaphaël Pinson <raphael.pinson@camptocamp.com>2013-04-12 10:38:14 +0200
committerRaphaël Pinson <raphael.pinson@camptocamp.com>2013-04-12 10:38:14 +0200
commitf4e7bdf477586e34e47a972172c15809ac92fe3c (patch)
tree98a5610e9d0b65b39f0705c0745f12f381d13a6b /templates
parent0689631b833d5683bdef5885de5893450f4928ca (diff)
downloadpuppet-dhcp-f4e7bdf477586e34e47a972172c15809ac92fe3c.tar.gz
puppet-dhcp-f4e7bdf477586e34e47a972172c15809ac92fe3c.tar.bz2
Improve template host.conf.erb with validations and add spec for dhcp::hosts
Diffstat (limited to 'templates')
-rw-r--r--templates/host.conf.erb32
1 files changed, 21 insertions, 11 deletions
diff --git a/templates/host.conf.erb b/templates/host.conf.erb
index e6a7073..398d798 100644
--- a/templates/host.conf.erb
+++ b/templates/host.conf.erb
@@ -1,16 +1,26 @@
-<%- @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-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 -%>