aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/hosts.pp2
-rw-r--r--manifests/params.pp2
-rw-r--r--spec/classes/dhcp_spec.rb73
3 files changed, 75 insertions, 2 deletions
diff --git a/manifests/hosts.pp b/manifests/hosts.pp
index b159449..426d661 100644
--- a/manifests/hosts.pp
+++ b/manifests/hosts.pp
@@ -42,7 +42,7 @@ define dhcp::hosts (
$template = 'dhcp/host.conf.erb',
) {
- include dhcp::params
+ include ::dhcp::params
concat::fragment {"dhcp.host.${name}":
target => "${dhcp::params::config_dir}/hosts.d/${subnet}.conf",
diff --git a/manifests/params.pp b/manifests/params.pp
index 925f3f5..0938e4a 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -27,7 +27,7 @@ class dhcp::params {
}
default: {
- fail "${name} is not available for ${::operatingsystem}/${::lsbdistcodename}"
+ fail "Unsupported OS ${::operatingsystem}/${::lsbdistcodename}"
}
}
diff --git a/spec/classes/dhcp_spec.rb b/spec/classes/dhcp_spec.rb
new file mode 100644
index 0000000..c833c52
--- /dev/null
+++ b/spec/classes/dhcp_spec.rb
@@ -0,0 +1,73 @@
+require 'spec_helper'
+
+describe 'dhcp' do
+ context 'When on an unsupported OS' do
+ let (:facts) { {
+ :operatingsystem => 'RedHat',
+ :osfamily => 'Redhat',
+ :lsbdistcodename => 'Santiago'
+ } }
+
+ it 'should fail' do
+ expect {
+ should contain_package('dhcp-server')
+ }.to raise_error(Puppet::Error, /Unsupported OS RedHat\/Santiago/)
+ end
+ end
+
+ context 'When on Debian lenny' do
+ let (:facts) { {
+ :operatingsystem => 'Debian',
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'lenny'
+ } }
+
+ # Package
+ it { should contain_package('dhcp-server').with(
+ :name => 'dhcp3-server'
+ ) }
+
+ # Config
+ it { should contain_concat('/etc/dhcp3/dhcpd.conf').with(
+ :owner => 'root',
+ :group => 'root',
+ :mode => '0644'
+ ) }
+
+ # Service
+ it { should contain_service('dhcpd').with(
+ :ensure => 'running',
+ :name => 'dhcp3-server',
+ :enable => true,
+ :pattern => '/usr/sbin/dhcpd3'
+ ) }
+ end
+
+ context 'When on Debian squeeze' do
+ let (:facts) { {
+ :operatingsystem => 'Debian',
+ :osfamily => 'Debian',
+ :lsbdistcodename => 'squeeze'
+ } }
+
+ # Package
+ it { should contain_package('dhcp-server').with(
+ :name => 'isc-dhcp-server'
+ ) }
+
+ # Config
+ it { should contain_concat('/etc/dhcp/dhcpd.conf').with(
+ :owner => 'root',
+ :group => 'root',
+ :mode => '0644'
+ ) }
+
+ # Service
+ it { should contain_service('dhcpd').with(
+ :ensure => 'running',
+ :name => 'isc-dhcp-server',
+ :enable => true,
+ :pattern => '/usr/sbin/dhcpd'
+ ) }
+ end
+end