fix(ingestion): match nested LookML files mentioned in 'include' statements #2957
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.
The LookML metadata ingestion logic includes a method,
resolve_includes()
, whose goal is to turn LookMLinclude
statements into valid Pythonglob
patterns. This is used to identify.lkml
files to be read in and used to create MCE messages.I believe that a mistake in that logic leads to files in deeply-nested directories being ignored by
datahub ingest
.the LookML
is treated as equivalent to
But I believe that's incorrect. According to https://docs.looker.com/data-modeling/getting-started/ide-folders#wildcard_examples,
**
matches all directories at any level of nesting. Withoutrecursive=True
, thatglob.glob()
call says "match files calledsome_cool_view.view.lkml
exactly one directory belowbase_folder
".This PR proposes a fix to make this project's Python code match LookML's treatment of wildcards more closely.
Checklist
Notes for reviewers
I tested this against a DataHub environment I have access to and can confirm that before this change (as of
acryl-datahub==0.8.6.1
),.view.lkml
files nested more than one directory below thebase_folder
were not found, and after this change they are.Thanks for your time and consideration.