Hi,

On Thu, 2011-10-13 at 17:47 -0400, Guy Matz wrote:
> Thanks for the reply!!  One more thing I can't quite figure out:  How
> to get a new entry in my target file!  I can parse, but an entry in
> manifests doesn't magically appear.  Do I need to add something to my
> provider or type to get that to happen?  Any help would be soooo
> appreciated; i'm getting tired of struggling with this!
> 
> vncserver/manifests/init.pp
> class vncserver {
>   vncserver { 'guymatz':
>       port => '92',
>       geometry => '1024x768',
>       ensure => 'present'

Those are properties: you want to manage them.

>   }
> } # class vncserver
> 
> 
> vncserver/lib/puppet/type/vncserver.rb
> require 'puppet/property/list'
> require 'puppet/provider/parsedfile'
> 
> Puppet::Type.newtype(:vncserver) do
>     
>     ensurable
> 
>     newparam(:port) do
>       desc "The vnc servers port assignment.  Will be +5900 on the
> server"
>     end
> 
>     newparam(:name) do
>       isnamevar
>       desc "The user who will own the VNC session."
>     end
> 
>     newparam(:geometry) do
>       desc "Resolution for VNC, in XxY, e.g. 1024x768."
>     end
> 
>     newparam(:password) do
>       desc "Password to be put into users .vnc/passwd."
>     end
> 
>     newparam(:args) do
>       desc "Optional arguments to be added to the vncserver
> command-line."
>     end

But you defined them as parameters.
Use newproperty instead of newparam.

>     @doc = "Installs and manages entries for vncservers.  For
> Redhat-bases
>       systems, and likely many others, these entries will be in
>       /etc/sysconfig/vncservers."
> 
> end
> 
> 
> and, finally, my very unfinished provider:
> vncserver/lib/puppet/provider/vncserver/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 => /^\s*#/;
>   text_line :blank, :match => /^\s*$/;
> 
>   record_line :parsed,
>               :joiner => '',
>               :fields => %w{port geometry optional_args},
>               :optional => %w{port geometry },
>               :match => /^VNCSERVERARGS\[(\d+)\]="-geometry (\d+x\d
> +)(.*)$/,
>               :to_line => proc { |record|
>                 "VNCSERVERARGS[#{record[:port]}]=\"-geometry
> #{record[:geometry]} #{record[:optional_args]}\""
>               }
> 
>   record_line :parsed_again,
>               :joiner => '',
>               :fields => %w{port_name},
>               :optional => %w{port_name},
>               :match => /^VNCSERVERS="(.*)"$/,
>               :to_line => proc { |record|
>                 "VNCSERVERS=\"#{record[:port_name]}\""
>               }
> end

Also, you don't have any property in the type for port_name.

-- 
Brice Figureau
Follow the latest Puppet Community evolutions on www.planetpuppet.org!

-- 
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.

Reply via email to