diff options
| author | Nick Lewis <nick@puppetlabs.com> | 2011-06-10 10:58:19 -0700 |
|---|---|---|
| committer | Nick Lewis <nick@puppetlabs.com> | 2011-06-10 11:54:26 -0700 |
| commit | caca469976cc8b5ff6c7f68d7324eecd35399176 (patch) | |
| tree | 7d1cd7e393d79e0a4840f781e671c5c28c99f1d1 /lib/puppet | |
| parent | 413b136671232a8a0a9e27c18c1b6547241276e7 (diff) | |
| download | puppet-caca469976cc8b5ff6c7f68d7324eecd35399176.tar.gz puppet-caca469976cc8b5ff6c7f68d7324eecd35399176.tar.xz puppet-caca469976cc8b5ff6c7f68d7324eecd35399176.zip | |
(#4416) Ensure types are providified after reloading
Previously, the 'provider' parameter for a type was only added when creating a
provider for that type. This would cause a type to forget about its 'provider'
parameter when only the type was reloaded.
This was manifesting itself in pluginsync, when a provider plugin would be
loaded before its type, causing the type to be autoloaded. The type plugin
would then be loaded again by the plugin handler. Because the type => provider
information is stored separately from the type, the providers don't need to be
reloaded, and thus don't recreate the type's 'provider' parameter.
Now we always "providify" the type (add its 'provider' parameter) upon
creation, after trying to load its providers, if any providers are present.
Paired-with: Jacob Helwig <jacob@puppetlabs.com>
Diffstat (limited to 'lib/puppet')
| -rw-r--r-- | lib/puppet/metatype/manager.rb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/puppet/metatype/manager.rb b/lib/puppet/metatype/manager.rb index 3a2f77b6f..597a89f31 100644 --- a/lib/puppet/metatype/manager.rb +++ b/lib/puppet/metatype/manager.rb @@ -90,6 +90,7 @@ module Manager # We have to load everything so that we can figure out the default provider. klass.providerloader.loadall + klass.providify unless klass.providers.empty? klass end |
