TEST - Allow to run integration tests with opensearch
Describe your changes:
Give us the chance to prepare integration tests with opensearch. Useful for some collate integrations we have going on with OS
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:
- [x] 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.
Summary by Gitar
- Test infrastructure enhancement:
- Added opt-in OpenSearch support to
OpenMetadataApplicationTestviarunWithOpensearchflag (default: Elasticsearch)
- Added opt-in OpenSearch support to
- New test file:
OpenSearchConfigurationTestvalidates OpenSearch container startup, configuration, and cluster health
- Container management:
- GenericContainer for OpenSearch 2.11.0 with security disabled and HTTP health checks
This will update automatically on new commits.
🔍 CI failure analysis for 2b6b8fc: Four CI failures: IBM timeout, Playwright E2E tests (3 failures), and Python lineage tests (2 failures on both 3.10 & 3.11)
Multiple CI Failures Detected
Four distinct types of CI failures affecting this PR.
Failure 1: py-run-build-tests (Infrastructure)
Issue: Docker build timeout downloading IBM DB2 drivers
Status: Recurring infrastructure issue, NOT related to PR
Failure 2: playwright-ci-postgresql (6, 6) - 3 Test Failures
Test Results: 370 passed, 3 failed, 21 skipped (1.1h duration)
Failed Tests:
- Lineage creation from Container entity
- Lineage creation from Metric entity
- Tag Page with Limited EditTag Permission
Error: Timed out 5000ms waiting for expect(locator).not.toBeVisible()
Status: POTENTIALLY related to PR changes - test infrastructure modifications could affect UI test behavior
Failures 3 & 4: py-run-tests Python 3.10 & 3.11 - PostgreSQL Lineage Tests
Issue
Both Python test jobs failed with identical 2 test failures:
FAILED ingestion/tests/integration/postgres/test_lineage.py::test_native_lineage[includeDDL=False-]
FAILED ingestion/tests/integration/postgres/test_lineage.py::test_native_lineage[includeDDL=True-]
Test Results:
- Python 3.11: 2 failed, 484 passed, 21 skipped (1:11:55)
- Python 3.10: 2 failed, 484 passed, 21 skipped (1:10:17)
Root Cause
The lineage extraction workflow fails to parse PostgreSQL CREATE TRIGGER and CREATE FUNCTION statements using SqlFluff. Tests expect 3 lineage nodes but get 0.
This is the same pre-existing issue from earlier commits - SqlFluff parser cannot handle PostgreSQL-specific syntax:
CREATE TRIGGER ... EXECUTE PROCEDUREstatementsCREATE FUNCTION ... RETURNS triggerstatements- PL/pgSQL function bodies
Suggested Fix
- Update SqlFluff dialect configuration to use 'postgres' instead of generic
- Add trigger/procedure support to lineage parser
- Improve function parsing for PL/pgSQL
- Consider using PostgreSQL-native parser
Status
NOT related to this PR's changes - this is a pre-existing test failure that has persisted across multiple commits. The PR only modifies Java test infrastructure for OpenSearch support.
Summary
4 CI failure types:
- py-run-build-tests - IBM server timeout (infrastructure) - NOT related to PR
- playwright-ci-postgresql - 3 E2E test failures (Lineage, Tag) - POTENTIALLY related to PR
- py-run-tests (Python 3.11) - 2 PostgreSQL lineage test failures - NOT related to PR (pre-existing)
- py-run-tests (Python 3.10) - 2 PostgreSQL lineage test failures - NOT related to PR (pre-existing)
Recommendations
- Playwright failures: Re-run to determine if consistent or flaky
- PostgreSQL lineage tests: These are pre-existing failures unrelated to OpenSearch changes
- IBM timeout: Infrastructure team should add retry logic to Dockerfile
[!TIP] Comment
Gitar fix CIor enable auto apply.
Auto-apply is off - Gitar will not commit updates to this branch. Enable by commenting gitar auto-apply:on.
Was this helpful? React with 👍 / 👎 | This comment will update automatically (Docs)