I just saw the mistake.

The fields for parsedfile need to be properties, not parameters.

change

       newparam(:value) do
           desc "The value to set"
       end

to

       newproperty(:value) do
           desc "The value to set"
       end

and it should work.

On Mon, Mar 29, 2010 at 11:36 AM, .Nox <dot...@gmail.com> wrote:

> Hello,
>
> [r...@vps1 ~]$ puppetd --server test --waitforcert 60 --test --trace
> info: Retrieving plugin
> warning: newstate() has been deprecrated; use newproperty(value)
> info: Caching catalog for vps1.srv171.rackco.com
> info: Applying configuration version '1269887449'
> notice: //r::ssh/Ssh::Set_value[PermitRootLogin]/
> Sshd_param[PermitRootLogin]/ensure: created
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:95:in `join'
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:89:in `collect'
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:89:in `join'
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:341:in
> `to_line'
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:314:in
> `to_file'
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:314:in
> `collect'
> /usr/lib/ruby/site_ruby/1.8/puppet/util/fileparsing.rb:314:in
> `to_file'
> /usr/lib/ruby/site_ruby/1.8/puppet/provider/parsedfile.rb:316:in
> `to_file'
> /usr/lib/ruby/site_ruby/1.8/puppet/provider/parsedfile.rb:102:in
> `flush_target'
> /usr/lib/ruby/site_ruby/1.8/puppet/provider/parsedfile.rb:74:in
> `flush'
> /usr/lib/ruby/site_ruby/1.8/puppet/provider/parsedfile.rb:72:in `each'
> /usr/lib/ruby/site_ruby/1.8/puppet/provider/parsedfile.rb:72:in
> `flush'
> /usr/lib/ruby/site_ruby/1.8/puppet/provider/parsedfile.rb:356:in
> `flush'
> /usr/lib/ruby/site_ruby/1.8/puppet/type.rb:752:in `flush'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:94:in `apply'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:251:in
> `eval_children_and_apply_resource'
> /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:418:in `thinmark'
> /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
> /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
> /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:417:in `thinmark'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:250:in
> `eval_children_and_apply_resource'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:207:in
> `eval_resource'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:296:in `evaluate'
> /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:418:in `thinmark'
> /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
> /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
> /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:417:in `thinmark'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:295:in `evaluate'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:289:in `collect'
> /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:289:in `evaluate'
> /usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:142:in `apply'
> /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:169:in `run'
> /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:178:in `benchmark'
> /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
> /usr/lib/ruby/1.8/benchmark.rb:307:in `realtime'
> /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:177:in `benchmark'
> /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:168:in `run'
> /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
> /usr/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:21:in `lock'
> /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
> /usr/lib/ruby/1.8/sync.rb:229:in `synchronize'
> /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:53:in `run'
> /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:134:in `with_client'
> /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:51:in `run'
> /usr/lib/ruby/site_ruby/1.8/puppet/application/puppetd.rb:103:in
> `onetime'
> /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `send'
> /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:226:in `run_command'
> /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run'
> /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in
> `exit_on_fail'
> /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:217:in `run'
> /usr/sbin/puppetd:159
> err: Got an uncaught exception of type ArgumentError: Field 'value' is
> required
> warning: Value of 'preferred_serialization_format' (pson) is invalid
> for report, using default (marshal)
> notice: Finished catalog run in 3.01 seconds
>
> Thank you.
> --
> Maxim Ianoglo
>
> On Mar 29, 8:04 pm, Dan Bode <d...@reductivelabs.com> wrote:
> > On Sun, Mar 28, 2010 at 2:09 AM, .Nox <dot...@gmail.com> wrote:
> > > Hello,
> >
> > > I wrote a custom type for managing sshd configuration file
> >
> > > Type:
> > > ========================================================
> > > module Puppet
> > >    newtype(:sshd_param) do
> > >        @doc = "Manages parameters of sshd"
> >
> > >        ensurable
> >
> > >        newparam(:name) do
> > >            desc "The name of the parameter."
> > >            isnamevar
> > >        end
> >
> > >        newproperty(:target) do
> > >            desc "Location of sshd configuration file"
> >
> > >            defaultto {
> > >                if
> > >                    @resource.class.defaultprovider.ancestors.include?
> > > Puppet::Provider::ParsedFile
> > >                    @resource.class.defaultprovider.default_target
> > >                else
> > >                    nil
> > >                end
> > >            }
> > >        end
> >
> > >        newparam(:value) do
> > >            desc "The value to set"
> > >        end
> > >    end
> > > end
> >
> > > Provider:
> > > ========================================================
> > > require 'puppet/provider/parsedfile'
> >
> > > conf = "/etc/ssh/sshd_config"
> >
> > > Puppet::Type.type(:sshd_param).provide(
> > >    :parsed,
> > >    :parent => Puppet::Provider::ParsedFile,
> > >    :default_target => conf,
> > >    :filetype => :flat
> > > ) do
> >
> > >    confine :exists => conf
> >
> > >    text_line :comment,
> > >              :match => /^#/
> > >    text_line :blank,
> > >              :match => /^\s*$/
> > >    record_line :parsed,
> > >                :fields => %w{name value},
> > >                :separator => /\s*\ \s*|#.*|\s*$/,
> > >                :joiner => ' '
> > > end
> >
> > > Define:
> > > ========================================================
> > > define ssh::set_value($value,
> > >                      $target = "/etc/ssh/sshd_config")
> > > {
> > >    include ssh::server
> >
> > >    sshd_param
> > >    {
> > >        $name:
> > >            value => $value,
> > >            target => $target,
> > >            notify => Service[sshd_server],
> > >            require => Package[sshd_package]
> > >    }
> > > }
> >
> > > Package sshd_package and Service sshd_server are defined in
> > > ssh::server
> >
> > > In manifest file I have:
> > > ssh::set_value
> > > {
> > >   "PermitRootLogin":
> > >      value => "yes",
> > >      target => "/etc/ssh/sshd_config"
> > > }
> >
> > > And at every run I get:
> > > err: Got an uncaught exception of type ArgumentError: Field 'value' is
> > > required
> >
> > can you reproduce with with --trace.
> >
> > > Does anyone know how to fix this issue ?
> >
> > > OS: RHEL 5.4
> > > PUPPET_VER: 0.25.4
> > > PUPPET_MASTER_VER: 0.25.4
> >
> > > Thank you.
> > > --
> > > Maxim Ianoglo
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Puppet Users" group.
> > > To post to this group, send email to puppet-us...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
> <puppet-users%2bunsubscr...@googlegroups.com<puppet-users%252bunsubscr...@googlegroups.com>
> >
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/puppet-users?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to