Hello all,

My thanks in advance to anybody with thoughts on this.  I have a module in 
which I would like two resources to be applied/refreshed based on the 
change of their parent resource.  

The code looks something like this:

exec {'assume_default_domain':
      command     => "${pbis_bin_path}/config AssumeDefaultDomain true",
      subscribe   => Exec['create_home_dir'],
      refreshonly => true,
    }
    
    exec {'user_domain_prefix':
      command     => "${pbis_bin_path}/config UserDomainPrefix \"\" ",
      subscribe   => Exec['assume_default_domain'],
    }

When running a 'puppet agent -tvd' I get the following:

Notice: /Stage[main]/Pbis::Config/Exec[assume_default_domain]: Triggered 
'refresh' from 1 events
Info: /Stage[main]/Pbis::Config/Exec[assume_default_domain]: Scheduling 
refresh of Exec[user_domain_prefix]
Debug: /Stage[main]/Pbis::Config/Exec[assume_default_domain]: The container 
Class[Pbis::Config] will propagate my refresh event
Debug: Exec[user_domain_prefix](provider=posix): Executing 
'/opt/pbis/bin/config UserDomainPrefix "" '
Debug: Executing '/opt/pbis/bin/config UserDomainPrefix "" '
Notice: /Stage[main]/Pbis::Config/Exec[user_domain_prefix]/returns: 
executed successfully
Debug: /Stage[main]/Pbis::Config/Exec[user_domain_prefix]: The container 
Class[Pbis::Config] will propagate my refresh event
Debug: Exec[user_domain_prefix](provider=posix): Executing 
'/opt/pbis/bin/config UserDomainPrefix "" '
Debug: Executing '/opt/pbis/bin/config UserDomainPrefix "" '
Notice: /Stage[main]/Pbis::Config/Exec[user_domain_prefix]: Triggered 
'refresh' from 1 events
Debug: /Stage[main]/Pbis::Config/Exec[user_domain_prefix]: The container 
Class[Pbis::Config] will propagate my refresh event
Debug: Class[Pbis::Config]: The container Stage[main] will propagate my 
refresh event
Debug: Class[Pbis::Config]: The container Class[Pbis] will propagate my 
refresh event
Debug: Class[Pbis]: The container Stage[main] will propagate my refresh 
event
Debug: Finishing transaction 25871380
Debug: Storing state
Debug: Stored state in 0.06 seconds

As you can see, the 'user_domain_prefix' resource is firing twice and I'm 
not sure why.  If I change the resource and add a 'refreshonly', I get the 
desired result (resource only being applied once):

exec {'user_domain_prefix':
      command     => "${pbis_bin_path}/config UserDomainPrefix \"\" ",
      subscribe   => Exec['assume_default_domain'],
      refreshonly => true,

Notice: /Stage[main]/Pbis::Config/Exec[assume_default_domain]: Triggered 
'refresh' from 1 events
Info: /Stage[main]/Pbis::Config/Exec[assume_default_domain]: Scheduling 
refresh of Exec[user_domain_prefix]
Debug: /Stage[main]/Pbis::Config/Exec[assume_default_domain]: The container 
Class[Pbis::Config] will propagate my refresh event
Debug: Exec[user_domain_prefix](provider=posix): Executing 
'/opt/pbis/bin/config UserDomainPrefix "" '
Debug: Executing '/opt/pbis/bin/config UserDomainPrefix "" '
Notice: /Stage[main]/Pbis::Config/Exec[user_domain_prefix]: Triggered 
'refresh' from 1 events
Debug: /Stage[main]/Pbis::Config/Exec[user_domain_prefix]: The container 
Class[Pbis::Config] will propagate my refresh event
Debug: Class[Pbis::Config]: The container Stage[main] will propagate my 
refresh event
Debug: Class[Pbis::Config]: The container Class[Pbis] will propagate my 
refresh event
Debug: Class[Pbis]: The container Stage[main] will propagate my refresh 
event
Debug: Finishing transaction 29272600
Debug: Storing state
Debug: Stored state in 0.06 seconds

My understanding is that 'subscribe' will both create a dependency and will 
require the refreshing of the dependent object, based on the subscribed 
objects' state.  I also understand 'refreshonly' to be a mechanism used 
when a dependent object is changed (sounds almost the same as subscribe 
except it doesn't create a dependency).  Based on my example above, I would 
expect 'subscribe' alone to satisfy my needs and I don't understand why I 
get duplicate refresh events when something is simply 'subscribed' but only 
one refresh event when a resource is set to both 'subscribe' and 
'refreshonly'.

Would anybody have a quick explanation for this one?

Thanks again for your help in advance.

Cheers,

Mike

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/adad7980-adc0-48eb-8ffa-d3b151f4a911%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to