On 10/21/2012 10:43 PM, Nan Liu wrote:

> Puppet::Type.newtype(:customtype) do
>   newproperty(:myarray, array_matching => :all) do
>   end
> end

Thank you!

Although you have syntax error, it should be:

 newproperty(:myarray, :array_matching => :all) do

Note the collon in front of array_matching.


Also, what I did notice is that this code:

  newproperty(:nameservers, :array_matching => :all) do
    desc "list of nameservers"
    defaultto []
  end

Doesn't revert to default if I remove the 'nameservers' property from my
manifest.

I had to overload insync? for it to work, and now type looks like this:

  newproperty(:nameservers, :array_matching => :all) do
    desc "list of nameservers added to profile"
    defaultto []
    def insync?(is)
      # if members of arrays are not the same, something
      # was added or removed from manifest, so return false
      return false unless is == should
      true
    end
  end


Although I don't get it because I didn't do anything special in the
overloaded insync? :) And without it won't work. It won't work even if I
set:

 nameservers => []

in my manifest.

But never mind, I got it working so I'm satisfied so far.

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