Sha256: bcaefa6580a8d0ff16f455b088589e0cf6548ab75a765d5adf64f9715ec93960

Contents?: true

Size: 1.52 KB

Versions: 39

Compression:

Stored size: 1.52 KB

Contents

# Manage systemd services using /bin/systemctl

Puppet::Type.type(:service).provide :systemd, :parent => :base do
  desc "Manages `systemd` services using `/bin/systemctl`."

  commands :systemctl => "/bin/systemctl"

  #defaultfor :operatingsystem => [:redhat, :fedora, :suse, :centos, :sles, :oel, :ovm]

  def self.instances
    i = []
    output = `systemctl list-units --full --all --no-pager`
    output.scan(/^(\S+)\s+(loaded|error)\s+(active|inactive)\s+(active|waiting|running|plugged|mounted|dead|exited|listening|elapsed)\s*?(\S.*?)?$/i).each do |m|
      i << m[0]
    end
    return i
  rescue Puppet::ExecutionFailure
    return []
  end

  def disable
    output = systemctl(:disable, @resource[:name])
  rescue Puppet::ExecutionFailure
    raise Puppet::Error, "Could not disable #{self.name}: #{output}"
  end

  def enabled?
    begin
      systemctl("is-enabled", @resource[:name])
    rescue Puppet::ExecutionFailure
      return :false
    end

    :true
  end

  def status
    begin
      output = systemctl("is-active", @resource[:name])
    rescue Puppet::ExecutionFailure
      return :stopped
    end
    return :running
  end

  def enable
    output = systemctl("enable", @resource[:name])
  rescue Puppet::ExecutionFailure
    raise Puppet::Error, "Could not enable #{self.name}: #{output}"
  end

  def restartcmd
    [command(:systemctl), "restart", @resource[:name]]
  end

  def startcmd
    [command(:systemctl), "start", @resource[:name]]
  end

  def stopcmd
    [command(:systemctl), "stop", @resource[:name]]
  end
end

Version data entries

39 entries across 39 versions & 4 rubygems

Version Path
puppet-parse-0.1.4 lib/vendor/puppet/provider/service/systemd.rb
puppet-parse-0.1.3 lib/vendor/puppet/provider/service/systemd.rb
puppet-parse-0.1.2 lib/vendor/puppet/provider/service/systemd.rb
puppet-parse-0.1.1 lib/vendor/puppet/provider/service/systemd.rb
puppet-2.7.26 lib/puppet/provider/service/systemd.rb
puppet-2.7.25 lib/puppet/provider/service/systemd.rb
puppet-2.7.24 lib/puppet/provider/service/systemd.rb
puppet-2.7.23 lib/puppet/provider/service/systemd.rb
puppet-2.7.22 lib/puppet/provider/service/systemd.rb
puppet-parse-0.1.0 lib/vendor/puppet/provider/service/systemd.rb
puppet-parse-0.0.6 lib/vendor/puppet/provider/service/systemd.rb
puppet-2.7.21 lib/puppet/provider/service/systemd.rb
puppet-parse-0.0.5 lib/vendor/puppet/provider/service/systemd.rb
puppet-parse-0.0.4 lib/vendor/puppet/provider/service/systemd.rb
puppet-parse-0.0.2 lib/vendor/puppet/provider/service/systemd.rb
puppet-2.7.20 lib/puppet/provider/service/systemd.rb
puppet-2.7.20.rc1 lib/puppet/provider/service/systemd.rb
librarian-puppet-0.9.4 vendor/gems/ruby/1.8/gems/puppet-2.7.18/lib/puppet/provider/service/systemd.rb
puppet-2.7.19 lib/puppet/provider/service/systemd.rb
supply_drop-0.11.0 examples/vendored-puppet/vendor/puppet-2.7.8/lib/puppet/provider/service/systemd.rb