From 109024fd916b67aebf983427bde8b8761a8d2a97 Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Sat, 11 Apr 2015 16:42:26 -0400 Subject: first set of specs --- spec/classes/samba__server__config_spec.rb | 10 ++++++++ spec/classes/samba__server__install_spec.rb | 9 +++++++ spec/classes/samba__server__service_spec.rb | 40 +++++++++++++++++++++++++++++ spec/classes/samba__server_spec.rb | 9 +++++++ spec/fixtures/manifests/init.pp | 7 +++++ spec/spec_helper.rb | 8 ++++++ 6 files changed, 83 insertions(+) create mode 100644 spec/classes/samba__server__config_spec.rb create mode 100644 spec/classes/samba__server__install_spec.rb create mode 100644 spec/classes/samba__server__service_spec.rb create mode 100644 spec/classes/samba__server_spec.rb create mode 100644 spec/fixtures/manifests/init.pp create mode 100644 spec/spec_helper.rb (limited to 'spec') diff --git a/spec/classes/samba__server__config_spec.rb b/spec/classes/samba__server__config_spec.rb new file mode 100644 index 0000000..5f13aa4 --- /dev/null +++ b/spec/classes/samba__server__config_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' + +describe 'samba::server::config', :type => :class do + context "on a Debian OS" do + let( :facts ) { { :osfamily => 'Debian' } } + + it { should contain_file('/etc/samba/smb.conf').with_owner('root') } + end +end + diff --git a/spec/classes/samba__server__install_spec.rb b/spec/classes/samba__server__install_spec.rb new file mode 100644 index 0000000..9764687 --- /dev/null +++ b/spec/classes/samba__server__install_spec.rb @@ -0,0 +1,9 @@ +require 'spec_helper' + +describe 'samba::server::install', :type => :class do + context "on a Debian OS" do + let(:facts) {{ :osfamily => 'Debian' }} + it { should contain_package('samba') } + end +end + diff --git a/spec/classes/samba__server__service_spec.rb b/spec/classes/samba__server__service_spec.rb new file mode 100644 index 0000000..bc28a9b --- /dev/null +++ b/spec/classes/samba__server__service_spec.rb @@ -0,0 +1,40 @@ +require 'spec_helper' + +describe 'samba::server::service' do + context 'on a Debian os family' do + let(:facts) {{ :osfamily => 'Debian' }} + + it { should contain_service('samba') + .with_require('Class[Samba::Server::Config]') } + + context 'Debian' do + let(:facts) {{ :osfamily => 'Debian', :operatingsystem => 'Debian' }} + it { should contain_service('samba') } + end + + context 'Ubuntu' do + let(:facts) {{ :osfamily => 'Debian', :operatingsystem => 'Ubuntu' }} + it { should contain_service('smbd') } + end + end + + context 'on a Redhat os family' do + let(:facts) {{ :osfamily => 'Redhat' }} + it { should contain_service('smb') } + end + + context 'on a Archlinux os family' do + let(:facts) {{ :osfamily => 'Archlinux' }} + it { should contain_service('smbd') } + end + + context 'on a Gentoo os family' do + let(:facts) {{ :osfamily => 'Linux', :operatingsystem => 'Gentoo' }} + it { should contain_service('samba') } + end + + context 'on an unsupported OS' do + let(:facts) {{ :osfamily => 'Solaris' }} + it { should raise_error(/Solaris is not supported by this module./) } + end +end diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb new file mode 100644 index 0000000..89d994f --- /dev/null +++ b/spec/classes/samba__server_spec.rb @@ -0,0 +1,9 @@ +require 'spec_helper' + +describe 'samba::server' do + let(:facts) {{ :osfamily => 'Debian' }} + + it { should contain_class('samba::server::install') } + it { should contain_class('samba::server::config') } + it { should contain_class('samba::server::service') } +end diff --git a/spec/fixtures/manifests/init.pp b/spec/fixtures/manifests/init.pp new file mode 100644 index 0000000..0f64360 --- /dev/null +++ b/spec/fixtures/manifests/init.pp @@ -0,0 +1,7 @@ +node 'testhost.example.com' { + + include samba::server + +} + +node default {} diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..81f98ac --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,8 @@ +require 'puppetlabs_spec_helper/module_spec_helper' + +RSpec.configure do |c| + c.before do + # avoid "Only root can execute commands as other users" + Puppet.features.stubs(:root? => true) + end +end -- cgit v1.2.3 From e8b0f0a745c65babb91c2d049743fc09140a282b Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Sun, 12 Apr 2015 23:07:42 -0400 Subject: fix test to support ruby 1.8.7 --- spec/classes/samba__server__service_spec.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'spec') diff --git a/spec/classes/samba__server__service_spec.rb b/spec/classes/samba__server__service_spec.rb index bc28a9b..6498124 100644 --- a/spec/classes/samba__server__service_spec.rb +++ b/spec/classes/samba__server__service_spec.rb @@ -4,8 +4,7 @@ describe 'samba::server::service' do context 'on a Debian os family' do let(:facts) {{ :osfamily => 'Debian' }} - it { should contain_service('samba') - .with_require('Class[Samba::Server::Config]') } + it { should contain_service('samba').with_require('Class[Samba::Server::Config]') } context 'Debian' do let(:facts) {{ :osfamily => 'Debian', :operatingsystem => 'Debian' }} -- cgit v1.2.3 From b4e4a92ff4da6e34a8707ffb49c8ccf6ce316d2b Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Mon, 13 Apr 2015 13:28:45 -0400 Subject: more specs for samba::server use short hand for path to get specs passing --- manifests/server.pp | 6 ++---- spec/classes/samba__server_spec.rb | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'spec') diff --git a/manifests/server.pp b/manifests/server.pp index 9eace3d..65ea660 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -45,18 +45,16 @@ class samba::server($interfaces = '', 'disable_spoolss': value => $disable_spoolss; } - file {'check_samba_user': + file {'/sbin/check_samba_user': # script checks to see if a samba account exists for a given user - path => '/sbin/check_samba_user', owner => root, group => root, mode => '0755', content => template("${module_name}/check_samba_user"), } - file {'add_samba_user': + file {'/sbin/add_samba_user': # script creates a new samba account for a given user and password - path => '/sbin/add_samba_user', owner => root, group => root, mode => '0755', diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb index 89d994f..fce10bb 100644 --- a/spec/classes/samba__server_spec.rb +++ b/spec/classes/samba__server_spec.rb @@ -6,4 +6,21 @@ describe 'samba::server' do it { should contain_class('samba::server::install') } it { should contain_class('samba::server::config') } it { should contain_class('samba::server::service') } + + it { should contain_samba__server__option('interfaces') } + it { should contain_samba__server__option('bind interfaces only') } + it { should contain_samba__server__option('security') } + it { should contain_samba__server__option('server string') } + it { should contain_samba__server__option('unix password sync') } + it { should contain_samba__server__option('workgroup') } + it { should contain_samba__server__option('socket_options') } + it { should contain_samba__server__option('deadtime') } + it { should contain_samba__server__option('keepalive') } + it { should contain_samba__server__option('load_printers') } + it { should contain_samba__server__option('printing') } + it { should contain_samba__server__option('printcap_name') } + it { should contain_samba__server__option('disable_spoolss') } + + it { should contain_file('/sbin/check_samba_user').with_owner('root') } + it { should contain_file('/sbin/add_samba_user').with_owner('root') } end -- cgit v1.2.3 From 0169b9ab3c1722a23af563a38ea3165042592f63 Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Mon, 13 Apr 2015 13:34:27 -0400 Subject: test that Linux os's that aren't gentoo raise an error --- spec/classes/samba__server__service_spec.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'spec') diff --git a/spec/classes/samba__server__service_spec.rb b/spec/classes/samba__server__service_spec.rb index 6498124..ada7f21 100644 --- a/spec/classes/samba__server__service_spec.rb +++ b/spec/classes/samba__server__service_spec.rb @@ -27,9 +27,14 @@ describe 'samba::server::service' do it { should contain_service('smbd') } end - context 'on a Gentoo os family' do - let(:facts) {{ :osfamily => 'Linux', :operatingsystem => 'Gentoo' }} - it { should contain_service('samba') } + context 'on Linux os family' do + let(:facts) {{ :osfamily => 'Linux' }} + it { should raise_error(/is not supported by this module./) } + + context 'Gentoo' do + let(:facts) {{ :osfamily => 'Linux', :operatingsystem => 'Gentoo' }} + it { should contain_service('samba') } + end end context 'on an unsupported OS' do -- cgit v1.2.3 From 590d55da8dc735a9f955f6c9df7a424dd8609033 Mon Sep 17 00:00:00 2001 From: David Sheldon Date: Fri, 9 Oct 2015 18:24:22 +0100 Subject: Fix tests for all the _ options. --- spec/classes/samba__server_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'spec') diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb index fce10bb..69fa0ec 100644 --- a/spec/classes/samba__server_spec.rb +++ b/spec/classes/samba__server_spec.rb @@ -13,13 +13,13 @@ describe 'samba::server' do it { should contain_samba__server__option('server string') } it { should contain_samba__server__option('unix password sync') } it { should contain_samba__server__option('workgroup') } - it { should contain_samba__server__option('socket_options') } + it { should contain_samba__server__option('socket options') } it { should contain_samba__server__option('deadtime') } it { should contain_samba__server__option('keepalive') } - it { should contain_samba__server__option('load_printers') } + it { should contain_samba__server__option('load printers') } it { should contain_samba__server__option('printing') } - it { should contain_samba__server__option('printcap_name') } - it { should contain_samba__server__option('disable_spoolss') } + it { should contain_samba__server__option('printcap name') } + it { should contain_samba__server__option('disable spoolss') } it { should contain_file('/sbin/check_samba_user').with_owner('root') } it { should contain_file('/sbin/add_samba_user').with_owner('root') } -- cgit v1.2.3 From 91ae01bd358ea0696a865c88207e61daafe7cd8a Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Mon, 7 Dec 2015 16:16:58 -0500 Subject: implement acceptance tests --- Rakefile | 1 + spec/acceptance/basic_samba_spec.rb | 35 ++++++++++++++++++++++ spec/acceptance/nodesets/centos-66-x64.yml | 12 ++++++++ spec/acceptance/nodesets/centos-70-x64.yml | 12 ++++++++ spec/acceptance/nodesets/debian-78-x64.yml | 12 ++++++++ .../acceptance/nodesets/ubuntu-server-1204-x86.yml | 13 ++++++++ .../acceptance/nodesets/ubuntu-server-1404-x64.yml | 13 ++++++++ spec/spec_helper_acceptance.rb | 29 ++++++++++++++++++ 8 files changed, 127 insertions(+) create mode 100644 spec/acceptance/basic_samba_spec.rb create mode 100644 spec/acceptance/nodesets/centos-66-x64.yml create mode 100644 spec/acceptance/nodesets/centos-70-x64.yml create mode 100644 spec/acceptance/nodesets/debian-78-x64.yml create mode 100644 spec/acceptance/nodesets/ubuntu-server-1204-x86.yml create mode 100644 spec/acceptance/nodesets/ubuntu-server-1404-x64.yml create mode 100644 spec/spec_helper_acceptance.rb (limited to 'spec') diff --git a/Rakefile b/Rakefile index 69fed1b..908647f 100644 --- a/Rakefile +++ b/Rakefile @@ -28,6 +28,7 @@ exclude_paths = [ PuppetLint.configuration.ignore_paths = exclude_paths PuppetSyntax.exclude_paths = exclude_paths +ENV['BEAKER_set'] ||= 'ubuntu-server-1204-x86' desc "Run acceptance tests" RSpec::Core::RakeTask.new(:acceptance) do |t| t.pattern = 'spec/acceptance' diff --git a/spec/acceptance/basic_samba_spec.rb b/spec/acceptance/basic_samba_spec.rb new file mode 100644 index 0000000..0dd6ac6 --- /dev/null +++ b/spec/acceptance/basic_samba_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper_acceptance' + +describe 'basic samba' do + context 'default parameters' do + let(:pp) {" + class { 'samba::server': + workgroup => 'example', + server_string => 'Example Samba Server' + } + + samba::server::share {'example-share': + comment => 'Example Share', + path => '/path/to/share', + guest_only => true, + guest_ok => true, + guest_account => 'guest', + browsable => false, + create_mask => 0777, + force_create_mask => 0777, + directory_mask => 0777, + force_directory_mask => 0777, + force_group => 'group', + force_user => 'user', + } + "} + + it 'should apply with no errors' do + apply_manifest(pp, :catch_failures=>true) + end + + it 'should be idempotent' do + apply_manifest(pp, :catch_changes=>true) + end + end +end diff --git a/spec/acceptance/nodesets/centos-66-x64.yml b/spec/acceptance/nodesets/centos-66-x64.yml new file mode 100644 index 0000000..1fffff6 --- /dev/null +++ b/spec/acceptance/nodesets/centos-66-x64.yml @@ -0,0 +1,12 @@ +HOSTS: + centos-66-x64: + roles: + - master + platform: el-6-x86_64 + box: puppetlabs/centos-6.6-64-nocm + box_url: https://vagrantcloud.com/puppetlabs/boxes/centos-6.6-64-nocm + hypervisor: vagrant +CONFIG: + log_level: verbose + type: foss + color: false diff --git a/spec/acceptance/nodesets/centos-70-x64.yml b/spec/acceptance/nodesets/centos-70-x64.yml new file mode 100644 index 0000000..845e47e --- /dev/null +++ b/spec/acceptance/nodesets/centos-70-x64.yml @@ -0,0 +1,12 @@ +HOSTS: + centos-70-x64: + roles: + - master + platform: el-7-x86_64 + box: puppetlabs/centos-7.0-64-nocm + box_url: https://vagrantcloud.com/puppetlabs/boxes/centos-7.0-64-nocm + hypervisor : vagrant +CONFIG: + log_level: verbose + type: foss + color: false diff --git a/spec/acceptance/nodesets/debian-78-x64.yml b/spec/acceptance/nodesets/debian-78-x64.yml new file mode 100644 index 0000000..c4062fd --- /dev/null +++ b/spec/acceptance/nodesets/debian-78-x64.yml @@ -0,0 +1,12 @@ +HOSTS: + debian-78-x64: + roles: + - master + platform: debian-7-amd64 + box: puppetlabs/debian-7.8-64-nocm + box_url: https://vagrantcloud.com/puppetlabs/boxes/debian-7.8-64-nocm + hypervisor: vagrant + +CONFIG: + log_level: verbose + type: foss diff --git a/spec/acceptance/nodesets/ubuntu-server-1204-x86.yml b/spec/acceptance/nodesets/ubuntu-server-1204-x86.yml new file mode 100644 index 0000000..c2e8657 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-server-1204-x86.yml @@ -0,0 +1,13 @@ +HOSTS: + ubuntu-server-1204-x64: + roles: + - master + platform: ubuntu-1204-amd64 + box: puppetlabs/ubuntu-12.04-64-nocm + box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-12.04-64-nocm + hypervisor: vagrant + +CONFIG: + log_level: verbose + type: foss + color: false diff --git a/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml b/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml new file mode 100644 index 0000000..2fcee43 --- /dev/null +++ b/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml @@ -0,0 +1,13 @@ +HOSTS: + ubuntu-server-1404-x64: + roles: + - master + platform: ubuntu-server-14.04-amd64 + box: puppetlabs/ubuntu-14.04-64-nocm + box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm + hypervisor: vagrant + +CONFIG: + log_level: verbose + type: foss + color: false diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb new file mode 100644 index 0000000..74187d8 --- /dev/null +++ b/spec/spec_helper_acceptance.rb @@ -0,0 +1,29 @@ +require 'beaker-rspec/spec_helper' +require 'beaker-rspec/helpers/serverspec' +require 'pry' + +unless ENV['BEAKER_provision'] == 'no' + hosts.each do |host| + # Install Puppet + if host.is_pe? + install_pe + else + install_puppet + end + end +end + +RSpec.configure do |c| + # Project root + proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) + + # Readable test descriptions + c.formatter = :documentation + + # Configure all nodes in nodeset + c.before :suite do + # Install module and dependencies + puppet_module_install(:source => proj_root, :module_name => 'samba') + end +end + -- cgit v1.2.3 From 95cb988077ec2f5c79e4a2bd67d4b252fdc8739c Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Mon, 7 Dec 2015 16:17:25 -0500 Subject: clean whitespace --- manifests/server.pp | 1 - spec/fixtures/manifests/init.pp | 2 -- 2 files changed, 3 deletions(-) (limited to 'spec') diff --git a/manifests/server.pp b/manifests/server.pp index a73ad99..550659c 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -74,5 +74,4 @@ class samba::server($interfaces = '', mode => '0755', content => template("${module_name}/add_samba_user"), } - } diff --git a/spec/fixtures/manifests/init.pp b/spec/fixtures/manifests/init.pp index 0f64360..94005cd 100644 --- a/spec/fixtures/manifests/init.pp +++ b/spec/fixtures/manifests/init.pp @@ -1,7 +1,5 @@ node 'testhost.example.com' { - include samba::server - } node default {} -- cgit v1.2.3 From f2e9e5f32e0af0d83d8380b94decc522ff87fa30 Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Mon, 7 Dec 2015 16:18:42 -0500 Subject: Add support for Debian 8. closes #47 --- manifests/server/params.pp | 12 +++++++----- spec/acceptance/nodesets/debian-81-x64.yml | 12 ++++++++++++ spec/classes/samba__server__service_spec.rb | 14 ++++++++++++-- 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 spec/acceptance/nodesets/debian-81-x64.yml (limited to 'spec') diff --git a/manifests/server/params.pp b/manifests/server/params.pp index 5f2fc3e..ba0c1be 100644 --- a/manifests/server/params.pp +++ b/manifests/server/params.pp @@ -3,12 +3,14 @@ class samba::server::params { case $::osfamily { 'Redhat': { $service_name = 'smb' } - - #On Debian family: Debian 7 => samba , Ubuntu => smbd - #Others, I don't know, hope 'samba' will works 'Debian': { - case $::operatingsystem{ - 'Debian': { $service_name = 'samba' } + case $::operatingsystem { + 'Debian': { + case $::operatingsystemmajrelease { + '8' : { $service_name = 'smbd' } + default: { $service_name = 'samba' } + } + } 'Ubuntu': { $service_name = 'smbd' $nmbd_name = 'nmbd' } default: { $service_name = 'samba' } diff --git a/spec/acceptance/nodesets/debian-81-x64.yml b/spec/acceptance/nodesets/debian-81-x64.yml new file mode 100644 index 0000000..3b1d8aa --- /dev/null +++ b/spec/acceptance/nodesets/debian-81-x64.yml @@ -0,0 +1,12 @@ +HOSTS: + debian-81-x64: + roles: + - master + platform: debian-8-amd64 + box: lazyfrosch/debian-8-jessie-amd64-puppet + box_url: https://vagrantcloud.com/lazyfrosch/boxes/debian-8-jessie-amd64-puppet + hypervisor: vagrant + +CONFIG: + log_level: verbose + type: foss diff --git a/spec/classes/samba__server__service_spec.rb b/spec/classes/samba__server__service_spec.rb index ada7f21..4352ec2 100644 --- a/spec/classes/samba__server__service_spec.rb +++ b/spec/classes/samba__server__service_spec.rb @@ -7,8 +7,18 @@ describe 'samba::server::service' do it { should contain_service('samba').with_require('Class[Samba::Server::Config]') } context 'Debian' do - let(:facts) {{ :osfamily => 'Debian', :operatingsystem => 'Debian' }} - it { should contain_service('samba') } + context 'wheezy' do + let(:facts) {{ :osfamily => 'Debian', + :operatingsystem => 'Debian', + :operatingsystemmajrelease => '7' }} + it { should contain_service('samba') } + end + context 'jessie' do + let(:facts) {{ :osfamily => 'Debian', + :operatingsystem => 'Debian', + :operatingsystemmajrelease => '8' }} + it { should contain_service('smbd') } + end end context 'Ubuntu' do -- cgit v1.2.3 From 4eb267371c871a4b125d75830432a17bc9d0518b Mon Sep 17 00:00:00 2001 From: Adam Jahn Date: Mon, 7 Dec 2015 17:03:44 -0500 Subject: fix 14.04 nodeset --- spec/acceptance/nodesets/ubuntu-server-1404-x64.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'spec') diff --git a/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml b/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml index 2fcee43..62e2ea9 100644 --- a/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml +++ b/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml @@ -2,11 +2,10 @@ HOSTS: ubuntu-server-1404-x64: roles: - master - platform: ubuntu-server-14.04-amd64 + platform: ubuntu-1404-amd64 box: puppetlabs/ubuntu-14.04-64-nocm box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm hypervisor: vagrant - CONFIG: log_level: verbose type: foss -- cgit v1.2.3 From 037949461d7b064adc0b041207bc026cdabf8a27 Mon Sep 17 00:00:00 2001 From: Alexander Fisher Date: Fri, 22 Jan 2016 15:28:44 +0000 Subject: Remove spec/fixtures/manifests/init.pp --- .gitignore | 1 + spec/fixtures/manifests/init.pp | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 spec/fixtures/manifests/init.pp (limited to 'spec') diff --git a/.gitignore b/.gitignore index 5d05a71..7ff6674 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ pkg/ log/ Gemfile.lock +spec/fixtures/ diff --git a/spec/fixtures/manifests/init.pp b/spec/fixtures/manifests/init.pp deleted file mode 100644 index 94005cd..0000000 --- a/spec/fixtures/manifests/init.pp +++ /dev/null @@ -1,5 +0,0 @@ -node 'testhost.example.com' { - include samba::server -} - -node default {} -- cgit v1.2.3 From 9d63c7be3fa57e4af93c787f8b740658ec14f1f6 Mon Sep 17 00:00:00 2001 From: Alexander Fisher Date: Fri, 22 Jan 2016 15:32:28 +0000 Subject: Remove check_samba_user and add_samba_user scripts Call the pdbedit commands directly from samba::server::user instead --- manifests/server.pp | 16 ---------------- manifests/server/user.pp | 8 +++++--- spec/classes/samba__server_spec.rb | 3 --- spec/defines/samba__server__user_spec.rb | 14 ++++++++++++++ templates/add_samba_user | 16 ---------------- templates/check_samba_user | 16 ---------------- 6 files changed, 19 insertions(+), 54 deletions(-) create mode 100644 spec/defines/samba__server__user_spec.rb delete mode 100644 templates/add_samba_user delete mode 100644 templates/check_samba_user (limited to 'spec') diff --git a/manifests/server.pp b/manifests/server.pp index 550659c..8a5853c 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -58,20 +58,4 @@ class samba::server($interfaces = '', 'os level': value => $os_level; 'preferred master': value => $preferred_master; } - - file {'/sbin/check_samba_user': - # script checks to see if a samba account exists for a given user - owner => root, - group => root, - mode => '0755', - content => template("${module_name}/check_samba_user"), - } - - file {'/sbin/add_samba_user': - # script creates a new samba account for a given user and password - owner => root, - group => root, - mode => '0755', - content => template("${module_name}/add_samba_user"), - } } diff --git a/manifests/server/user.pp b/manifests/server/user.pp index b8f2e61..d10a602 100644 --- a/manifests/server/user.pp +++ b/manifests/server/user.pp @@ -4,10 +4,12 @@ define samba::server::user ( $password, $user_name = $name, ) { + require ::samba::server::install + exec { "add smb account for ${user_name}": - command => "/sbin/add_samba_user '${user_name}' '${password}'" , - unless => "/sbin/check_samba_user '${user_name}'" , + command => "/bin/echo -e '${password}\\n${password}\\n' | /usr/bin/pdbedit --password-from-stdin -a '${user_name}'", + unless => "/usr/bin/pdbedit '${user_name}'", require => [ User[$user_name] ], - notify => Class['samba::server::service'] + notify => Class['samba::server::service'] #TODO: Is this really required?? } } diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb index 69fa0ec..dbf840a 100644 --- a/spec/classes/samba__server_spec.rb +++ b/spec/classes/samba__server_spec.rb @@ -20,7 +20,4 @@ describe 'samba::server' do it { should contain_samba__server__option('printing') } it { should contain_samba__server__option('printcap name') } it { should contain_samba__server__option('disable spoolss') } - - it { should contain_file('/sbin/check_samba_user').with_owner('root') } - it { should contain_file('/sbin/add_samba_user').with_owner('root') } end diff --git a/spec/defines/samba__server__user_spec.rb b/spec/defines/samba__server__user_spec.rb new file mode 100644 index 0000000..c7ae00c --- /dev/null +++ b/spec/defines/samba__server__user_spec.rb @@ -0,0 +1,14 @@ +require 'spec_helper' + +describe 'samba::server::user', :type => :define do + let(:title) { 'test_user' } + let(:params) {{ :password => 'secret' }} + + it { is_expected.to contain_samba__server__user('test_user') } + it { is_expected.to contain_exec('add smb account for test_user').with( + :command => '/bin/echo -e \'secret\nsecret\n\' | /usr/bin/pdbedit --password-from-stdin -a \'test_user\'', + :unless => '/usr/bin/pdbedit \'test_user\'', + :require => 'User[test_user]', + :notify => 'Class[Samba::Server::Service]' + ) } +end diff --git a/templates/add_samba_user b/templates/add_samba_user deleted file mode 100644 index cc1d56b..0000000 --- a/templates/add_samba_user +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# This script adds a samba account for a given user and password -# call as: -# > add_samba_user "USERNAME" "PASSWORD" - -/bin/echo -e "$2\n$2\n" | sudo /usr/bin/pdbedit -a "$1" -t 1>/dev/null -results=$? - -if [ $results = 0 ]; then - echo "added samba account for '$1'" -else - echo "could not add samba account for '$1'" -fi - -exit $results diff --git a/templates/check_samba_user b/templates/check_samba_user deleted file mode 100644 index 431c3c4..0000000 --- a/templates/check_samba_user +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# This script checks to see if a given user account exists on samba -# if so, it returns 0 -# otherwise it returns 1 - -sudo /usr/bin/pdbedit -L | egrep -q "^$1:" -exists=$? - -if [ $exists = 0 ]; then - echo "'$1' is a samba user" -else - echo "no samba account matching '$1'" -fi - -exit $exists -- cgit v1.2.3 From 2e78387a530b2c987bf3c26712f30a641abd2081 Mon Sep 17 00:00:00 2001 From: Daniel Sung Date: Mon, 15 Feb 2016 15:50:43 +0000 Subject: Fix name of 'force directory mode' option Previously the class was setting a value for 'force directory mask' which was getting ignored by samba. Running testparm -v would give: Unknown parameter encountered: "force directory mask" Ignoring unknown parameter "force directory mask" The correct option name is 'force directory mode' according to the man page. --- manifests/server/share.pp | 8 ++++---- spec/acceptance/basic_samba_spec.rb | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'spec') diff --git a/manifests/server/share.pp b/manifests/server/share.pp index e5e23f1..7f8191c 100644 --- a/manifests/server/share.pp +++ b/manifests/server/share.pp @@ -8,7 +8,7 @@ define samba::server::share($ensure = present, $create_mask = '', $directory_mask = '', $force_create_mask = '', - $force_directory_mask = '', + $force_directory_mode = '', $force_group = '', $force_user = '', $guest_ok = '', @@ -81,9 +81,9 @@ define samba::server::share($ensure = present, '' => "rm \"${target}/force create mask\"", default => "set \"${target}/force create mask\" '${force_create_mask}'", }, - $force_directory_mask ? { - '' => "rm \"${target}/force directory mask\"", - default => "set \"${target}/force directory mask\" '${force_directory_mask}'", + $force_directory_mode ? { + '' => "rm \"${target}/force directory mode\"", + default => "set \"${target}/force directory mode\" '${force_directory_mode}'", }, $force_group ? { '' => "rm \"${target}/force group\"", diff --git a/spec/acceptance/basic_samba_spec.rb b/spec/acceptance/basic_samba_spec.rb index 0dd6ac6..76e7f9f 100644 --- a/spec/acceptance/basic_samba_spec.rb +++ b/spec/acceptance/basic_samba_spec.rb @@ -18,7 +18,7 @@ describe 'basic samba' do create_mask => 0777, force_create_mask => 0777, directory_mask => 0777, - force_directory_mask => 0777, + force_directory_mode => 0777, force_group => 'group', force_user => 'user', } -- cgit v1.2.3 From 6c90437c34e749d42b0041097bd12747d63aad4c Mon Sep 17 00:00:00 2001 From: Jirgn Mssnr Date: Mon, 22 Feb 2016 13:38:48 +0100 Subject: added test for share definition in via samba::server --- spec/classes/samba__server_spec.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'spec') diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb index dbf840a..d19fe6a 100644 --- a/spec/classes/samba__server_spec.rb +++ b/spec/classes/samba__server_spec.rb @@ -20,4 +20,24 @@ describe 'samba::server' do it { should contain_samba__server__option('printing') } it { should contain_samba__server__option('printcap name') } it { should contain_samba__server__option('disable spoolss') } + + context 'with hiera shares hash' do + let(:params) {{ + 'shares' => { + 'testShare' => { + 'path' => '/path/to/some/share', + 'browsable' => true, + 'writable' => true, + 'guest_ok' => true, + 'guest_only' => true, + }, + 'testShare2' => { + 'path' => '/some/other/path' + } + } + }} + it { should contain_samba__server__share( 'testShare' ) } + it { should contain_samba__server__share( 'testShare2' ) } + end + end -- cgit v1.2.3 From 0385193ee30c830e81be53b1d7484ae27cdd2b85 Mon Sep 17 00:00:00 2001 From: Jirgn Mssnr Date: Mon, 22 Feb 2016 13:47:19 +0100 Subject: added param users for use in hiera added tests for samba::server::users --- manifests/server.pp | 4 +++- spec/classes/samba__server_spec.rb | 27 +++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) (limited to 'spec') diff --git a/manifests/server.pp b/manifests/server.pp index 59d5d51..cbc61a9 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -20,7 +20,8 @@ class samba::server($interfaces = '', $os_level = '', $preferred_master = '', $bind_interfaces_only = 'yes', - $shares = {},) { + $shares = {}, + $users = {}, ) { include samba::server::install include samba::server::config @@ -63,4 +64,5 @@ class samba::server($interfaces = '', } create_resources(samba::server::share, $shares) + create_resources(samba::server::user, $users) } diff --git a/spec/classes/samba__server_spec.rb b/spec/classes/samba__server_spec.rb index d19fe6a..46c5b15 100644 --- a/spec/classes/samba__server_spec.rb +++ b/spec/classes/samba__server_spec.rb @@ -36,8 +36,31 @@ describe 'samba::server' do } } }} - it { should contain_samba__server__share( 'testShare' ) } - it { should contain_samba__server__share( 'testShare2' ) } + it { + should contain_samba__server__share( 'testShare' ).with({ + 'path' => '/path/to/some/share', + 'browsable' => true, + 'writable' => true, + 'guest_ok' => true, + 'guest_only' => true, + }) + } + it { should contain_samba__server__share( 'testShare2' ).with_path('/some/other/path') } + end + + context 'with hiera users hash' do + let(:params) {{ + 'users' => { + 'testUser' => { + 'password' => 'testpass01' + }, + 'testUser2' => { + 'password' => 'testpass02' + } + } + }} + it { should contain_samba__server__user( 'testUser' ).with_password('testpass01') } + it { should contain_samba__server__user( 'testUser2' ).with_password('testpass02') } end end -- cgit v1.2.3 From e8d067895daebc19a3c39bd3071922bec1a34327 Mon Sep 17 00:00:00 2001 From: Hielke Jager Date: Wed, 9 Mar 2016 19:32:46 +0100 Subject: [TASK] Change spec to check for hide_dot_files in share. --- spec/acceptance/basic_samba_spec.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'spec') diff --git a/spec/acceptance/basic_samba_spec.rb b/spec/acceptance/basic_samba_spec.rb index 76e7f9f..b4cc0e8 100644 --- a/spec/acceptance/basic_samba_spec.rb +++ b/spec/acceptance/basic_samba_spec.rb @@ -21,6 +21,7 @@ describe 'basic samba' do force_directory_mode => 0777, force_group => 'group', force_user => 'user', + hide_dot_files => false } "} -- cgit v1.2.3 From 1ce0857037cc6187e4fa66b941bde8245bbb947b Mon Sep 17 00:00:00 2001 From: Hielke Jager Date: Wed, 9 Mar 2016 19:35:59 +0100 Subject: And add the last , --- spec/acceptance/basic_samba_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec') diff --git a/spec/acceptance/basic_samba_spec.rb b/spec/acceptance/basic_samba_spec.rb index b4cc0e8..8a9e363 100644 --- a/spec/acceptance/basic_samba_spec.rb +++ b/spec/acceptance/basic_samba_spec.rb @@ -21,7 +21,7 @@ describe 'basic samba' do force_directory_mode => 0777, force_group => 'group', force_user => 'user', - hide_dot_files => false + hide_dot_files => false, } "} -- cgit v1.2.3