Skip to content

MINOR: Looker error handling improvements#27236

Merged
pmbrull merged 1 commit intomainfrom
looker_improvements
Apr 10, 2026
Merged

MINOR: Looker error handling improvements#27236
pmbrull merged 1 commit intomainfrom
looker_improvements

Conversation

@ulixius9
Copy link
Copy Markdown
Member

Describe your changes:

Fixes

I worked on ... because ...

Type of change:

  • Bug fix
  • Improvement
  • New feature
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>
  • I have commented on my code, particularly in hard-to-understand areas.
  • For JSON Schema changes: I updated the migration scripts or explained why it is not needed.

@ulixius9 ulixius9 requested a review from a team as a code owner April 10, 2026 10:23
Copilot AI review requested due to automatic review settings April 10, 2026 10:23
@github-actions github-actions bot added Ingestion safe to test Add this label to run secure Github workflows on PRs labels Apr 10, 2026
@gitar-bot
Copy link
Copy Markdown

gitar-bot bot commented Apr 10, 2026

Code Review ✅ Approved

Looker error handling improvements implemented with clean, focused changes. No issues found.

Options

Display: compact → Showing less information.

Comment with these commands to change:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Improves Looker ingestion error handling by avoiding noisy errors for missing LookML views and preventing credential leakage in clone failures; also hardens FQN parsing for multi-part table names.

Changes:

  • Treat missing LookML views during _process_view as a warning (no emitted StackTraceError).
  • Sanitize git clone error logs to avoid leaking embedded tokens/PATs.
  • Fix split_table_name to safely handle 4+ part table names by using the last 3 segments, with added unit tests.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
ingestion/src/metadata/ingestion/source/dashboard/looker/metadata.py Logs a warning instead of yielding an error when a view can’t be found in configured repos.
ingestion/src/metadata/ingestion/source/dashboard/looker/utils.py Sanitizes clone exception messages to mask credentials before logging.
ingestion/src/metadata/utils/fqn.py Makes split_table_name robust for 4+ part names by truncating to the last 3 parts.
ingestion/tests/unit/topology/dashboard/test_looker.py Adds unit test ensuring missing views don’t produce yielded errors.
ingestion/tests/unit/topology/dashboard/test_looker_utils.py Adds unit tests ensuring clone failures don’t leak credentials in logs.
ingestion/tests/unit/test_fqn.py Adds unit tests covering split_table_name behavior for 1–5 part names.

@sonarqubecloud
Copy link
Copy Markdown

logger.info(f"repo {repo_name} cloned to {path}")
except Exception as exc:
logger.error(f"GitHubCloneReader::_clone: ERROR {exc} ")
sanitized_msg = re.sub(r"https://[^@]+@", "https://****@", str(exc))
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be a generic util someplace else to clean URIs?

