Skip to content

Commit

Permalink
Rewrite service_config in Puppet.
Browse files Browse the repository at this point in the history
  • Loading branch information
jairojunior committed Apr 17, 2017
1 parent 29dfe86 commit c1cb5ce
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 72 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- Fix wildfly_resource's with array of hashes values.
- Allow custom templates or file for module.xml.
- Support for jgroups stacks.
- Rewrite functions in Puppet language.

## 2.0.1

Expand Down
68 changes: 68 additions & 0 deletions functions/service_config.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
function wildfly::service_config(
Enum['wildfly', 'jboss-eap'] $distribution,
String $version,
Enum['standalone', 'domain'] $mode,
Enum['sysvinit', 'systemd', 'upstart'] $init_system) {

case $distribution {

# intentionally not using $facts (see rspec-puppet #503)

'wildfly' : {
$conf_file = $::osfamily ? {
'Debian' => '/etc/default/wildfly',
default => '/etc/default/wildfly.conf'
}

$service_file = "wildfly-init-${downcase($::osfamily)}.sh"

case [versioncmp($version, '10'), $init_system] {
[-1, default] : {
{
'service_name' => 'wildfly',
'conf_file' => $conf_file,
'conf_template' => 'wildfly/wildfly.sysvinit.conf',
'service_file' => "bin/init.d/${service_file}",
}
}
[default, 'systemd'] : {
{
'service_name' => 'wildfly',
'conf_file' => '/etc/wildfly/wildfly.conf',
'conf_template' => 'wildfly/wildfly.systemd.conf',
'service_file' => "docs/contrib/scripts/init.d/${service_file}",
'systemd_template' => 'wildfly/wildfly.systemd.service',
}
}
[default, default] : {
{
'service_name' => 'wildfly',
'conf_file' => $conf_file,
'conf_template' => 'wildfly/wildfly.sysvinit.conf',
'service_file' => "docs/contrib/scripts/init.d/${service_file}",
}
}
}
}
'jboss-eap' : {
case versioncmp($version, '7') {
-1 : {
{
'service_name' => 'jboss-as',
'conf_file' => '/etc/jboss-as/jboss-as.conf',
'conf_template' => 'wildfly/wildfly.sysvinit.conf',
'service_file' => "bin/init.d/jboss-as-${mode}.sh",
}
}
default : {
{
'service_name' => 'jboss-eap',
'conf_file' => '/etc/default/jboss-eap.conf',
'conf_template' => 'wildfly/wildfly.sysvinit.conf',
'service_file' => 'bin/init.d/jboss-eap-rhel.sh',
}
}
}
}
}
}
58 changes: 0 additions & 58 deletions lib/puppet/parser/functions/service_config.rb

This file was deleted.

