diff --git a/manifests/init.pp b/manifests/init.pp index e4eb3b8c..1ef28821 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -38,6 +38,7 @@ String $format = 'tar.gz', Stdlib::Absolutepath $installdir = '/opt/jira', Stdlib::Absolutepath $homedir = '/home/jira', + Boolean $manage_user = true, String $user = 'jira', String $group = 'jira', $uid = undef, diff --git a/manifests/install.pp b/manifests/install.pp index 1ab23b52..64588f88 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -17,21 +17,23 @@ include '::archive' - group { $jira::group: - ensure => present, - gid => $jira::gid, - } - -> user { $jira::user: - comment => 'Jira daemon account', - shell => $jira::shell, - home => $jira::homedir, - password => '*', - password_min_age => '0', - password_max_age => '99999', - managehome => true, - uid => $jira::uid, - gid => $jira::gid, + if $jira::manage_user { + group { $jira::group: + ensure => present, + gid => $jira::gid, + } + -> user { $jira::user: + comment => 'Jira daemon account', + shell => $jira::shell, + home => $jira::homedir, + password => '*', + password_min_age => '0', + password_max_age => '99999', + managehome => true, + uid => $jira::uid, + gid => $jira::gid, + } } if ! defined(File[$jira::installdir]) { diff --git a/spec/classes/jira_install_spec.rb b/spec/classes/jira_install_spec.rb index 6eaeea20..7f9edef2 100644 --- a/spec/classes/jira_install_spec.rb +++ b/spec/classes/jira_install_spec.rb @@ -12,14 +12,14 @@ context 'default params' do let(:params) do { - javahome: '/opt/java', - user: 'jira', - group: 'jira', - installdir: '/opt/jira', - homedir: '/home/jira', - format: 'tar.gz', - product: 'jira', - version: '6.3.4a', + javahome: '/opt/java', + user: 'jira', + group: 'jira', + installdir: '/opt/jira', + homedir: '/home/jira', + format: 'tar.gz', + product: 'jira', + version: '6.3.4a', download_url: 'https://downloads.atlassian.com/software/jira/downloads' } end @@ -29,7 +29,7 @@ it { is_expected.to contain_user('jira').with_shell('/bin/true') } it 'deploys jira 6.3.4a from tar.gz' do is_expected.to contain_archive('/tmp/atlassian-jira-6.3.4a.tar.gz'). - with('extract_path' => '/opt/jira/atlassian-jira-6.3.4a-standalone', + with('extract_path' => '/opt/jira/atlassian-jira-6.3.4a-standalone', 'source' => 'https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-6.3.4a.tar.gz', 'creates' => '/opt/jira/atlassian-jira-6.3.4a-standalone/conf', 'user' => 'jira', @@ -39,8 +39,8 @@ it 'manages the jira home directory' do is_expected.to contain_file('/home/jira').with('ensure' => 'directory', - 'owner' => 'jira', - 'group' => 'jira') + 'owner' => 'jira', + 'group' => 'jira') end end @@ -48,17 +48,17 @@ context 'default product' do let(:params) do { - javahome: '/opt/java', - installdir: '/opt/jira', - product: 'jira', - version: '7.0.4', + javahome: '/opt/java', + installdir: '/opt/jira', + product: 'jira', + version: '7.0.4', download_url: 'http://www.atlassian.com/software/jira/downloads/binary' } end it 'deploys jira 7.0.4 from tar.gz' do is_expected.to contain_archive('/tmp/atlassian-jira-software-7.0.4-jira-7.0.4.tar.gz'). - with('extract_path' => '/opt/jira/atlassian-jira-software-7.0.4-standalone', + with('extract_path' => '/opt/jira/atlassian-jira-software-7.0.4-standalone', 'source' => 'http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.4-jira-7.0.4.tar.gz', 'creates' => '/opt/jira/atlassian-jira-software-7.0.4-standalone/conf', 'user' => 'jira', @@ -69,17 +69,17 @@ context 'core product' do let(:params) do { - javahome: '/opt/java', - installdir: '/opt/jira', - product: 'jira-core', - version: '7.0.4', + javahome: '/opt/java', + installdir: '/opt/jira', + product: 'jira-core', + version: '7.0.4', download_url: 'http://www.atlassian.com/software/jira/downloads/binary' } end it 'deploys jira 7.0.4 from tar.gz' do is_expected.to contain_archive('/tmp/atlassian-jira-core-7.0.4.tar.gz'). - with('extract_path' => '/opt/jira/atlassian-jira-core-7.0.4-standalone', + with('extract_path' => '/opt/jira/atlassian-jira-core-7.0.4-standalone', 'source' => 'http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-core-7.0.4.tar.gz', 'creates' => '/opt/jira/atlassian-jira-core-7.0.4-standalone/conf', 'user' => 'jira', @@ -89,25 +89,46 @@ end end + context 'manage_users => false' do + let(:params) do + { + javahome: '/opt/java', + installdir: '/opt/jira', + manage_user: false + } + end + let(:pre_condition) do + <<-PRE +user {'jira': + comment => 'My Personal Managed Account', +} +group {'jira':} + PRE + end + + it { is_expected.to compile } + it { is_expected.to contain_user('jira').with_comment('My Personal Managed Account') } + end + context 'overwriting params' do let(:params) do { - javahome: '/opt/java', - version: '6.1', - format: 'tar.gz', - installdir: '/opt/jira', - homedir: '/random/homedir', - user: 'foo', - group: 'bar', - uid: 333, - gid: 444, - shell: '/bin/bash', + javahome: '/opt/java', + version: '6.1', + format: 'tar.gz', + installdir: '/opt/jira', + homedir: '/random/homedir', + user: 'foo', + group: 'bar', + uid: 333, + gid: 444, + shell: '/bin/bash', download_url: 'https://www.atlassian.com/software/jira/downloads/binary' } end it do - is_expected.to contain_user('foo').with('home' => '/random/homedir', + is_expected.to contain_user('foo').with('home' => '/random/homedir', 'shell' => '/bin/bash', 'uid' => 333, 'gid' => 444) @@ -116,7 +137,7 @@ it 'deploys jira 6.1 from tar.gz' do is_expected.to contain_archive('/tmp/atlassian-jira-6.1.tar.gz'). - with('extract_path' => '/opt/jira/atlassian-jira-6.1-standalone', + with('extract_path' => '/opt/jira/atlassian-jira-6.1-standalone', 'source' => 'https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.tar.gz', 'creates' => '/opt/jira/atlassian-jira-6.1-standalone/conf', 'user' => 'foo', @@ -126,8 +147,8 @@ it 'manages the jira home directory' do is_expected.to contain_file('/random/homedir').with('ensure' => 'directory', - 'owner' => 'foo', - 'group' => 'bar') + 'owner' => 'foo', + 'group' => 'bar') end end end