Use native service provider on OpenBSD

This commit is contained in:
Ossi Salmi 2016-04-18 15:32:47 +03:00
parent a0c2c84e0d
commit b0bec99e0c
12 changed files with 17 additions and 197 deletions

View file

@ -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"],
}

View file

@ -315,8 +315,6 @@ class firewall::ftpproxy {
service { "ftpproxy":
ensure => running,
enable => true,
binary => "/usr/sbin/ftp-proxy",
start => "/usr/sbin/ftp-proxy",
}
}

View file

@ -17,7 +17,6 @@ class ifstated {
service { "ifstated":
ensure => running,
enable => true,
binary => "/usr/sbin/ifstated",
}
}

View file

@ -64,9 +64,8 @@ class inetd::server::inetd {
}
service { "inetd":
ensure => running,
start => "/usr/sbin/inetd",
enable => true,
ensure => running,
enable => true,
}
}

View file

@ -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"]

View file

@ -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,
},
}
}

View file

@ -47,10 +47,6 @@ class portmap::server {
service { "portmap":
ensure => running,
name => $service,
start => $::operatingsystem ? {
"openbsd" => "/usr/sbin/portmap",
default => undef,
},
enable => true,
}

View file

@ -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

View file

@ -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": {

View file

@ -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 {

View file

@ -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",
}
}
}

View file

@ -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"],
}
}
}