Sha256: c937e1d2418f6924f0d54a6d5a6a7e7965f4a82d56571ee097b8cde85e90d2cd

Contents?: true

Size: 1.61 KB

Versions: 3

Compression:

Stored size: 1.61 KB

Contents

# Solaris 10 SMF-style services.  This is not yet implemented, which is probably
# somewhat obvious.
Puppet.type(:service).newsvctype(:smf) do
    def restartcmd
        "svcadm restart %s" % self.name
    end

    def startcmd
        "svcadm enable %s" % self.name
    end

    def status
        if self[:status]
            super
            return
        end
        %x{/usr/bin/svcs -l #{self.name} 2>/dev/null}.split("\n").each { |line|
            var = nil
            value = nil
            if line =~ /^(\w+)\s+(.+)/
                var = $1
                value = $2
            else
                Puppet.err "Could not match %s" % line.inspect
            end
            case var
            when "state":
                case value
                when "online":
                    #self.warning "matched running %s" % line.inspect
                    return :running
                when "offline", "disabled":
                    #self.warning "matched stopped %s" % line.inspect
                    return :stopped
                when "legacy_run":
                    raise Puppet::Error,
                        "Cannot manage legacy services through SMF"
                else
                    raise Puppet::Error,
                        "Unmanageable state %s on service %s" %
                        [value, self.name]
                end
            end
        }

        if $? != 0
            raise Puppet::Error,
                "Could not get status on service %s" % self.name
        end
    end

    def stopcmd
        "svcadm disable %s" % self.name
    end
end

# $Id: smf.rb 809 2006-01-12 07:08:19Z luke $

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
puppet-0.13.1 lib/puppet/type/service/smf.rb
puppet-0.13.2 lib/puppet/type/service/smf.rb
puppet-0.13.0 lib/puppet/type/service/smf.rb