6 changes: 2 additions & 4 deletions manifests/service.pp
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
# Manages Wildfly service.
class wildfly::service {

$config = service_config($wildfly::distribution, $wildfly::version, $wildfly::mode, $wildfly::init_system)
$config = wildfly::service_config($wildfly::distribution, $wildfly::version, $wildfly::mode, $wildfly::init_system)

debug("${wildfly::distribution}.${wildfly::version}.${wildfly::mode}.${wildfly::init_system}: ${config}")

$conf_file = pick($wildfly::conf_file, $config['conf_file'])
$conf_template = pick($wildfly::conf_template, $config['conf_template'])
$service_name = pick($wildfly::service_name, $config['service_name'])
$service_file = pick($wildfly::service_file, $config['service_file'])

$systemd_template = $config['systemd_template']
$systemd_native = $config['systemd_native']
$systemd_template = pick($wildfly::systemd_template, $config['systemd_template'], 'wildfly/wildfly.sysvinit.service')

if !$wildfly::package_name {
contain "wildfly::service::${wildfly::init_system}"
Expand Down
4 changes: 2 additions & 2 deletions manifests/service/systemd.pp
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Wildfly systemd configuration
#
class wildfly::service::systemd {
$systemd_template = pick($wildfly::systemd_template, $wildfly::service::systemd_template)

if $wildfly::service::systemd_native {
if $wildfly::service::systemd_template == 'wildfly/wildfly.systemd.service' {
# Use native script
file { "${wildfly::dirname}/bin/launch.sh" :
ensure => present,
mode => '0755',
Expand Down
20 changes: 12 additions & 8 deletions spec/functions/service_config_spec.rb
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
describe 'service_config' do
describe 'wildfly::service_config' do
context 'Wildfly 10' do
let(:distribution) { 'wildfly' }
let(:version) { '10.0' }

before(:each) { scope.expects(:lookupvar).at_most_once.with('osfamily').returns('RedHat') }
let(:facts) do
{ :osfamily => 'RedHat' }
end

it 'using sysvinit' do
is_expected.to run.with_params(distribution, version, 'standalone', 'sysvinit').and_return('service_name' => 'wildfly', 'conf_file' => '/etc/default/wildfly.conf', 'service_file' => 'docs/contrib/scripts/init.d/wildfly-init-redhat.sh', 'conf_template' => 'wildfly/wildfly.sysvinit.conf')
is_expected.to run.with_params(distribution, version, 'standalone', 'sysvinit').and_return('service_name' => 'wildfly', 'conf_file' => '/etc/default/wildfly.conf', 'conf_template' => 'wildfly/wildfly.sysvinit.conf', 'service_file' => 'docs/contrib/scripts/init.d/wildfly-init-redhat.sh')
end

it 'using systemd' do
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('systemd_native' => true, 'systemd_template' => 'wildfly/wildfly.systemd.service', 'conf_file' => '/etc/wildfly/wildfly.conf', 'conf_template' => 'wildfly/wildfly.systemd.conf', 'service_file' => '/wildfly-init-redhat.sh', 'service_name' => 'wildfly')
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_name' => 'wildfly', 'conf_file' => '/etc/wildfly/wildfly.conf', 'conf_template' => 'wildfly/wildfly.systemd.conf', 'service_file' => 'docs/contrib/scripts/init.d/wildfly-init-redhat.sh', 'systemd_template' => 'wildfly/wildfly.systemd.service')
end
end

context 'Wildfly < 10' do
let(:distribution) { 'wildfly' }
let(:version) { '9.0.2' }

before(:each) { scope.expects(:lookupvar).with('osfamily').returns('RedHat') }
let(:facts) do
{ :osfamily => 'RedHat' }
end

it 'using sysvinit' do
is_expected.to run.with_params(distribution, version, 'standalone', 'sysvinit').and_return('service_name' => 'wildfly', 'conf_file' => '/etc/default/wildfly.conf', 'service_file' => 'bin/init.d/wildfly-init-redhat.sh', 'conf_template' => 'wildfly/wildfly.sysvinit.conf')
end

it 'using systemd' do
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_name' => 'wildfly', 'conf_file' => '/etc/default/wildfly.conf', 'service_file' => 'bin/init.d/wildfly-init-redhat.sh', 'conf_template' => 'wildfly/wildfly.sysvinit.conf', 'systemd_template' => 'wildfly/wildfly.sysvinit.service')
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_name' => 'wildfly', 'conf_file' => '/etc/default/wildfly.conf', 'service_file' => 'bin/init.d/wildfly-init-redhat.sh', 'conf_template' => 'wildfly/wildfly.sysvinit.conf')
end
end

Expand All @@ -38,7 +42,7 @@
end

it 'using systemd' do
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_file' => 'bin/init.d/jboss-eap-rhel.sh', 'conf_file' => '/etc/default/jboss-eap.conf', 'service_name' => 'jboss-eap', 'conf_template' => 'wildfly/wildfly.sysvinit.conf', 'systemd_template' => 'wildfly/wildfly.sysvinit.service')
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_file' => 'bin/init.d/jboss-eap-rhel.sh', 'conf_file' => '/etc/default/jboss-eap.conf', 'service_name' => 'jboss-eap', 'conf_template' => 'wildfly/wildfly.sysvinit.conf')
end
end

Expand All @@ -51,7 +55,7 @@
end

it 'using systemd' do
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_file' => 'bin/init.d/jboss-as-standalone.sh', 'conf_file' => '/etc/jboss-as/jboss-as.conf', 'service_name' => 'jboss-as', 'conf_template' => 'wildfly/wildfly.sysvinit.conf', 'systemd_template' => 'wildfly/wildfly.sysvinit.service')
is_expected.to run.with_params(distribution, version, 'standalone', 'systemd').and_return('service_file' => 'bin/init.d/jboss-as-standalone.sh', 'conf_file' => '/etc/jboss-as/jboss-as.conf', 'service_name' => 'jboss-as', 'conf_template' => 'wildfly/wildfly.sysvinit.conf')
end
end
end

0 comments on commit c1cb5ce

Please sign in to comment.