(GH-26) Refactor workspace detection for control repos and modules #29
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously the --local-workspace option was mostly ignored in the puppetfile
validation. However this has caused problems when validating inside control
repositories which do not have a metadata.json file (instead it's Puppetfile).
This commit refactors the workspace detection out of the puppetfile validation
and moves it into the Document Store.
This commit also adds a simple timed based caching mechanism to reduce File IO
as it can be exercised vigourously when users are typing and validation is
occuring very often. An arbitrary value of 60 seconds was chosen the TTL of the
cache. This means that after 60 seconds the workspace will be re-evaluated to
make sure the user is still in a module (metadata.json) or control repo
(Puppetfile).
Now that the workspace root detection has been moved from the manifest validator
to the Document Store, the manifest validator can use the new methods. This
commit;