From acd0cfec8c74e781d4466b51c038f14e778476c7 Mon Sep 17 00:00:00 2001 From: IceS2 Date: Fri, 6 Sep 2024 10:18:07 +0200 Subject: [PATCH] Remove CostAnalysisWorkflow dependency on Service Connection (#17732) Connection is not a required attribute for a DatabaseService. In order to avoid errors we are removing the dependency on this attribute and checking that the DatabaseServiceType belongs to either Snowflake, Redshift or BigQuery, which are the supported databases for this feature. --- .../workflows/costAnalysis/CostAnalysisWorkflow.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/costAnalysis/CostAnalysisWorkflow.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/costAnalysis/CostAnalysisWorkflow.java index 37ddf138168..6f301a683b1 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/costAnalysis/CostAnalysisWorkflow.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/workflows/costAnalysis/CostAnalysisWorkflow.java @@ -15,6 +15,7 @@ import org.openmetadata.schema.analytics.AggregatedCostAnalysisReportData; import org.openmetadata.schema.analytics.DataAssetMetrics; import org.openmetadata.schema.analytics.RawCostAnalysisReportData; import org.openmetadata.schema.analytics.ReportData; +import org.openmetadata.schema.api.services.CreateDatabaseService; import org.openmetadata.schema.entity.data.Table; import org.openmetadata.schema.entity.services.DatabaseService; import org.openmetadata.schema.system.StepStats; @@ -33,7 +34,6 @@ import org.openmetadata.service.exception.SearchIndexException; import org.openmetadata.service.jdbi3.ListFilter; import org.openmetadata.service.jdbi3.ReportDataRepository; import org.openmetadata.service.jdbi3.TableRepository; -import org.openmetadata.service.util.JsonUtils; import org.openmetadata.service.util.ResultList; import org.openmetadata.service.workflows.searchIndex.PaginatedEntitiesSource; @@ -330,8 +330,11 @@ public class CostAnalysisWorkflow { } private boolean databaseServiceSupportsProfilerAndUsage(DatabaseService databaseService) { - Map config = JsonUtils.getMap(databaseService.getConnection().getConfig()); - return config.containsKey("supportsProfiler") && config.containsKey("supportsUsageExtraction"); + return List.of( + CreateDatabaseService.DatabaseServiceType.BigQuery, + CreateDatabaseService.DatabaseServiceType.Redshift, + CreateDatabaseService.DatabaseServiceType.Snowflake) + .contains(databaseService.getServiceType()); } private void deleteReportDataRecordsAtDate(