Issue #1754 has been updated by luke.

Use 'include ::php' if you want this to work.  Puppet's just ignoring your 
attempt to have a class include itself.  You might need to quote the class name 
in the 'include', I can't remember.

If you think this should throw a warning or something, please open a new ticket 
with a more clear description.
----------------------------------------
Bug #1754: puppet magically doesn't evaluate certain (special named) included 
classes
http://projects.reductivelabs.com/issues/show/1754

Author: immerda
Status: Accepted
Priority: Normal
Assigned to: 
Category: language
Target version: 
Complexity: Unknown
Affected version: 0.24.5
Keywords: 


given the following manifest:

<pre>
class php {
    fail("php")
}

class apache::foobar::php {
    notice("yeah2")
    include php
}

class apache::foobar::webhosting_php {
    include apache::foobar::php
}

class somehost {
    include apache::foobar::webhosting_php
}

include somehost
notice("yeah")
</pre>

and running it with puppet will not give the expected result:
<pre>
# puppet foobar.pp
notice: Scope(Class[apache::foobar::php]): yeah2
notice: Scope(Class[main]): yeah
</pre>

imho puppet should fail as the php class has clearly a fail statement.

I discovered this while debugging a certain host because it didn't install php 
on it. the includes are similar to this lab setup, however spreaded over 
modules and different files. But I get the same result putting notices in the 
different parts as in the lab setup. 

Currently I have no idea how to debug this further nor where exactly the 
problem may lie. As the classes are named somehow similar to address the needed 
functionality I had the idea that this might "confuse" puppet. So I tested the 
following manifest:

<pre>
class test {
    fail("php")
}

class foobar {
    notice("yeah2")
    include test
}

class blah {
    include foobar
}

class somehost {
    include blah
}

include somehost
notice("yeah")
</pre>

which fails as expected:

<pre>
# puppet foobar.pp
notice: Scope(Class[foobar]): yeah2
php at /tmp/foobar.pp:2 on node foobar
</pre>

So I definately think that this is a problem of the evaluation as putting a 
syntax error in the php class will fail puppet to parse the manifest.

either debug nor trace statements give more information.

Behaviour have been reproduced on:

- 0.24.5
- 0.24.6
- HEAD


----------------------------------------
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to