On Wed, Dec 30, 2009 at 10:45 PM, Sukh Khehra <[email protected]>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:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Dan Bode
> *Sent:* Wednesday, December 30, 2009 1:31 PM
> *To:* [email protected]
> *Subject:* Re: [Puppet Users] yet another class dependency question.
>
>
>
> Hi,
>
> On Wed, Dec 30, 2009 at 9:52 PM, Sukh Khehra <[email protected]>
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-users%[email protected]>
> .
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-users%[email protected]>
> .
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-users%[email protected]>
> .
> 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 [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-users?hl=en.