All pastes #734271 Raw Edit

Untitled

public text v1 · immutable
·published 2007-10-12 15:36 UTC
rendered paste body
sysctl.rb

module Puppet
        newtype(:sysctl) do

                @doc = "Manages kernel parameters in /etc/sysctl.conf"

                ensurable

                newparam(:name, :namevar => true) do
                        desc "Name of the parameter"
                        isnamevar
                end

                newproperty(:val) do
                        desc "Value the parameter should be set to"
                end

                newproperty(:target) do
                        desc "Name of the file to store parameters in"
                        defaultto { if @resource.class.defaultprovider.ancestors.include?(Puppet::Provider::ParsedFile)
                                            @resource.class.defaultprovider.default_target
                                    else
                                            nil
                                    end
                        }
                end
        end
end


parsed.rb

require 'puppet/provider/parsedfile'

conffile = "/tmp/sysctl.conf"

Puppet::Type.type(:sysctl).provide(:parsed,
                                   :parent => Puppet::Provider::ParsedFile,
                                   :default_target => conffile,
                                   :filetype => :flat,
                                   :rts => true
                                   ) do
        text_line :comment, :match => /^#/;
        text_line :blank, :match => /^\s*$/;
        text_line :separator, :match => /\s*=\s*/;

        record_line :parsed, :fields => %w{name val}

        def self.to_line(record)
                return super unless record[:record_type] == :parsed
                puts "calling to_line"
                str = "%s = %s" % [record[:name], record[:val]]
                str
        end
end