# Pad None to the left until size of list is 3
full_details: List[Optional[str]] = ([None] * (3 - len(details))) + details
# If more than 3 parts, take only the last 3 (database, schema, table)
full_details: List[Optional[str]] = ([None] * max(0, 3 - len(details))) + details[
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the case here

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is sort of an edge case for looker where reads from a information schema table from bigquery project-name.region-name.INFORMATION_SCHEMA.table_name and it fails with error too many values to unpack in the next line

handling this here as it will also automatically solve similar error we would face in bigquery lineage

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok I might add this as a comment in the code so we don't forget + test

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already added tests, I'll add the comment as well

@github-actions
Copy link
Copy Markdown
Contributor

🟡 Playwright Results — all passed (27 flaky)

✅ 3596 passed · ❌ 0 failed · 🟡 27 flaky · ⏭️ 207 skipped

Shard Passed Failed Flaky Skipped
🟡 Shard 1 455 0 2 2
🟡 Shard 2 639 0 4 32
🟡 Shard 3 646 0 2 26
🟡 Shard 4 624 0 3 47
🟡 Shard 5 608 0 1 67
🟡 Shard 6 624 0 15 33
🟡 27 flaky test(s) (passed on retry)
  • Pages/AuditLogs.spec.ts › should apply both User and EntityType filters simultaneously (shard 1, 1 retry)
  • Pages/UserCreationWithPersona.spec.ts › Create user with persona and verify on profile (shard 1, 1 retry)
  • Features/BulkEditEntity.spec.ts › Glossary (shard 2, 1 retry)
  • Features/ChangeSummaryBadge.spec.ts › Automated badge should appear on entity description with Automated source (shard 2, 1 retry)
  • Features/CustomMetric.spec.ts › Table custom metric (shard 2, 1 retry)
  • Features/DataQuality/BundleSuiteBulkOperations.spec.ts › Bulk selection operations (shard 2, 1 retry)
  • Features/Permissions/GlossaryPermissions.spec.ts › Team-based permissions work correctly (shard 3, 1 retry)
  • Flow/ExploreDiscovery.spec.ts › Should display deleted assets when showDeleted is checked and deleted is not present in queryFilter (shard 3, 1 retry)
  • Pages/Customproperties-part2.spec.ts › entityReferenceList shows item count, scrollable list, no expand toggle (shard 4, 1 retry)
  • Pages/Domains.spec.ts › Rename domain with tags and glossary terms preserves associations (shard 4, 1 retry)
  • Pages/Domains.spec.ts › Domain Rbac (shard 4, 1 retry)
  • Pages/ExploreTree.spec.ts › Verify Database and Database Schema available in explore tree (shard 5, 1 retry)
  • Pages/Glossary.spec.ts › Column dropdown drag-and-drop functionality for Glossary Terms table (shard 6, 1 retry)
  • Pages/HyperlinkCustomProperty.spec.ts › should accept valid http and https URLs (shard 6, 1 retry)
  • Pages/Lineage/DataAssetLineage.spec.ts › verify create lineage for entity - Table (shard 6, 1 retry)
  • Pages/Lineage/DataAssetLineage.spec.ts › verify create lineage for entity - Data Model (shard 6, 1 retry)
  • Pages/Lineage/LineageFilters.spec.ts › Verify lineage schema filter selection (shard 6, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab IS visible for supported type: searchIndex (shard 6, 1 retry)
  • Pages/Lineage/PlatformLineage.spec.ts › Verify domain platform view (shard 6, 1 retry)
  • Pages/ODCSImportExport.spec.ts › Verify SLA mapping from ODCS to OpenMetadata format (shard 6, 1 retry)
  • Pages/ODCSImportExport.spec.ts › Multi-object ODCS contract - object selector shows all schema objects (shard 6, 1 retry)
  • Pages/ProfilerConfigurationPage.spec.ts › Sample Data Ingestion Configuration (shard 6, 1 retry)
  • Pages/ServiceEntity.spec.ts › Tier Add, Update and Remove (shard 6, 1 retry)
  • Pages/Tag.spec.ts › Verify Owner Add Delete (shard 6, 1 retry)
  • Pages/Users.spec.ts › Create and Delete user (shard 6, 1 retry)
  • Pages/Users.spec.ts › Permissions for table details page for Data Consumer (shard 6, 1 retry)
  • VersionPages/EntityVersionPages.spec.ts › Directory (shard 6, 1 retry)

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

@pmbrull pmbrull merged commit b2eca32 into main Apr 10, 2026
65 checks passed
@pmbrull pmbrull deleted the looker_improvements branch April 10, 2026 15:30
ulixius9 added a commit that referenced this pull request Apr 10, 2026
- Extract URL credential sanitization to generic `sanitize_url_credentials` in logger utils
- Fix misleading log prefix `GitHubCloneReader::_clone` → `_clone_repo`
- Add BigQuery INFORMATION_SCHEMA context to `split_table_name` comment
- Add unit tests for `sanitize_url_credentials`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SaaiAravindhRaja pushed a commit to SaaiAravindhRaja/OpenMetadata that referenced this pull request Apr 12, 2026
SaaiAravindhRaja pushed a commit to SaaiAravindhRaja/OpenMetadata that referenced this pull request Apr 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ingestion safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants