Skip to content

Commit

Permalink
Issue #383: Add ensure and enable parameter for forwarder service (#390)
Browse files Browse the repository at this point in the history
* Issue_383: Add ensure and enable parameter for forwarder service

On windows we need to set delayed for the service

* Fix rspec error Provider redhat must have features 'delayed_startable'

* fix beaker service provider

* fix review comments

removed the provider selector
update type validation service_ensure
removed service_ensure from params.pp

* regenerate REFERENCE.md

* Fix the rspec provider issue for windows

* back to original acceptance test from master
  • Loading branch information
cjswart authored Dec 16, 2024
1 parent c9567ec commit a1a82eb
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 2 deletions.
18 changes: 18 additions & 0 deletions REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -864,6 +864,8 @@ The following parameters are available in the `splunk::forwarder` class:
* [`forwarder_homedir`](#-splunk--forwarder--forwarder_homedir)
* [`forwarder_confdir`](#-splunk--forwarder--forwarder_confdir)
* [`service_name`](#-splunk--forwarder--service_name)
* [`service_ensure`](#-splunk--forwarder--service_ensure)
* [`service_enable`](#-splunk--forwarder--service_enable)
* [`service_file`](#-splunk--forwarder--service_file)
* [`boot_start`](#-splunk--forwarder--boot_start)
* [`use_default_config`](#-splunk--forwarder--use_default_config)
Expand Down Expand Up @@ -1026,6 +1028,22 @@ The name of the Splunk Forwarder service.

Default value: `$splunk::params::forwarder_service`

##### <a name="-splunk--forwarder--service_ensure"></a>`service_ensure`

Data type: `Stdlib::Ensure::Service`

Ensure passed to the splunk service resource.

Default value: `running`

##### <a name="-splunk--forwarder--service_enable"></a>`service_enable`

Data type: `String[1]`

Enable passed to the splunk service resource.

Default value: `$splunk::params::forwarder_service_enable`

##### <a name="-splunk--forwarder--service_file"></a>`service_file`

Data type: `Stdlib::Absolutepath`
Expand Down
8 changes: 8 additions & 0 deletions manifests/forwarder.pp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,12 @@
# @param service_name
# The name of the Splunk Forwarder service.
#
# @param service_ensure
# Ensure passed to the splunk service resource.
#
# @param service_enable
# Enable passed to the splunk service resource.
#
# @param service_file
# The path to the Splunk Forwarder service file.
#
Expand Down Expand Up @@ -172,6 +178,8 @@
Stdlib::Absolutepath $forwarder_homedir = $splunk::params::forwarder_homedir,
Stdlib::Absolutepath $forwarder_confdir = $splunk::params::forwarder_confdir,
String[1] $service_name = $splunk::params::forwarder_service,
Stdlib::Ensure::Service $service_ensure = running,
String[1] $service_enable = $splunk::params::forwarder_service_enable,
Stdlib::Absolutepath $service_file = $splunk::params::forwarder_service_file,
Boolean $boot_start = $splunk::params::boot_start,
Boolean $use_default_config = true,
Expand Down
5 changes: 3 additions & 2 deletions manifests/forwarder/service.pp
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
#
class splunk::forwarder::service {
service { $splunk::forwarder::service_name:
ensure => running,
enable => true,
ensure => $splunk::forwarder::service_ensure,
enable => $splunk::forwarder::service_enable,
hasstatus => true,
hasrestart => true,
provider => $facts['service_provider'],
}
}
4 changes: 4 additions & 0 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@
$enterprise_confdir = "${enterprise_homedir}/etc"
$forwarder_install_options = []
$enterprise_install_options = []
$forwarder_service_enable = 'true'
# Systemd not supported until Splunk 7.2.2
if $facts['service_provider'] == 'systemd' and versioncmp($version, '7.2.2') >= 0 {
$enterprise_service = 'Splunkd'
Expand Down Expand Up @@ -198,6 +199,7 @@
$enterprise_confdir = "${enterprise_homedir}/etc"
$forwarder_install_options = []
$enterprise_install_options = []
$forwarder_service_enable = 'true'
# Systemd not supported until Splunk 7.2.2
if $facts['service_provider'] == 'systemd' and versioncmp($version, '7.2.2') >= 0 {
$enterprise_service = 'Splunkd'
Expand Down Expand Up @@ -232,6 +234,7 @@
$enterprise_install_options = []
$enterprise_service = 'splunk'
$forwarder_service = 'splunk'
$forwarder_service_enable = 'true'
$enterprise_service_file = '/etc/rc.d/splunk'
$forwarder_service_file = '/etc/rc.d/splunk'
$boot_start_args = ''
Expand All @@ -247,6 +250,7 @@
$forwarder_secret_file = "${forwarder_homedir}\\etc\\auth\\splunk.secret"
$enterprise_secret_file = "${enterprise_homedir}\\etc\\auth\\splunk.secret"
$forwarder_service = 'SplunkForwarder'
$forwarder_service_enable = 'delayed'
$forwarder_service_file = "${forwarder_homedir}\\dummy" # Not used in Windows, but attribute must be defined with a valid path
$forwarder_confdir = "${forwarder_homedir}\\etc"
$enterprise_src_subdir = 'windows'
Expand Down
24 changes: 24 additions & 0 deletions spec/classes/forwarder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
it { is_expected.to contain_file('C:\\Program Files\\SplunkUniversalForwarder/etc/system/local/props.conf') }
it { is_expected.to contain_file('C:\\Program Files\\SplunkUniversalForwarder/etc/system/local/transforms.conf') }
it { is_expected.to contain_file('C:\\Program Files\\SplunkUniversalForwarder/etc/system/local/web.conf') }
it { is_expected.to contain_service('SplunkForwarder').with(ensure: 'running', enable: 'delayed', status: nil, restart: nil, start: nil, stop: nil) }
it { is_expected.to contain_file('C:\\Program Files\\SplunkUniversalForwarder/etc/system/local/server.conf') }
it { is_expected.not_to contain_file('C:\\Program Files\\SplunkUniversalForwarder/etc/auth/splunk.secret') }
it { is_expected.not_to contain_file('C:\\Program Files\\SplunkUniversalForwarder/etc/passwd') }
Expand Down Expand Up @@ -77,6 +78,29 @@
end
end

context 'when service_ensure = stopped' do
let(:params) { { 'service_ensure' => 'stopped' } }

case facts[:kernel]
when 'windows'
it { is_expected.to contain_service('SplunkForwarder').with(ensure: 'stopped', enable: 'delayed', status: nil, restart: nil, start: nil, stop: nil) }
when 'FreeBSD'
it { is_expected.to contain_service('splunk').with(ensure: 'stopped', enable: 'true', status: nil, restart: nil, start: nil, stop: nil) }
else
it { is_expected.to contain_service('SplunkForwarder').with(ensure: 'stopped', enable: 'true', status: nil, restart: nil, start: nil, stop: nil) }
end
end

context 'when service_enable = false' do
let(:params) { { 'service_enable' => 'false' } }

if facts[:kernel] == 'FreeBSD'
it { is_expected.to contain_service('splunk').with(ensure: 'running', enable: false, status: nil, restart: nil, start: nil, stop: nil) }
else
it { is_expected.to contain_service('SplunkForwarder').with(ensure: 'running', enable: false, status: nil, restart: nil, start: nil, stop: nil) }
end
end

context 'with $boot_start = true (defaults)' do
if facts[:kernel] == 'Linux' || facts[:kernel] == 'SunOS'

Expand Down

0 comments on commit a1a82eb

Please sign in to comment.