Hrm, well, with your help, I got this to work in the order I was expecting. 
  I think I had a few problems here.

1.  My original ordering was:
 File['Config'] -> Exec['stop'] -> Package['foo'] -> Exec['start'] 

I changed this to:
 File['Config'] ~> Exec['stop'] -> Package['foo'] ~> Exec['start'] 

It helps when I RTFM on using ~> for notifications instead of -> for pure 
ordering.

2.  When I wasn't using that ordering syntax, I had:

  exec { "stop":
    path        => 
"/usr/local/sbin/:/usr/local/jdk/bin:/bin:/sbin:/usr/sbin:/usr/bin",
    command     => '/usr/local/sbin/control.sh stop',
    refreshonly => true,
    logoutput   => true,
    subscribe   => File['Config'],
    require     => File['/usr/local/sbin/control.sh'"]
  }

This is because there are cases when the foo::config is created, but foo is 
not (meaning the control files are not created).   I figured this would 
create the proper order, but it doesn't seem to have.   

3.  Using different types of configuration patterns.  I kept flipping 
between using subscribe/notify and ->/~> ordering syntax and most likely 
screwed something up in the interim.   I eventually made a mistake and got 
some dependency cycle issues which actually helped quite a bit in figuring 
out my error in logic.

BTW, "refreshonly => true" is still set on both execs and is working 
properly.   

Thank you for the help!!!
Jake

On Monday, September 22, 2014 7:44:34 AM UTC-7, jcbollinger wrote:
>
>
>
> On Friday, September 19, 2014 12:59:34 PM UTC-5, Jake Lundberg wrote:
>>
>> Puppet 3.6.2
>>
>> First, I understand that Execs try not to run multiple times if called 
>> many times by many resources and typically wait until they've all been 
>> "collected" from all resources
>>
>
>
> Not exactly.  Execs run at most twice per Puppet run.  They run at most 
> once if they are refreshonly or if they do not receive any events from 
> other resources.  (If they are refreshonly then they run *only* if they 
> receive an event from another resource.)  When they run relative to when 
> other resources are applied (and whether resources send them events) is 
> shaped by resource relationships, just as with all other resource types.
>
> ObYoda: "Do... or do not.  There is no 'try'."
>
>  
>
>> , but I have a specific case where I need different Execs to run in a 
>> particular order based on a set of resources that change.   
>>
>>
>
> That's what resource relationships are for.  Cristian has showed you how.  
> If that doesn't seem to be working for you then it would help us help you 
> if you present a complete -- but simple -- example that demonstrates your 
> problem.
>
>
> John
>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/7a4f2132-2f53-47bf-afb1-80e5d25988d5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to