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/msgid/puppet-dev/94724428-5db3-4409-b710-9e2847bd1c47%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to