diff --git a/manifests/module/director/service.pp b/manifests/module/director/service.pp index d3f3aa0..2d7deec 100644 --- a/manifests/module/director/service.pp +++ b/manifests/module/director/service.pp @@ -1,51 +1,51 @@ # @summary # Installs and configures the director service. # # @note Only systemd is supported by the Icinga Team and this module. # # @param [Stdlib::Ensure::Service] ensure # Whether the director service should be running. # # @param [Boolean] enable # Enable or disable the service. # # @param [String] user # Specifies user to run director service daemon. # # @param [String] group # Specifies primary group for user to run director service daemon. # # @param [Boolean] manage_user # Whether to manage the server user resource. # class icingaweb2::module::director::service( Stdlib::Ensure::Service $ensure = 'running', Boolean $enable = true, String $user = 'icingadirector', String $group = 'icingaweb2', Boolean $manage_user = true, ) { require ::icingaweb2::module::director $icingacli_bin = $::icingaweb2::globals::icingacli_bin if $manage_user { user { $user: ensure => present, gid => $group, shell => '/bin/false', before => Systemd::Unit_file['icinga-director.service'], } } systemd::unit_file { 'icinga-director.service': - source => template('icingaweb2/icinga-director.service.erb'), - notify => Service['icinga-director'], + content => template('icingaweb2/icinga-director.service.erb'), + notify => Service['icinga-director'], } service {'icinga-director': ensure => $ensure, enable => $enable, } } diff --git a/spec/classes/director_service_spec.rb b/spec/classes/director_service_spec.rb new file mode 100644 index 0000000..c69791c --- /dev/null +++ b/spec/classes/director_service_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper' + +describe('icingaweb2::module::director::service', type: :class) do + let(:pre_condition) do + [ + "class { 'icingaweb2': }", + "class { 'icingaweb2::module::director': }", + ] + end + + on_supported_os.each do |os, facts| + context "on #{os}" do + let :facts do + facts + end + + context "#{os} with defaults" do + it do + is_expected.to contain_user('icingadirector') + .with( + 'ensure' => 'present', + 'gid' => 'icingaweb2', + 'shell' => '/bin/false', + ).that_comes_before('Systemd::Unit_file[icinga-director.service]') + end + it do + is_expected.to contain_systemd__unit_file('icinga-director.service').with( + content: %r{[Unit]}, + ).that_notifies('Service[icinga-director]') + end + it do + is_expected.to contain_service('icinga-director') + .with( + 'ensure' => 'running', + 'enable' => true, + ) + end + end + end + end +end