diff options
-rw-r--r-- | manifests/file.pp | 17 | ||||
-rw-r--r-- | spec/defines/tftp_file_spec.rb | 75 |
2 files changed, 75 insertions, 17 deletions
diff --git a/manifests/file.pp b/manifests/file.pp index ec67f2c..b3985c7 100644 --- a/manifests/file.pp +++ b/manifests/file.pp @@ -10,10 +10,10 @@ # define tftp::file ( $ensure = file, - $recurse = false, $owner = 'tftp', $group = 'tftp', $mode = '0644', + $recurse = false, $purge = undef, $replace = undef, $recurselimit = undef, @@ -22,17 +22,28 @@ define tftp::file ( ) { include 'tftp' + if $source { + $source_real = $source + } elsif $ensure != 'directory' and ! $content { + if $caller_module_name { + $mod = $caller_module_name + } else { + $mod = $module_name + } + $source_real = "puppet:///modules/${mod}/${name}" + } + file { "${tftp::directory}/${name}": ensure => $ensure, - recurse => $recurse, owner => $owner, group => $group, mode => $mode, + recurse => $recurse, purge => $purge, replace => $replace, recurselimit => $recurselimit, content => $content, - source => $source, + source => $source_real, require => Class['tftp'], } } diff --git a/spec/defines/tftp_file_spec.rb b/spec/defines/tftp_file_spec.rb index 6a032c0..0de1b6f 100644 --- a/spec/defines/tftp_file_spec.rb +++ b/spec/defines/tftp_file_spec.rb @@ -11,10 +11,10 @@ describe 'tftp::file' do it { should include_class('tftp') } it { should contain_file('/srv/tftp/sample').with({ 'ensure' => 'file', - 'recurse' => false, 'owner' => 'tftp', 'group' => 'tftp', - 'mode' => '0644' + 'mode' => '0644', + 'recurse' => false, }) } end @@ -25,29 +25,29 @@ describe 'tftp::file' do it { should include_class('tftp') } it { should contain_file('/var/lib/tftpboot/sample').with({ 'ensure' => 'file', - 'recurse' => false, 'owner' => 'tftp', 'group' => 'tftp', - 'mode' => '0644' + 'mode' => '0644', + 'recurse' => false, }) } end describe 'when deploying with parameters' do - let(:params) { {:ensure => 'directory', - :recurse => true, - :owner => 'root', - :group => 'root', - :mode => '0755' }} + let(:params) { {:ensure => 'directory', + :owner => 'root', + :group => 'root', + :mode => '0755', + :recurse => true }} let(:facts) { { :operatingsystem => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } it { should include_class('tftp') } it { should contain_file('/srv/tftp/sample').with({ 'ensure' => 'directory', - 'recurse' => true, 'owner' => 'root', 'group' => 'root', - 'mode' => '0755' + 'mode' => '0755', + 'recurse' => true, }) } end @@ -61,14 +61,14 @@ describe 'tftp::file' do 'recurse' => false, 'purge' => nil, 'replace' => nil, - 'recurselimit' => nil + 'recurselimit' => nil, }) } end describe 'when deploying with recurse parameters' do let(:params) { {:ensure => 'directory', - :recurse => true, :mode => '0755', + :recurse => true, :recurselimit => 42, :purge => true, :replace => false }} @@ -78,13 +78,60 @@ describe 'tftp::file' do it { should include_class('tftp') } it { should contain_file('/srv/tftp/sample').with({ 'ensure' => 'directory', - 'recurse' => true, 'owner' => 'tftp', 'group' => 'tftp', 'mode' => '0755', + 'recurse' => true, 'recurselimit' => 42, 'purge' => true, 'replace' => false, }) } end + + describe 'when deploying directory' do + let(:params) { {:ensure => 'directory', + :mode => '0755' }} + let(:facts) { { :operatingsystem => 'Debian', + :caller_module_name => 'acme', + :path => '/usr/local/bin:/usr/bin:/bin', } } + + it { should include_class('tftp') } + it { should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'directory', + 'mode' => '0755', + 'source' => nil, + }) } + end + + describe 'when deploying file from another module' do + let(:params) { {:ensure => 'file', + :mode => '0755' }} + let(:facts) { { :operatingsystem => 'Debian', + :caller_module_name => 'acme', + :path => '/usr/local/bin:/usr/bin:/bin', } } + + it { should include_class('tftp') } + it { should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'file', + 'mode' => '0755', + 'source' => 'puppet:///modules/acme/sample' + }) } + end + + describe 'when deploying file with content' do + let(:params) { {:ensure => 'file', + :content => 'hi', + :mode => '0755' }} + let(:facts) { { :operatingsystem => 'Debian', + :caller_module_name => 'acme', + :path => '/usr/local/bin:/usr/bin:/bin', } } + + it { should include_class('tftp') } + it { should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'file', + 'mode' => '0755', + 'content' => 'hi', + 'source' => nil, + }) } + end end |