Skip to content

type reference for create_resources in init.pp using top level namespace causing catalog to fail to compile #550

@skorten

Description

@skorten

Using Puppet v3.2.2 (Puppet Enterprise 3.0.0)...

I have run into an issue where the create_resources for $nginx_vhosts and $nginx_locations (I have not tested the others) fails with the error message:

Error 400 on SERVER: Invalid tag "::nginx::resource::vhost" at /etc/puppetlabs/puppet/environments/r10k/dev_nginx/modules/nginx/manifests/init.pp:297 on node my.node.com

This appears to be caused by the top level name space reference to the type. With the preceding '::' the catalog fails to compile with the above error. With the preceding '::' removed everything works fine. For example:

Top level reference that does not work:

create_resources('::nginx::resource::vhost', $nginx_vhosts, $nginx_vhosts_defaults)

vs. no preceding '::' that does work:

create_resources('nginx::resource::vhost', $nginx_vhosts, $nginx_vhosts_defaults)

Hiera:

nginx::nginx_vhosts:
  'myvhost01':
    ensure: present
    proxy: 'http://127.0.0.1:8080/myapp/'
    proxy_set_header: ['X-Forwarded-For $proxy_add_x_forwarded_for']
    access_log: '/data/logs/nginx/myapp.access.log'

nginx::nginx_locations:
  'system_health0':
    location: '/system_health0/'
    proxy   : 'http://127.0.0.1:8080/myapp/'
    proxy_set_header: ['X-Forwarded-For $proxy_add_x_forwarded_for']
    vhost   : 'myvhost01'

Role:

class role::nginx_tomcat inherits role::base {
  include profile::sysconfig::nginx_cfg
  include profile::sysconfig::tomcat
}

Profile:

class profile::sysconfig::nginx_cfg {
  include ::nginx
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions