Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-1515

When compiling a catalog, providers should be loaded from specified environment



    • Bug
    • Status: Closed
    • Critical
    • Resolution: Done
    • PUP 3.6.2
    • PUP 3.7.5, PUP 4.0.0
    • Docs


      When compiling a catalog, types and providers are validated, but while Puppet will load types from the agent's environment, it only loads providers from the compiling master's default environment (production).

      This is a problem because the method that creates the provider parameter is sometimes called due to code in the provider, not the type. If a custom resource type only exists in a non-default environment, and you declare a resource that specifies a value for the provider attribute, this can cause an invalid parameter provider error.

      The expected behavior is that Puppet will autoload types and providers from the agent's environment.

      original description:
      In Puppet 3 I am getting an error on all definitions for custom types. It says "Error 400 on SERVER: Invalid parameter provider...". Provider should be a given parameter for custom types because otherwise there is no way to specify which provider should be used with it. This is potentially a very major bug. Please let me know how I can help so you're able to reproduce and fix the issue.

      Final resolution: When validating resources during catalog compilation, Puppet will load types and providers from the environment that the catalog is being compiled for. (Modulo that other bug that causes cross-environment contamination.)


        Issue Links



              l.smith Lindsey Smith
              redmine.exporter redmine.exporter
              Kurt Wall Kurt Wall
              26 Vote for this issue
              55 Start watching this issue



                Zendesk Support