diff --git a/manifests/params.pp b/manifests/params.pp index 633ec31..55dfd82 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -4,45 +4,27 @@ # class confluence::params { - case $facts['os']['family'] { - /RedHat/: { - if $facts['os']['release']['major'] == '7' { - $service_file_location = '/usr/lib/systemd/system/confluence.service' - $service_file_template = 'confluence/confluence.service.erb' - $service_lockfile = '/var/lock/subsys/confluence' - $refresh_systemd = true - } elsif $facts['os']['release']['major'] == '6' { - $service_file_location = '/etc/init.d/confluence' - $service_file_template = 'confluence/confluence.initscript.erb' - $service_lockfile = '/var/lock/subsys/confluence' - $refresh_systemd = false - } else { - fail("Only osfamily ${facts['os']['family']} 6 and 7 and supported") - } - } - /Debian/: { - case $facts['os']['name'] { - /Ubuntu/: { - if $facts['service_provider'] == 'systemd' { - $service_file_location = '/etc/systemd/system/confluence.service' - $service_file_template = 'confluence/confluence.service.erb' - $service_lockfile = '/var/lock/subsys/confluence' - $refresh_systemd = true - } else { - $service_file_location = '/etc/init.d/confluence' - $service_file_template = 'confluence/confluence.initscript.erb' - $service_lockfile = '/var/lock/confluence' - $refresh_systemd = false - } + case $facts['service_provider'] { + 'systemd': { + case $facts['os']['family'] { + /RedHat/: { + $service_file_location = '/usr/lib/systemd/system/confluence.service' + $service_file_template = 'confluence/confluence.service.erb' + $refresh_systemd = true } - default: { - $service_file_location = '/etc/init.d/confluence' - $service_file_template = 'confluence/confluence.initscript.erb' - $service_lockfile = '/var/lock/confluence' - $refresh_systemd = false + /Debian/: { + $service_file_location = '/etc/systemd/system/confluence.service' + $service_file_template = 'confluence/confluence.service.erb' + $refresh_systemd = true } + default: { fail('Only osfamily Debian and Redhat are supported for systemd') } } } - default: { fail('Only osfamily Debian and Redhat are supported') } + default: { + $service_file_location = '/etc/init.d/confluence' + $service_file_template = 'confluence/confluence.initscript.erb' + $refresh_systemd = false + } } + } diff --git a/manifests/service.pp b/manifests/service.pp index 4aaf98a..6ee4e2a 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -5,7 +5,6 @@ class confluence::service ( $service_file_location = $confluence::params::service_file_location, $service_file_template = $confluence::params::service_file_template, - $service_lockfile = $confluence::params::service_lockfile, $refresh_systemd = $confluence::params::refresh_systemd, ) { diff --git a/metadata.json b/metadata.json index fa8e17a..be0be16 100644 --- a/metadata.json +++ b/metadata.json @@ -54,6 +54,12 @@ "16.04", "18.04" ] + }, + { + "operatingsystem": "Debian", + "operatingsystemrelease": [ + "9" + ] } ] } diff --git a/spec/classes/confluence_params_spec.rb b/spec/classes/confluence_params_spec.rb new file mode 100644 index 0000000..9135b33 --- /dev/null +++ b/spec/classes/confluence_params_spec.rb @@ -0,0 +1,40 @@ +require 'spec_helper.rb' + +describe 'confluence' do + describe 'confluence::params' do + on_supported_os.each do |os, fs_facts| + context "on #{os}" do + let :facts do + fs_facts + end + + let(:params) do + { + javahome: '/opt/java', + version: '5.5.6' + } + end + + context 'service_provider is systemd' do + let :facts do + fs_facts.merge(service_provider: 'systemd') + end + + case os + when %r{^centos}, %r{^redhat} + it { is_expected.to contain_file('/usr/lib/systemd/system/confluence.service') } + when %r{^ubuntu}, %r{^debian} + it { is_expected.to contain_file('/etc/systemd/system/confluence.service') } + end + + it { is_expected.to compile.with_all_deps } + end + + context 'service_provider is not systemd' do + it { is_expected.to contain_file('/etc/init.d/confluence') } + it { is_expected.to compile.with_all_deps } + end + end + end + end +end