mirror of
https://github.com/inspec/inspec
synced 2024-11-27 07:00:39 +00:00
Update Resource DSL doco to reflect lazy loading.
Signed-off-by: Ryan Davis <zenspider@chef.io>
This commit is contained in:
parent
a61d8b9d34
commit
3eaa64e5f1
1 changed files with 29 additions and 0 deletions
|
@ -98,3 +98,32 @@ end
|
|||
```
|
||||
|
||||
For a full example, see our [example resource](https://github.com/chef/inspec/blob/master/examples/profile/libraries/example_config.rb).
|
||||
|
||||
## Lazy Loading
|
||||
|
||||
Prior to InSpec v4.16, resources were pre-loaded for every invocation
|
||||
of `inspec`. This was a heavy and unnecessary burden on the system and
|
||||
exacerbated startup times (especially on Windows).
|
||||
|
||||
As of InSpec v4.16, resources are lazily loaded into the `inspec`
|
||||
process upon use. This greatly speeds up the initial startup costs of
|
||||
the `inspec` process and only loads what you need to use (eg, `inspec
|
||||
--version` no longer runs for 10 seconds!).
|
||||
|
||||
### Overriding Core Resources
|
||||
|
||||
Lazy loading does change the way the resource registry is handled in
|
||||
ways that might break some assumptions. Specifically,
|
||||
`inspec.<resource>` isn't pre-populated with the core resources that
|
||||
InSpec ships with. If you make a local/custom resource of the same
|
||||
name, referring to the core resource via `inspec.<resource>` will not
|
||||
resolve to the core resource.
|
||||
|
||||
As such, overriding core resources is not recommended best practice.
|
||||
|
||||
If you really do need to do this, it is easiest to make a local
|
||||
resource with a new name and refer to the core resource directly.
|
||||
Otherwise, you need to ensure that the core resource you want is
|
||||
registered (via `require "inspec/resource/<name>"`) _before_ your
|
||||
profile is run to ensure it is eagerly loaded and in the global
|
||||
resource registry.
|
||||
|
|
Loading…
Reference in a new issue