From b0bec99e0c8c00ef93d7d7fc6cbfec5add2a7ea3 Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Mon, 18 Apr 2016 15:32:47 +0300 Subject: [PATCH] Use native service provider on OpenBSD --- avahi/manifests/init.pp | 7 +- firewall/manifests/init.pp | 2 - ifstated/manifests/init.pp | 1 - inetd/manifests/init.pp | 5 +- ldap/manifests/init.pp | 4 - oidentd/manifests/init.pp | 4 - portmap/manifests/init.pp | 4 - puppet/lib/puppet/provider/service/openbsd.rb | 150 ------------------ sasl/manifests/init.pp | 4 +- smtpd/manifests/init.pp | 4 - spamassassin/manifests/init.pp | 21 ++- tftp/manifests/init.pp | 8 +- 12 files changed, 17 insertions(+), 197 deletions(-) delete mode 100644 puppet/lib/puppet/provider/service/openbsd.rb diff --git a/avahi/manifests/init.pp b/avahi/manifests/init.pp index 44a5d21..b82386d 100644 --- a/avahi/manifests/init.pp +++ b/avahi/manifests/init.pp @@ -12,10 +12,9 @@ class avahi::daemon { } if $::operatingsystem == "OpenBSD" { - service { "dbus-daemon": + service { "messagebus": ensure => running, enable => true, - start => "install -d -o _dbus -g _dbus /var/run/dbus && /usr/local/bin/dbus-daemon --system", before => Service["avahi-daemon"], } } @@ -24,10 +23,6 @@ class avahi::daemon { ensure => running, enable => true, status => "avahi-daemon -c", - start => $::operatingsystem ? { - "openbsd" => "avahi-daemon -D", - default => undef, - }, require => Package["avahi"], } diff --git a/firewall/manifests/init.pp b/firewall/manifests/init.pp index d2da3d0..7f32cc1 100644 --- a/firewall/manifests/init.pp +++ b/firewall/manifests/init.pp @@ -315,8 +315,6 @@ class firewall::ftpproxy { service { "ftpproxy": ensure => running, enable => true, - binary => "/usr/sbin/ftp-proxy", - start => "/usr/sbin/ftp-proxy", } } diff --git a/ifstated/manifests/init.pp b/ifstated/manifests/init.pp index 5142320..7efb299 100644 --- a/ifstated/manifests/init.pp +++ b/ifstated/manifests/init.pp @@ -17,7 +17,6 @@ class ifstated { service { "ifstated": ensure => running, enable => true, - binary => "/usr/sbin/ifstated", } } diff --git a/inetd/manifests/init.pp b/inetd/manifests/init.pp index 5705368..75bc03f 100644 --- a/inetd/manifests/init.pp +++ b/inetd/manifests/init.pp @@ -64,9 +64,8 @@ class inetd::server::inetd { } service { "inetd": - ensure => running, - start => "/usr/sbin/inetd", - enable => true, + ensure => running, + enable => true, } } diff --git a/ldap/manifests/init.pp b/ldap/manifests/init.pp index 8058104..d308ada 100644 --- a/ldap/manifests/init.pp +++ b/ldap/manifests/init.pp @@ -518,10 +518,6 @@ class ldap::server { service { "slapd": name => $service_name, - start => $::operatingsystem ? { - "openbsd" => "/usr/local/libexec/slapd -u _openldap -h ldap:///\\ ldaps:///\\ ldapi:///", - default => undef, - }, ensure => running, enable => true, require => Package["openldap-server"] diff --git a/oidentd/manifests/init.pp b/oidentd/manifests/init.pp index 8350651..8f260fd 100644 --- a/oidentd/manifests/init.pp +++ b/oidentd/manifests/init.pp @@ -42,10 +42,6 @@ class oidentd($config=undef) { service { "oidentd": ensure => running, enable => true, - start => $::operatingsystem ? { - "openbsd" => "/usr/local/sbin/oidentd -e -u _identd -g _identd", - default => undef, - }, } } diff --git a/portmap/manifests/init.pp b/portmap/manifests/init.pp index 771b251..cf8a5f4 100644 --- a/portmap/manifests/init.pp +++ b/portmap/manifests/init.pp @@ -47,10 +47,6 @@ class portmap::server { service { "portmap": ensure => running, name => $service, - start => $::operatingsystem ? { - "openbsd" => "/usr/sbin/portmap", - default => undef, - }, enable => true, } diff --git a/puppet/lib/puppet/provider/service/openbsd.rb b/puppet/lib/puppet/provider/service/openbsd.rb deleted file mode 100644 index f2fcd62..0000000 --- a/puppet/lib/puppet/provider/service/openbsd.rb +++ /dev/null @@ -1,150 +0,0 @@ -# Manage OpenBSD services. Enable/disable using /etc/rc.conf.local - -Puppet::Type.type(:service).provide :openbsd, :parent => :base do - - desc "OpenBSD service management." - - confine :operatingsystem => :openbsd - defaultfor :operatingsystem => :openbsd - - def rc_dir() '/etc/rc.d' end - def rcconf() '/etc/rc.conf' end - def rcconf_local() '/etc/rc.conf.local' end - - def rcscript - return File.join(rc_dir, @resource[:name]) - end - - def rcvar - name = @resource[:name] - File.open(rcconf).each do |line| - if line =~ /^#{name}(_flags)?=/ - line = line.sub(/#.*/, "") - return line.strip.split("=", 2) - end - end - nil - end - - def rcvar_local - name = @resource[:name] - if File.file?(rcconf_local) - File.open(rcconf_local).each do |line| - if line =~ /^#{name}(_flags)?=/ - line = line.sub(/#.*/, "") - return line.strip.split("=", 2) - end - end - end - nil - end - - def rcvar_name - [self.rcvar_local, self.rcvar].each do |rcvar| - return rcvar[0] unless rcvar.nil? - end - "%s_flags" % @resource[:name] - end - - def rcvar_value - [self.rcvar_local, self.rcvar].each do |rcvar| - return rcvar[1].gsub(/"?([^"]*)"?/, '\1') unless rcvar.nil? - end - nil - end - - def pkg_scripts - if File.file?(rcconf_local) - File.open(rcconf_local).each do |line| - if line =~ /^pkg_scripts=/ - return line.strip.gsub(/pkg_scripts="?([^"]*)"?/, '\1').split - end - end - end - Array.new - end - - def enabled? - name = @resource[:name] - rcvar = self.rcvar - rcvar_name = self.rcvar_name - rcvar_value = self.rcvar_value - pkg_scripts = self.pkg_scripts - if rcvar_name.end_with?("_flags") - return :false if rcvar.nil? and not pkg_scripts.include?(name) - return :false if rcvar_value.nil? or rcvar_value == "NO" - else - return :false if rcvar_value != "YES" - end - :true - end - - def enable - name = @resource[:name] - rcvar = self.rcvar - rcvar_name = self.rcvar_name - rcvar_value = "" - pkg_scripts = self.pkg_scripts - start = @resource[:start] - binary = @resource[:binary] - s = "" - if File.file?(rcconf_local) - File.open(rcconf_local).each do |line| - next if line =~ /^(#{rcvar_name}|pkg_scripts)=/ - s += line - end - end - unless start.nil? - if binary.nil? - rcvar_value = start[/^\S+\s*(.*)/, 1] - else - rcvar_value = start[/^#{binary}\s*(.*)/, 1] - end - end - if rcvar_name.end_with?("_flags") - s += "%s=\"%s\"\n" % [rcvar_name, rcvar_value] - else - s += "%s=YES\n" % rcvar_name - end - pkg_scripts << name if rcvar.nil? and not pkg_scripts.include?(name) - s += "pkg_scripts=\"%s\"\n" % pkg_scripts.join(" ") - File.open(rcconf_local, "w") { |f| f << s } - end - - def disable - name = @resource[:name] - rcvar = self.rcvar - rcvar_name = self.rcvar_name - pkg_scripts = self.pkg_scripts - s = "" - if File.file?(rcconf_local) - File.open(rcconf_local).each do |line| - next if line =~ /^(#{rcvar_name}|pkg_scripts)=/ - s += line - end - end - s += "%s=NO\n" % rcvar_name unless rcvar.nil? - pkg_scripts.delete(name) - s += "pkg_scripts=\"%s\"\n" % pkg_scripts.join(" ") - File.open(rcconf_local, "w") { |f| f << s } - end - - def startcmd - if File.exists?(self.rcscript) - [self.rcscript, :start] - end - end - - def stopcmd - if File.exists?(self.rcscript) - [self.rcscript, :stop] - end - end - - def statuscmd - if File.exists?(self.rcscript) - [self.rcscript, :check] - end - end - -end diff --git a/sasl/manifests/init.pp b/sasl/manifests/init.pp index d7c2804..259a2fb 100644 --- a/sasl/manifests/init.pp +++ b/sasl/manifests/init.pp @@ -63,7 +63,7 @@ class sasl::saslauthd { } "openbsd": { Service["saslauthd"] { - start => "/usr/local/sbin/saslauthd -a ldap", + flags => "-a ldap", } } "ubuntu": { @@ -108,7 +108,7 @@ class sasl::saslauthd { } "openbsd": { Service["saslauthd"] { - start => "/usr/local/sbin/saslauthd -a kerberos5", + flags => "-a kerberos5", } } "ubuntu": { diff --git a/smtpd/manifests/init.pp b/smtpd/manifests/init.pp index d8fefbf..9a8c11d 100644 --- a/smtpd/manifests/init.pp +++ b/smtpd/manifests/init.pp @@ -159,10 +159,6 @@ class smtpd( service { $service: ensure => running, enable => true, - start => $::operatingsystem ? { - 'openbsd' => '/usr/sbin/smtpd', - default => undef, - }, } if $listen == true or $config { diff --git a/spamassassin/manifests/init.pp b/spamassassin/manifests/init.pp index c14e5bf..63a38ed 100644 --- a/spamassassin/manifests/init.pp +++ b/spamassassin/manifests/init.pp @@ -29,18 +29,15 @@ class spamassassin::common { } service { "spamassassin": - ensure => running, - enable => true, - binary => $::operatingsystem ? { - "openbsd" => "/usr/local/bin/spamd -d", - default => undef, - }, - start => $::operatingsystem ? { - "openbsd" => "/usr/local/bin/spamd -d -c -H -m 5", - default => undef, - }, - hasstatus => true, - require => Package["spamassassin"], + ensure => running, + enable => true, + require => Package["spamassassin"], + } + + if $::operatingsystem == "OpenBSD" { + Service["spamassassin"] { + flags => "-c -H -P", + } } } diff --git a/tftp/manifests/init.pp b/tftp/manifests/init.pp index b3cc313..b99e6e4 100644 --- a/tftp/manifests/init.pp +++ b/tftp/manifests/init.pp @@ -124,11 +124,9 @@ class tftp::server { } } else { service { "tftpd": - ensure => running, - hasstatus => true, - enable => true, - start => "/usr/sbin/tftpd /tftpboot", - require => File["/tftpboot"], + ensure => running, + enable => true, + require => File["/tftpboot"], } } }