Hi Tim,

please check your class and file names.

The following is working:

modules/http/manifests/init.pp
class  'http' {
        include http::config_file
}

modules/http/manifests/config_file.pp
class http::config_file {
        file { '/tmp/http':
                content => 'http',
        }
}

modules/http/tests/init.pp
include http

puppet apply -v modules/http/tests/init.pp
will create /tmp/http file resource.

http://docs.puppetlabs.com/puppet/2.7/reference/lang_reserved.html

- Martin


On 28.09.2012, at 12:53, Tim Mooney wrote:

> 
> All-
> 
> I'm using puppet 2.7.14.  I've reviewed
> 
>  http://docs.puppetlabs.com/puppet/2.7/reference/modules_fundamentals.html
> 
> but it doesn't seem to cover what I'm attempting.
> 
> Consider a module layout like this:
> 
> $ tree mymodule
> mymodule
> |-- Modulefile
> |-- README
> |-- manifests
> |   |-- init.pp
> |   |-- special_type
> |   |   `-- prereqs.pp
> |   `-- special_type.pp
> |-- spec
> |   `-- spec_helper.rb
> `-- tests
>    `-- init.pp
> 
> 4 directories, 7 files
> 
> 
> $ egrep -v '^#|^$' mymodule/manifests/init.pp class mymodule($type = 
> hiera('mymodule_type', 'client')) {
>  case $type {
>    'client'             : {  }
>    'custom'             : {  }
>    'special_type'       : { include mymodule::special_type }
>    default              : { fail("Unknown mymodule_type=${mymodule_type}\n") }
>  }
> }
> 
> 
> The problem is the "include mymodule::special_type".  I've tried both
> having
> 
> mymodule/manifests/special_type/init.pp
> 
> as well as just
> 
> mymodule/manifests/special_type.pp
> 
> In both cases, doing this in a node definition:
> 
>  class { 'mymodule':
>    type => 'special_type',
>  }
> 
> results in
> 
> err: Could not retrieve catalog from remote server: Error 400 on SERVER: 
> Could not find class mymodule::special_type for host.ndsu.edu at 
> /etc/puppet/modules/mymodule/manifests/init.pp:41 on node host.ndsu.edu
> 
> Is it even possible to do what I'm attempting?  I know that
> 
>  http://docs.puppetlabs.com/puppet/2.7/reference/modules_fundamentals.html
> 
> discusses nested "implementation" modules, but there's only examples of
> loading specific implementations, e.g.
> 
>       include my_module::implementation::foo
> 
> rather than
> 
>       include my_module::implementation
> 
> 
> I know from plenty of first-hand experience that another reason why I
> might see a "could not find class <whatever>" is if I have a typo in the
> class name within the .pp file, but I've reviewed the classes involved
> here and don't see any problems.
> 
> Any thoughts on whether it's possible to load the "top level" of a nested
> class?
> 
> Tim
> -- 
> Tim Mooney                                             tim.moo...@ndsu.edu
> Enterprise Computing & Infrastructure                  701-231-1076 (Voice)
> Room 242-J6, IACC Building                             701-231-8541 (Fax)
> North Dakota State University, Fargo, ND 58105-5164
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To post to this group, send email to puppet-users@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.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@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