On Mon, Mar 29, 2010 at 2:16 PM, .Nox <dot...@gmail.com> wrote: > Changed. Same error. > > But if I add > :optional => %w{value} > into record_line this seems to fix the issue - and seems to work and I > am not really sure why because I did not find anywhere a complete > documentation on parsed file ( May be someone know where to get it - > without reading sources) >
its not really something that we have documented yet. The only way to really understand it in detail is to read parsedfile.rb, fileparsing.rb and by reading provider examples. James has a good blog entry for getting started: http://www.kartar.net/2010/02/puppet-parsedfile-types-and-providers/ > > Thank you. > -- > Maxim Ianoglo > > On Mar 29, 9:54 pm, Dan Bode <d...@reductivelabs.com> wrote: > > 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-users@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> > > > > > <puppet-users%2bunsubscr...@googlegroups.com<puppet-users%252bunsubscr...@googlegroups.com> > <puppet-users%252bunsubscr...@googlegroups.com<puppet-users%25252bunsubscr...@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> > <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.