HomePhorge

[#4657] Customer-supplied .rb files are not compatible with multiple…
6b278503021cUnpublished

Unpublished Commit · Learn More

Repository Importing: This repository is still importing.

Description

[#4657] Customer-supplied .rb files are not compatible with multiple environments or staleness check

Changed the resource type API to create AST objects rather than
directly instantiating resource types. This allows the same code
paths to be used to handle the results of parsing both .pp and .rb
files. This makes .rb files work properly in multiple environments,
because the types are now instantiated by code that is aware of which
environment the compilation is happening in. It also reduces the risk
of future changes breaking .rb file support.

Also, switched to using "instance_eval" rather than "require" to
evaluate the contents of the .rb file. This ensures that if the file
has to be recompiled (because it became stale), it will actually get
re-evaluated. As a side benefit, ResourceTypeAPI is now a class
rather than a mixin to Object, so its methods do not pollute the
global namespace.

To reduce the risk of customers coming to rely on implementation
details of the resource type API, changed its methods to return nil,
and removed methods from it that were misleadingly labeled as
"private".

Details

Event Timeline

Paul Berry <paul@puppetlabs.com> committed rPU6b278503021c: [#4657] Customer-supplied .rb files are not compatible with multiple… (authored by Paul Berry <paul@puppetlabs.com>).Sep 3 2010, 3:37 AM