diff options
author | Raphaël Pinson <raphael.pinson@camptocamp.com> | 2013-04-12 10:38:14 +0200 |
---|---|---|
committer | Raphaël Pinson <raphael.pinson@camptocamp.com> | 2013-04-12 10:38:14 +0200 |
commit | f4e7bdf477586e34e47a972172c15809ac92fe3c (patch) | |
tree | 98a5610e9d0b65b39f0705c0745f12f381d13a6b /templates/host.conf.erb | |
parent | 0689631b833d5683bdef5885de5893450f4928ca (diff) | |
download | puppet-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/host.conf.erb')
-rw-r--r-- | templates/host.conf.erb | 32 |
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 -%> |