Skip to content

Commit

Permalink
Merge pull request ghoneycutt#97 from ghoneycutt/devlog
Browse files Browse the repository at this point in the history
Devlog
  • Loading branch information
ghoneycutt committed Feb 4, 2016
2 parents 1271769 + dc7098c commit 3bfee5b
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 1 deletion.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,12 @@ Boolean for using the imjournal module. If set to 'USE_DEFAULTS', this will be c

- *Default*: 'USE_DEFAULTS'

manage_devlog
-------------
Boolean for managing /dev/log. If set to 'USE_DEFAULTS', this will be chosen based on the platform.

- *Default*: 'USE_DEFAULTS'

===

# rsyslog::fragment define #
Expand Down
24 changes: 24 additions & 0 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
$work_directory = '/var/lib/rsyslog',
$journalstate_file = 'imjournal.state',
$mod_imjournal = 'USE_DEFAULTS',
$manage_devlog = 'USE_DEFAULTS',
) {

# validation
Expand Down Expand Up @@ -185,18 +186,21 @@
$sysconfig_erb = 'sysconfig.rhel5.erb'
$default_syslogd_options = '-m 0'
$default_mod_imjournal = false
$default_manage_devlog = false
}
/^6\.*/: {
$default_pid_file = '/var/run/syslogd.pid'
$sysconfig_erb = 'sysconfig.rhel6.erb'
$default_syslogd_options = undef
$default_mod_imjournal = false
$default_manage_devlog = false
}
/^7\.*/: {
$default_pid_file = '/var/run/syslogd.pid'
$sysconfig_erb = 'sysconfig.rhel7.erb'
$default_syslogd_options = '-c 4'
$default_mod_imjournal = true
$default_manage_devlog = true
}
default: {
fail("rsyslog supports RedHat like systems with major release of 5, 6 and 7 and you have ${::operatingsystemrelease}")
Expand All @@ -213,6 +217,7 @@
$sysconfig_erb = 'sysconfig.debian.erb'
$default_syslogd_options = '-c5'
$default_mod_imjournal = false
$default_manage_devlog = false
}
'Suse' : {
$default_logrotate_present = true
Expand All @@ -221,6 +226,7 @@
$default_syslogd_options = undef
$default_pid_file = '/var/run/rsyslogd.pid'
$default_mod_imjournal = false
$default_manage_devlog = false
case $::operatingsystemrelease {
/^10\.*/ : {
$sysconfig_erb = 'sysconfig.suse10.erb'
Expand All @@ -239,6 +245,7 @@
'Solaris': {
$default_logrotate_present = false
$default_mod_imjournal = false
$default_manage_devlog = false
case $::kernelrelease {
'5.10', '5.11' : {
$default_service_name = 'network/cswrsyslog'
Expand Down Expand Up @@ -284,6 +291,23 @@
}
}

if is_bool($manage_devlog) == true {
$manage_devlog_real = $manage_devlog
} else {
$manage_devlog_real = $manage_devlog ? {
'USE_DEFAULTS' => $default_manage_devlog,
default => str2bool($manage_devlog)
}
}

if $manage_devlog_real == true {
exec { 'manage devlog':
command => 'systemctl restart systemd-journald.socket',
creates => '/dev/log',
path => '/bin:/usr/bin:/sbin:/usr/sbin',
}
}

$default_log_entries = [
'# Log all kernel messages to the console.',
'# Logging much else clutters up the screen.',
Expand Down
69 changes: 68 additions & 1 deletion spec/classes/init_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,32 @@
it { should contain_file('rsyslog_config').without_content(/^\$UDPServerRun 514$/) }
end

[true,'true'].each do |value|
context "with manage_devlog set to #{value}" do
let :params do
{ :manage_devlog => value }
end

it {
should contain_exec('manage devlog').with({
'command' => 'systemctl restart systemd-journald.socket',
'creates' => '/dev/log',
'path' => '/bin:/usr/bin:/sbin:/usr/sbin',
})
}
end
end

[false,'false'].each do |value|
context "with manage_devlog set to #{value}" do
let :params do
{ :manage_devlog => value }
end

it { should_not contain_exec('manage devlog') }
end
end

[true,'true'].each do |value|
context "with is_log_server set to #{value}" do
let :params do
Expand Down Expand Up @@ -1381,7 +1407,7 @@
end
end

describe 'module platform support' do
describe 'module platform support for mod_imjournal' do
platforms = {
'redhat5' => { :kernel => 'Linux', :osfamily => 'RedHat', :release => '5', :mod_imjournal => false, },
'redhat6' => { :kernel => 'Linux', :osfamily => 'RedHat', :release => '6', :mod_imjournal => false, },
Expand Down Expand Up @@ -1422,6 +1448,47 @@
end
end

describe 'module platform support for manage_devlog' do
platforms = {
'redhat5' => { :kernel => 'Linux', :osfamily => 'RedHat', :release => '5', :manage_devlog => false, },
'redhat6' => { :kernel => 'Linux', :osfamily => 'RedHat', :release => '6', :manage_devlog => false, },
'redhat7' => { :kernel => 'Linux', :osfamily => 'RedHat', :release => '7', :manage_devlog => true, },
'debian7' => { :kernel => 'Linux', :osfamily => 'Debian', :release => '7', :manage_devlog => false, },
'suse10' => { :kernel => 'Linux', :osfamily => 'Suse', :release => '10', :manage_devlog => false, },
'suse11' => { :kernel => 'Linux', :osfamily => 'Suse', :release => '11', :manage_devlog => false, },
'suse12' => { :kernel => 'Linux', :osfamily => 'Suse', :release => '12', :manage_devlog => false, },
'solaris10' => { :kernel => 'Solaris', :osfamily => 'Solaris', :release => '5.10', :manage_devlog => false, },
'solaris11' => { :kernel => 'Solaris', :osfamily => 'Solaris', :release => '5.11', :manage_devlog => false, },
}

platforms.sort.each do |k,v|
context "on osfamily #{v[:osfamily]} with major release #{v[:release]} support for manage_devlog is #{v[:manage_devlog]}" do
let :facts do
{
:kernel => v[:kernel],
:osfamily => v[:osfamily],
:operatingsystemrelease => v[:release],
:kernelrelease => v[:release],
:domain => 'defaultdomain',
:rsyslog_version => '5.8.10',
}
end

if v[:manage_devlog] == true
it {
should contain_exec('manage devlog').with({
'command' => 'systemctl restart systemd-journald.socket',
'creates' => '/dev/log',
'path' => '/bin:/usr/bin:/sbin:/usr/sbin',
})
}
else
it { should_not contain_exec('manage devlog') }
end
end
end
end

describe 'variable type and content validations' do
# set needed custom facts and variables
let :facts do
Expand Down

0 comments on commit 3bfee5b

Please sign in to comment.