With respect to this recent error, I'm guessing that the path to the pid file doesn't exist. With the issue you've been having on the type/provider itself, I believe that I found that the parsedfile provider generally has name hard coded as the namevar. This may be a bit far fetched, but see if changing the name of the namevar to 'name' and see if it fixes things. It's a hack really, but perhaps it'll get you what you want.
On Sat, Sep 17, 2011 at 8:44 AM, Guy Matz <gm...@matz.org> wrote: > ok, i found out what pastebin is. All on my own!! :-) But puppet agent > --trace doesn't give me very much output. Only: > [root@gmatzpupnode ~]# puppet agent --trace > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/daemon.rb:47:in `create_pidfile' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/util.rb:38:in `synchronize_on' > /opt/puppet/lib/ruby/1.8/sync.rb:230:in `synchronize' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/util.rb:38:in `synchronize_on' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/daemon.rb:46:in `create_pidfile' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/daemon.rb:22:in `daemonize' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:255:in > `setup' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application.rb:286:in `run' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application.rb:393:in > `exit_on_fail' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/application.rb:286:in `run' > /opt/puppet/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:55:in > `execute' > /usr/local/bin/puppet:4 > Could not prepare for execution: Could not create PID file: > /var/run/pe-puppet/agent.pid > > > it looks like it's failing, actually . . . > > thanks, > guy > > > On Thu, Sep 15, 2011 at 6:50 PM, Adrien Thebo <adr...@puppetlabs.com>wrote: > >> Could you provide the output of puppet agent --trace in a pastebin to >> accompany this? >> >> On Thu, Sep 15, 2011 at 1:22 PM, Guy Matz <gm...@matz.org> wrote: >> >>> hi! Does anyone have any advice on debugging a new custom type? >>> >>> Any thoughts would be greatly appreciated . . . >>> >>> BTW, I'm getting the error: >>> err: Could not retrieve catalog from remote server: Error 400 on SERVER: >>> Could not render to pson: undefined method `merge' for []:Array >>> >>> with some very rough code. >>> >>> The Type (vncserver.rb): >>> module Puppet >>> newtype(:vncserver) do >>> >>> ensurable >>> >>> newproperty(:port) do >>> desc "The vnc servers port assignment. Will be +5900 on the >>> server" >>> validate do |value| >>> unless value.is_i? >>> raise Puppet::Error, "Invalid Port number" >>> end >>> end >>> end >>> >>> newproperty(:username) do >>> desc "The user who will own the VNC session." >>> isnamevar >>> validate do |value| >>> unless value !~ /\s/ >>> raise Puppet::Error, "Must be a valid username. No spaces, >>> please." >>> end >>> end >>> end >>> >>> newproperty(:geometry) do >>> desc "Resolution for VNC, in XxY, e.g. 1024x768." >>> validate do |value| >>> unless value !~ /^\d*x\d*$/ >>> raise Puppet::Error, "Must be a valid geometry. e.g., >>> 1024x768." >>> end >>> end >>> end >>> >>> newparam(:password) do >>> desc "Password to be put into users .vnc/passwd." >>> validate do |value| >>> unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/ >>> raise Puppet::Error, "Invalid host name" >>> end >>> end >>> end >>> >>> newparam(:args) do >>> desc "Optional arguments to be added to the vncserver >>> command-line." >>> end >>> end >>> >>> @doc = "Installs and manages entries for vncservers. For >>> Redhat-bases >>> systems, and likely many others, these entries will be in >>> /etc/sysconfig/vncservers." >>> >>> end >>> >>> >>> The Provider (parsed.rb): >>> require 'puppet/provider/parsedfile' >>> >>> vncservers = "/etc/sysconfig/vncservers" >>> >>> Puppet::Type.type(:vncserver).provide(:parsed, >>> :parent => >>> Puppet::Provider::ParsedFile, >>> :default_target => vncservers, >>> :filetype => :flat >>> ) do >>> >>> desc "The vncserver provider that uses the ParsedFile class" >>> >>> confine :exists => vncservers >>> text_line :comment, :match => /^#/; >>> text_line :blank, :match => /\s*$/; >>> >>> text_line :blank, :match => /\s*$/; >>> >>> record_line :parsed, :fields => %w{vncservers}, :match => >>> /^VNCSERVERS="(.*)"/ >>> >>> end >>> >>> >>> And The Manifest: >>> class vncserver { >>> >>> include common::vnc >>> >>> >>> package { >>> 'tigervnc-server': >>> ensure => 'installed'; >>> } >>> >>> vncserver { >>> 'gmatz': >>> port => '92', >>> geometry => '1024x768', >>> password => 'gmatz'; >>> } >>> } >>> >>> -- >>> 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. >>> For more options, visit this group at >>> http://groups.google.com/group/puppet-users?hl=en. >>> >> >> >> >> -- >> Adrien Thebo >> adr...@puppetlabs.com >> >> -- >> 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. >> 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-users@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. > -- Adrien Thebo adr...@puppetlabs.com -- 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. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.