I opened http://projects.reductivelabs.com/issues/2998 for this issue

On Wed, Dec 30, 2009 at 10:59 PM, Dan Bode <d...@reductivelabs.com> wrote:

>
>
> On Wed, Dec 30, 2009 at 10:45 PM, Sukh Khehra <skhe...@proofpoint.com>wrote:
>
>>  Thanks Dan. Unfortunately, this did not work for me.
>>
>>
>>
>> err: Could not apply complete catalog: Could not retrieve dependency
>> 'Class[::http]' of Class[puppet::http]
>>
>>
>>
>> Does anyone know of another way to fully qualify the class name when
>> requiring it? I was hoping to not have to change the names of these
>> pre-existing classes.
>>
> I am in the process of filing a bug on this.
>
> The best way to get around this without changing the class names is to
> include, and then set the class require inside your resources.
>
> class test2::test{
>   include ::test
>   file{'/tmp/test2test3':
>     content => 'blah',
>     require => Class['::test'],
>   }
> }
>
> hope this helps,
>
> Dan
>
>
>>
>>
>>
>>  ------------------------------
>>
>> *From:* puppet-users@googlegroups.com [mailto:
>> puppet-us...@googlegroups.com] *On Behalf Of *Dan Bode
>> *Sent:* Wednesday, December 30, 2009 1:31 PM
>> *To:* puppet-users@googlegroups.com
>> *Subject:* Re: [Puppet Users] yet another class dependency question.
>>
>>
>>
>> Hi,
>>
>> On Wed, Dec 30, 2009 at 9:52 PM, Sukh Khehra <skhe...@proofpoint.com>
>> wrote:
>>
>> Hi,
>>
>> I am running puppet version 0.25.1 on both the server and client and am
>> getting the following error on a puppet run:
>>
>> err: Could not apply complete catalog: Could not retrieve dependency
>> 'Class[http]' of Class[puppet::http]
>>
>> Class http is defined in the "http" module like so:
>>
>>
>> class http {
>>    package { httpd: ensure => installed }
>>    file {
>>        "httpd.conf":
>>            ensure      => present,
>> ...
>>
>>
>> Class puppet::http is defined in the puppet module like so:
>>
>> class puppet::http {
>>        require http
>>    file {
>>        "http-puppet.conf":
>>            ensure      => present,
>>            path        => "/etc/httpd/conf.d/puppet.conf",
>> ...
>>
>>
>> I have a feeling that it maybe a scoping issue with a namespace collision
>> between puppet::http and http. you are calling require http from the
>> namespace of puppet::http, which is checking puppet before it checks root
>> (::)so it actually thinks that you are requiring puppet::http and not http.
>> I have seen this issue before with includes. To resolve it with include, you
>> can add the prefix ::http (which means from the root namespace)
>>
>> Feel free to try this
>>   # this works for includes
>>   require ::http
>>
>> but it unfortunately didnt work for me, so this might actually be a bug.
>>
>> the easiest fix is not to use puppet::http for the name of the class, try
>> puppet::apache or something.
>>
>>
>>
>> In this test setup both my client and server are the same node in the
>> same production environment and here's what my module organization looks
>> like.
>>
>> # egrep -i '^\[|module|environment' /etc/puppet/puppet.conf
>> [main]
>> environments = production,staging,development,testing
>> environment = production
>> [puppetd]
>> environment = production
>> [puppetmasterd]
>> # environments
>> [production]
>> modulepath = $confdir/modules/production
>> [staging]
>> modulepath = $confdir/modules/staging:$confdir/modules/production
>> [development]
>> modulepath = $confdir/modules/development
>> [testing]
>> modulepath = $confdir/modules/testing:$confdir/modules/production
>>
>>
>> # ls -1d /etc/puppet/modules/production/puppet
>> /etc/puppet/modules/production/http
>> /etc/puppet/modules/production/http
>> /etc/puppet/modules/production/puppet
>>
>>
>> Why wouldn't it be able to retrieve dependency class http?
>>
>> --
>>
>> You received this message because you are subscribed to the Google Groups
>> "Puppet Users" group.
>> To post to this group, send email to puppet-us...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/puppet-users?hl=en.
>>
>>
>>
>> --
>>
>> You received this message because you are subscribed to the Google Groups
>> "Puppet Users" group.
>> To post to this group, send email to puppet-us...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/puppet-users?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Puppet Users" group.
>> To post to this group, send email to puppet-us...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/puppet-users?hl=en.
>>
>
>

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.


Reply via email to