inspec/lib
Steven Danna 6034ece853 Initial control isolation support
The goal of this change is to provide an isolated view of the available
profiles when the user calls the include_controls or require_controls
APIs.  Namely,

- A profile should only be able to reference profiles that are part of
  its transitive dependency tree. That is, if the dependency tree for a
  profile looks like the following:

  A
  |- B --> C
  |
  |- D --> E

  Then profile B should only be able to see profile C and fail if it
  tries to reference A, D, or E.

- The same profile should be include-able at different versions from
  different parts of the tree without conflict.  That is, if the
  dependency tree for a profile looks like the following:

  A
  |- B --> C@1.0
  |
  |- D --> C@2.0

  Then profile B should see the 1.0 version of C and profile D should
  see the 2.0 profile C with respect to the included controls.

To achieve these goals we:

- Ensure that we construct ProfileContext objects with respect to the
  correct dependencies in Inspec::DSL.

- Provide a method of accessing all transitively defined rules on a
  ProfileContext without pushing all of the rules onto the same global
  namespace.

This does not yet handle attributes or libraries.
2016-08-25 14:42:55 +02:00
..
bundles Support controls and describe blocks in InSpec shell 2016-08-19 19:07:23 +02:00
fetchers add unit test for local fetcher with windows path support 2016-08-24 16:23:27 +02:00
inspec Initial control isolation support 2016-08-25 14:42:55 +02:00
matchers add boolean support for cmp matcher 2016-06-18 20:33:08 +02:00
resources fix lint 2016-08-24 14:40:26 +02:00
source_readers migrate load-path hooking for legacy modes 2016-02-22 12:06:42 +01:00
utils handle xinetd config with only one entry 2016-08-16 17:23:22 +02:00
inspec.rb move base_cli to lib/inspec 2016-07-26 20:11:25 +02:00