Sorry for the double post but this is probably the best walkthrough on the subject out there presently http://garylarizza.com/blog/2013/12/15/seriously-what-is-this-provider-doing/
On Thu, Jul 13, 2017 at 9:48 AM, Trevor Vaughan <[email protected]> wrote: > HI Bert, > > Exists should be checking the @property_hash object which is populated by > the instances method. > > Something like: > > def exists? > @property_hash[:ensure] == :present > end > > Trevor > > On Mon, Jul 10, 2017 at 9:24 AM, bert hajee <[email protected]> wrote: > >> Hallo, >> >> I'm using the puppet module transition to help me out a nasty puppet >> definition situation. But I noticed it sometimes is not idempotent. We >> noticed this on a very complex custom type. To make sure the issue is a >> clear as can be, we extracted the minimal type/and provider to simulate >> this. Here >> <https://github.com/enterprisemodules/error_type/tree/transition_problems> >> you can find the type/provider code >> >> Here is some simple example code, based on a simple custom type: >> >> >> transition { 'transition': >> resource => File['/a.a'], >> attributes => { >> content => 'temp', >> }, >> prior_to => Error_type['a'] >> } >> >> file{'/a.a': >> ensure => 'present', >> content => 'aa', >> } >> >> error_type {'a': >> ensure => 'present', >> prop => 'aaa' >> } >> >> Using this example code, I noticed that the exists? is called before >> prefetching is done. Before using this module, I was under the impression >> the exists? method was only called later in the sequence. Therefore my >> exists? method was based on prefetched information. >> >> Do I: >> >> - register a bug/question in the module? >> - change the type/provider implementation to check if the specific >> resource is already prefetched (would probably need to be done for a lot >> more types/and providers) >> - register a bug/question for puppet, making sure the prefetch is >> ALWAYS called before exists? >> >> >> All suggestions are welcome! >> >> Regards, >> >> Bert >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ms >> gid/puppet-dev/94724428-5db3-4409-b710-9e2847bd1c47%40googlegroups.com >> <https://groups.google.com/d/msgid/puppet-dev/94724428-5db3-4409-b710-9e2847bd1c47%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Trevor Vaughan > Vice President, Onyx Point, Inc > (410) 541-6699 x788 <(410)%20541-6699> > > -- This account not approved for unencrypted proprietary information -- > -- Trevor Vaughan Vice President, Onyx Point, Inc (410) 541-6699 x788 -- This account not approved for unencrypted proprietary information -- -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CANs%2BFoX7H_axNHvoJT6-ckj08RtJ0ASgZROPW7KmWQpJroAR9A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
