d2 {'test': }
-> 
d3 {'test': }

define d1 {
  exec { exec1: command => '/bin/echo exec1; exit 1' }
}

define d2 {
  d1 {$name: }
  ->
  exec { exec2: command => '/bin/echo exec2; exit 1' }
}

define d3 {
  exec { exec3: command => '/bin/echo exec3; exit 1' }
}


and this also works as expected, even if puppet --graph does not show it.

$ puppet apply --graph cc.pp 
Notice: Compiled catalog for mac4c.local in environment production in 0.08 
seconds 
Notice: /Stage[main]//D2[test]/D1[test]/Exec[exec1]/returns: exec1 
Error: /bin/echo exec1; exit 1 returned 1 instead of one of [0] 
Error: /Stage[main]//D2[test]/D1[test]/Exec[exec1]/returns: change from 
notrun to 0 failed: /bin/echo exec1; exit 1 returned 1 instead of one of 
[0] 
Notice: /Stage[main]//D2[test]/Exec[exec2]: Dependency Exec[exec1] has 
failures: true 
Warning: /Stage[main]//D2[test]/Exec[exec2]: Skipping because of failed 
dependencies 
Notice: /Stage[main]//D3[test]/Exec[exec3]: Dependency Exec[exec1] has 
failures: true 
Warning: /Stage[main]//D3[test]/Exec[exec3]: Skipping because of failed 
dependencies 
Notice: Finished catalog run in 0.14 seconds

$ open -a GraphViz /Users/david/.puppet/var/state/graphs/relationships.dot 

no relation between exec1, exec2 and/or exec3.


On Thursday, March 27, 2014 11:11:02 AM UTC+1, David Portabella wrote:
>
> I've open a bug ticket:
> puppet --graph misses some dependencies
> https://tickets.puppetlabs.com/browse/PUP-2075
>
>
> d1 {'test': }
> -> 
> d2 {'test': }
>
> define d1 {
>   exec { exec1: command => '/bin/echo exec1; exit 1' }
> }
>
> define d2 {
>   exec { exec2: command => '/bin/echo exec2; exit 1' }
> }
>
> ---
> $ puppet apply --graph test.pp 
>
> the graph does not show any dependency between exec1 and exec2.
>
> However the dependency does exists, as puppet does nor execute exec2 
> because of "failed dependencies":
>
> $ puppet apply --graph dd.pp 
> Notice: Compiled catalog for mac4c.local in environment production in 0.08 
> seconds
> Notice: /Stage[main]//D1[test]/Exec[exec1]/returns: exec1
> Error: /bin/echo exec1; exit 1 returned 1 instead of one of [0]
> Error: /Stage[main]//D1[test]/Exec[exec1]/returns: change from notrun to 0 
> failed: /bin/echo exec1; exit 1 returned 1 instead of one of [0]
> Notice: /Stage[main]//D2[test]/Exec[exec2]: Dependency Exec[exec1] has 
> failures: true
> Warning: /Stage[main]//D2[test]/Exec[exec2]: Skipping because of failed 
> dependencies
> Notice: Finished catalog run in 0.11 seconds
>
>
> So, it seems that there is a bug in puppet --graph.
>
>
>
> On Wednesday, March 19, 2014 9:51:08 PM UTC+1, jcbollinger wrote:
>>
>>
>>
>> On Wednesday, March 19, 2014 7:54:27 AM UTC-5, David Portabella wrote:
>>>
>>> I have this test.pp example on puppet 3.4.3 on OSX 10.9:
>>>
>>> c2 {'test': }
>>> -> 
>>> c3 {'test': }
>>>
>>> define c1 {
>>>   notice "+++"
>>>   file {'/tmp/c1.txt': ensure => present }
>>> }
>>>
>>> define c2 {
>>>   c1 {$name: }
>>>   notice "+++"
>>>   file {'/tmp/c2.txt': ensure => present }
>>> }
>>>
>>> define c3 {
>>>   notice "+++"
>>>   file {'/tmp/c3.txt': ensure => present }
>>> }
>>>
>>> running:
>>>
>>> $ puppet apply --graph test.pp 
>>>
>>> produces this graph 
>>> /Users/david/.puppet/var/state/graphs/relationships.dot,
>>>
>>> *which shows that /tmp/c3.txt does not require /tmp/c2.txt.*
>>>
>>> *why?*
>>>
>>
>>
>> I don't know, and your graph did not come across.  However, it may simply 
>> be a case of Puppet optimizing.  Two unrelated File resources cannot have a 
>> *bona 
>> fide* ordering relationship between them, because syncing one in no way 
>> affects syncing the other.
>>
>> Still, I find it surprising.  Is there at least a chain of relationships 
>> that will cause File['/tmp/c2.txt'] to be applied before 
>> File['/tmp/c3.txt']?  Are you sure the catalog you analyzed corresponds to 
>> the version of your manifest set that contains the chain operator you 
>> depict?
>>
>>
>> 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 puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/732981db-939c-4efd-a6dd-e04c93894aba%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to