openmetadata-ingestion 1.7.5.3__py3-none-any.whl → 1.8.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openmetadata-ingestion might be problematic. Click here for more details.
- _openmetadata_testutils/helpers/login_user.py +22 -0
- metadata/__init__.py +31 -0
- metadata/automations/runner.py +24 -14
- metadata/cli/ingest_dbt.py +1 -1
- metadata/data_quality/processor/test_case_runner.py +2 -11
- metadata/data_quality/source/test_suite.py +3 -1
- metadata/data_quality/validations/models.py +2 -2
- metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +3 -30
- metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +5 -11
- metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +17 -2
- metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +1 -4
- metadata/generated/schema/analytics/__init__.py +1 -1
- metadata/generated/schema/analytics/basic.py +1 -1
- metadata/generated/schema/analytics/reportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
- metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
- metadata/generated/schema/api/__init__.py +1 -1
- metadata/generated/schema/api/addGlossaryToAssetsRequest.py +3 -16
- metadata/generated/schema/api/addTagToAssetsRequest.py +1 -10
- metadata/generated/schema/api/analytics/__init__.py +1 -1
- metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
- metadata/generated/schema/api/automations/__init__.py +1 -1
- metadata/generated/schema/api/automations/createWorkflow.py +1 -1
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +6 -2
- metadata/generated/schema/api/classification/createTag.py +6 -2
- metadata/generated/schema/api/classification/loadTags.py +1 -1
- metadata/generated/schema/api/createBot.py +1 -1
- metadata/generated/schema/api/createEventPublisherJob.py +1 -1
- metadata/generated/schema/api/createType.py +1 -1
- metadata/generated/schema/api/data/__init__.py +1 -1
- metadata/generated/schema/api/data/createAPICollection.py +1 -1
- metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
- metadata/generated/schema/api/data/createChart.py +1 -1
- metadata/generated/schema/api/data/createContainer.py +1 -1
- metadata/generated/schema/api/data/createCustomProperty.py +1 -1
- metadata/generated/schema/api/data/createDashboard.py +1 -1
- metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
- metadata/generated/schema/api/data/createDataContract.py +66 -0
- metadata/generated/schema/api/data/createDatabase.py +1 -1
- metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
- metadata/generated/schema/api/data/createGlossary.py +1 -1
- metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
- metadata/generated/schema/api/data/createMetric.py +1 -1
- metadata/generated/schema/api/data/createMlModel.py +1 -1
- metadata/generated/schema/api/data/createPipeline.py +1 -1
- metadata/generated/schema/api/data/createQuery.py +1 -1
- metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
- metadata/generated/schema/api/data/createSearchIndex.py +1 -1
- metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
- metadata/generated/schema/api/data/createTable.py +1 -1
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +1 -1
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/data/updateColumn.py +49 -0
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +1 -1
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +1 -1
- metadata/generated/schema/api/domains/createDomain.py +1 -1
- metadata/generated/schema/api/feed/__init__.py +1 -1
- metadata/generated/schema/api/feed/closeTask.py +1 -1
- metadata/generated/schema/api/feed/createPost.py +1 -1
- metadata/generated/schema/api/feed/createSuggestion.py +1 -1
- metadata/generated/schema/api/feed/createThread.py +1 -1
- metadata/generated/schema/api/feed/resolveTask.py +1 -1
- metadata/generated/schema/api/feed/threadCount.py +1 -1
- metadata/generated/schema/api/governance/__init__.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
- metadata/generated/schema/api/lineage/__init__.py +1 -1
- metadata/generated/schema/api/lineage/addLineage.py +1 -1
- metadata/generated/schema/api/lineage/esLineageData.py +1 -1
- metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
- metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
- metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
- metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
- metadata/generated/schema/api/mcp/__init__.py +3 -0
- metadata/generated/schema/api/mcp/mcpToolDefinition.py +54 -0
- metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
- metadata/generated/schema/api/policies/__init__.py +1 -1
- metadata/generated/schema/api/policies/createPolicy.py +1 -1
- metadata/generated/schema/api/scim/__init__.py +3 -0
- metadata/generated/schema/api/scim/scimGroup.py +52 -0
- metadata/generated/schema/api/scim/scimPatchOp.py +32 -0
- metadata/generated/schema/api/scim/scimUser.py +83 -0
- metadata/generated/schema/api/search/__init__.py +1 -1
- metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createApiService.py +1 -1
- metadata/generated/schema/api/services/createDashboardService.py +1 -1
- metadata/generated/schema/api/services/createDatabaseService.py +1 -1
- metadata/generated/schema/api/services/createMessagingService.py +1 -1
- metadata/generated/schema/api/services/createMetadataService.py +1 -1
- metadata/generated/schema/api/services/createMlModelService.py +1 -1
- metadata/generated/schema/api/services/createPipelineService.py +1 -1
- metadata/generated/schema/api/services/createSearchService.py +1 -1
- metadata/generated/schema/api/services/createStorageService.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
- metadata/generated/schema/api/setOwner.py +1 -1
- metadata/generated/schema/api/teams/__init__.py +1 -1
- metadata/generated/schema/api/teams/createPersona.py +1 -1
- metadata/generated/schema/api/teams/createRole.py +1 -1
- metadata/generated/schema/api/teams/createTeam.py +8 -1
- metadata/generated/schema/api/teams/createUser.py +11 -1
- metadata/generated/schema/api/tests/__init__.py +1 -1
- metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
- metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
- metadata/generated/schema/api/tests/createTestCase.py +9 -6
- metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
- metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
- metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
- metadata/generated/schema/api/tests/createTestSuite.py +1 -1
- metadata/generated/schema/api/validateGlossaryTagsRequest.py +31 -0
- metadata/generated/schema/api/voteRequest.py +1 -1
- metadata/generated/schema/auth/__init__.py +1 -1
- metadata/generated/schema/auth/basicAuth.py +1 -1
- metadata/generated/schema/auth/basicLoginRequest.py +1 -1
- metadata/generated/schema/auth/changePasswordRequest.py +1 -1
- metadata/generated/schema/auth/createPersonalToken.py +1 -1
- metadata/generated/schema/auth/emailRequest.py +1 -1
- metadata/generated/schema/auth/emailVerificationToken.py +2 -1
- metadata/generated/schema/auth/generateToken.py +1 -1
- metadata/generated/schema/auth/jwtAuth.py +1 -1
- metadata/generated/schema/auth/loginRequest.py +1 -1
- metadata/generated/schema/auth/logoutRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetToken.py +1 -1
- metadata/generated/schema/auth/personalAccessToken.py +1 -1
- metadata/generated/schema/auth/refreshToken.py +1 -1
- metadata/generated/schema/auth/registrationRequest.py +1 -1
- metadata/generated/schema/auth/revokePersonalToken.py +1 -1
- metadata/generated/schema/auth/revokeToken.py +1 -1
- metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
- metadata/generated/schema/auth/ssoAuth.py +1 -1
- metadata/generated/schema/auth/supportToken.py +35 -0
- metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
- metadata/generated/schema/configuration/__init__.py +1 -1
- metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
- metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
- metadata/generated/schema/configuration/authConfig.py +1 -1
- metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
- metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
- metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
- metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
- metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
- metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
- metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
- metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
- metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
- metadata/generated/schema/configuration/lineageSettings.py +1 -1
- metadata/generated/schema/configuration/loginConfiguration.py +1 -1
- metadata/generated/schema/configuration/logoConfiguration.py +1 -1
- metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
- metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
- metadata/generated/schema/configuration/opsConfig.py +1 -1
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
- metadata/generated/schema/configuration/searchSettings.py +1 -1
- metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
- metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/themeConfiguration.py +1 -1
- metadata/generated/schema/configuration/uiThemePreference.py +1 -1
- metadata/generated/schema/configuration/workflowSettings.py +1 -1
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
- metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
- metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
- metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
- metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
- metadata/generated/schema/dataInsight/type/__init__.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
- metadata/generated/schema/email/__init__.py +1 -1
- metadata/generated/schema/email/emailRequest.py +1 -1
- metadata/generated/schema/email/emailTemplate.py +1 -1
- metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
- metadata/generated/schema/email/smtpSettings.py +1 -1
- metadata/generated/schema/email/templateValidationReponse.py +1 -1
- metadata/generated/schema/entity/__init__.py +1 -1
- metadata/generated/schema/entity/applications/__init__.py +1 -1
- metadata/generated/schema/entity/applications/app.py +3 -2
- metadata/generated/schema/entity/applications/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +2 -1
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +5 -2
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +9 -1
- metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +9 -1
- metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
- metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
- metadata/generated/schema/entity/applications/jobStatus.py +1 -1
- metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
- metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
- metadata/generated/schema/entity/automations/__init__.py +1 -1
- metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
- metadata/generated/schema/entity/automations/workflow.py +1 -1
- metadata/generated/schema/entity/bot.py +1 -1
- metadata/generated/schema/entity/classification/__init__.py +1 -1
- metadata/generated/schema/entity/classification/classification.py +7 -4
- metadata/generated/schema/entity/classification/tag.py +6 -3
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/apiCollection.py +1 -1
- metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
- metadata/generated/schema/entity/data/chart.py +1 -1
- metadata/generated/schema/entity/data/container.py +1 -1
- metadata/generated/schema/entity/data/dashboard.py +1 -1
- metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
- metadata/generated/schema/entity/data/dataContract.py +180 -0
- metadata/generated/schema/entity/data/database.py +1 -1
- metadata/generated/schema/entity/data/databaseSchema.py +1 -1
- metadata/generated/schema/entity/data/glossary.py +1 -1
- metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
- metadata/generated/schema/entity/data/metric.py +1 -1
- metadata/generated/schema/entity/data/mlmodel.py +1 -1
- metadata/generated/schema/entity/data/pipeline.py +1 -1
- metadata/generated/schema/entity/data/query.py +1 -1
- metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
- metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
- metadata/generated/schema/entity/data/report.py +1 -1
- metadata/generated/schema/entity/data/searchIndex.py +1 -1
- metadata/generated/schema/entity/data/storedProcedure.py +1 -1
- metadata/generated/schema/entity/data/table.py +10 -1
- metadata/generated/schema/entity/data/topic.py +1 -1
- metadata/generated/schema/entity/docStore/__init__.py +1 -1
- metadata/generated/schema/entity/docStore/document.py +1 -1
- metadata/generated/schema/entity/domains/__init__.py +1 -1
- metadata/generated/schema/entity/domains/dataProduct.py +5 -1
- metadata/generated/schema/entity/domains/domain.py +5 -1
- metadata/generated/schema/entity/events/__init__.py +1 -1
- metadata/generated/schema/entity/events/webhook.py +7 -1
- metadata/generated/schema/entity/feed/__init__.py +1 -1
- metadata/generated/schema/entity/feed/assets.py +1 -1
- metadata/generated/schema/entity/feed/customProperty.py +1 -1
- metadata/generated/schema/entity/feed/description.py +1 -1
- metadata/generated/schema/entity/feed/domain.py +1 -1
- metadata/generated/schema/entity/feed/entityInfo.py +1 -1
- metadata/generated/schema/entity/feed/owner.py +1 -1
- metadata/generated/schema/entity/feed/suggestion.py +1 -1
- metadata/generated/schema/entity/feed/tag.py +1 -1
- metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
- metadata/generated/schema/entity/feed/thread.py +1 -1
- metadata/generated/schema/entity/policies/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +6 -1
- metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
- metadata/generated/schema/entity/policies/filters.py +1 -1
- metadata/generated/schema/entity/policies/policy.py +1 -1
- metadata/generated/schema/entity/services/__init__.py +1 -1
- metadata/generated/schema/entity/services/apiService.py +1 -1
- metadata/generated/schema/entity/services/connections/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +5 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
- metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
- metadata/generated/schema/entity/services/dashboardService.py +1 -1
- metadata/generated/schema/entity/services/databaseService.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +1 -1
- metadata/generated/schema/entity/services/metadataService.py +1 -1
- metadata/generated/schema/entity/services/mlmodelService.py +1 -1
- metadata/generated/schema/entity/services/pipelineService.py +1 -1
- metadata/generated/schema/entity/services/searchService.py +1 -1
- metadata/generated/schema/entity/services/serviceType.py +1 -1
- metadata/generated/schema/entity/services/storageService.py +1 -1
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +1 -1
- metadata/generated/schema/entity/teams/role.py +1 -1
- metadata/generated/schema/entity/teams/team.py +8 -1
- metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
- metadata/generated/schema/entity/teams/user.py +11 -1
- metadata/generated/schema/entity/type.py +1 -1
- metadata/generated/schema/entity/utils/__init__.py +1 -1
- metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
- metadata/generated/schema/entity/utils/servicesCount.py +1 -1
- metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
- metadata/generated/schema/events/__init__.py +1 -1
- metadata/generated/schema/events/alertMetrics.py +1 -1
- metadata/generated/schema/events/api/__init__.py +1 -1
- metadata/generated/schema/events/api/createEventSubscription.py +1 -1
- metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
- metadata/generated/schema/events/api/eventsRecord.py +1 -1
- metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
- metadata/generated/schema/events/api/typedEvent.py +1 -1
- metadata/generated/schema/events/emailAlertConfig.py +1 -1
- metadata/generated/schema/events/eventFilterRule.py +1 -1
- metadata/generated/schema/events/eventSubscription.py +1 -1
- metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
- metadata/generated/schema/events/failedEvent.py +1 -1
- metadata/generated/schema/events/failedEventResponse.py +1 -1
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/statusContext.py +1 -1
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionStatus.py +1 -1
- metadata/generated/schema/events/testDestinationStatus.py +1 -1
- metadata/generated/schema/governance/workflows/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
- metadata/generated/schema/jobs/__init__.py +1 -1
- metadata/generated/schema/jobs/backgroundJob.py +12 -3
- metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/workflow.py +1 -1
- metadata/generated/schema/monitoring/__init__.py +1 -1
- metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
- metadata/generated/schema/scim/__init__.py +3 -0
- metadata/generated/schema/scim/scimConfiguration.py +32 -0
- metadata/generated/schema/search/__init__.py +1 -1
- metadata/generated/schema/search/aggregationRequest.py +1 -1
- metadata/generated/schema/search/searchRequest.py +8 -1
- metadata/generated/schema/security/__init__.py +1 -1
- metadata/generated/schema/security/client/__init__.py +1 -1
- metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
- metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
- metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
- metadata/generated/schema/security/credentials/__init__.py +1 -1
- metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
- metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
- metadata/generated/schema/security/credentials/basicAuth.py +1 -1
- metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
- metadata/generated/schema/security/credentials/gcpValues.py +1 -1
- metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
- metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
- metadata/generated/schema/security/sasl/__init__.py +1 -1
- metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
- metadata/generated/schema/security/secrets/__init__.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
- metadata/generated/schema/security/securityConfiguration.py +1 -1
- metadata/generated/schema/security/ssl/__init__.py +1 -1
- metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
- metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
- metadata/generated/schema/settings/__init__.py +1 -1
- metadata/generated/schema/settings/settings.py +2 -1
- metadata/generated/schema/system/__init__.py +1 -1
- metadata/generated/schema/system/entityError.py +1 -1
- metadata/generated/schema/system/eventPublisherJob.py +8 -1
- metadata/generated/schema/system/indexingError.py +1 -1
- metadata/generated/schema/system/limitsResponse.py +1 -1
- metadata/generated/schema/system/ui/__init__.py +1 -1
- metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
- metadata/generated/schema/system/ui/navigationItem.py +1 -1
- metadata/generated/schema/system/ui/page.py +1 -1
- metadata/generated/schema/system/ui/tab.py +1 -1
- metadata/generated/schema/system/ui/uiCustomization.py +1 -1
- metadata/generated/schema/system/validationResponse.py +1 -1
- metadata/generated/schema/tests/__init__.py +1 -1
- metadata/generated/schema/tests/assigned.py +1 -1
- metadata/generated/schema/tests/basic.py +1 -1
- metadata/generated/schema/tests/customMetric.py +1 -1
- metadata/generated/schema/tests/dataQualityReport.py +1 -1
- metadata/generated/schema/tests/resolved.py +1 -1
- metadata/generated/schema/tests/testCase.py +1 -1
- metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
- metadata/generated/schema/tests/testDefinition.py +1 -1
- metadata/generated/schema/tests/testSuite.py +1 -1
- metadata/generated/schema/type/__init__.py +1 -1
- metadata/generated/schema/type/apiSchema.py +1 -1
- metadata/generated/schema/type/assetCertification.py +1 -1
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +1 -1
- metadata/generated/schema/type/bulkOperationResult.py +1 -1
- metadata/generated/schema/type/changeEvent.py +1 -1
- metadata/generated/schema/type/changeEventType.py +1 -1
- metadata/generated/schema/type/changeSummaryMap.py +1 -1
- metadata/generated/schema/type/collectionDescriptor.py +1 -1
- metadata/generated/schema/type/csvDocumentation.py +1 -1
- metadata/generated/schema/type/csvErrorType.py +1 -1
- metadata/generated/schema/type/csvFile.py +1 -1
- metadata/generated/schema/type/csvImportResult.py +1 -1
- metadata/generated/schema/type/customProperties/__init__.py +1 -1
- metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
- metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
- metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
- metadata/generated/schema/type/customProperty.py +1 -1
- metadata/generated/schema/type/dailyCount.py +1 -1
- metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
- metadata/generated/schema/type/entityHierarchy.py +1 -1
- metadata/generated/schema/type/entityHistory.py +1 -1
- metadata/generated/schema/type/entityLineage.py +1 -1
- metadata/generated/schema/type/entityReference.py +1 -1
- metadata/generated/schema/type/entityReferenceList.py +1 -1
- metadata/generated/schema/type/entityRelationship.py +1 -1
- metadata/generated/schema/type/entityUsage.py +1 -1
- metadata/generated/schema/type/filterPattern.py +1 -1
- metadata/generated/schema/type/function.py +1 -1
- metadata/generated/schema/type/include.py +1 -1
- metadata/generated/schema/type/jdbcConnection.py +1 -1
- metadata/generated/schema/type/lifeCycle.py +1 -1
- metadata/generated/schema/type/paging.py +1 -1
- metadata/generated/schema/type/profile.py +1 -1
- metadata/generated/schema/type/queryParserData.py +1 -1
- metadata/generated/schema/type/reaction.py +1 -1
- metadata/generated/schema/type/schedule.py +1 -1
- metadata/generated/schema/type/schema.py +1 -1
- metadata/generated/schema/type/tableQuery.py +1 -1
- metadata/generated/schema/type/tableUsageCount.py +1 -1
- metadata/generated/schema/type/tagLabel.py +1 -1
- metadata/generated/schema/type/usageDetails.py +1 -1
- metadata/generated/schema/type/usageRequest.py +1 -1
- metadata/generated/schema/type/votes.py +1 -1
- metadata/great_expectations/action.py +4 -8
- metadata/great_expectations/action1xx.py +395 -0
- metadata/ingestion/connections/builders.py +14 -4
- metadata/ingestion/connections/connection.py +63 -0
- metadata/ingestion/connections/query_logger.py +115 -0
- metadata/ingestion/connections/test_connections.py +1 -1
- metadata/ingestion/ometa/mixins/tests_mixin.py +3 -5
- metadata/ingestion/ometa/routes.py +2 -0
- metadata/ingestion/sink/metadata_rest.py +54 -11
- metadata/ingestion/source/api/api_service.py +2 -7
- metadata/ingestion/source/api/rest/metadata.py +0 -1
- metadata/ingestion/source/connections.py +80 -14
- metadata/ingestion/source/connections_utils.py +32 -0
- metadata/ingestion/source/dashboard/dashboard_service.py +2 -7
- metadata/ingestion/source/dashboard/qlikcloud/client.py +34 -2
- metadata/ingestion/source/dashboard/qlikcloud/constants.py +6 -0
- metadata/ingestion/source/dashboard/qlikcloud/models.py +8 -0
- metadata/ingestion/source/dashboard/superset/connection.py +8 -8
- metadata/ingestion/source/dashboard/superset/queries.py +1 -1
- metadata/ingestion/source/dashboard/tableau/client.py +4 -4
- metadata/ingestion/source/dashboard/tableau/metadata.py +0 -1
- metadata/ingestion/source/database/bigquery/connection.py +13 -9
- metadata/ingestion/source/database/bigquery/helper.py +11 -9
- metadata/ingestion/source/database/bigquery/metadata.py +102 -13
- metadata/ingestion/source/database/bigquery/profiler/system.py +1 -1
- metadata/ingestion/source/database/bigquery/queries.py +15 -3
- metadata/ingestion/source/database/common_db_source.py +2 -4
- metadata/ingestion/source/database/database_service.py +2 -7
- metadata/ingestion/source/database/databricks/client.py +149 -14
- metadata/ingestion/source/database/databricks/queries.py +26 -0
- metadata/ingestion/source/database/datalake/metadata.py +1 -1
- metadata/ingestion/source/database/dbt/metadata.py +0 -5
- metadata/ingestion/source/database/mysql/connection.py +52 -45
- metadata/ingestion/source/database/mysql/service_spec.py +2 -0
- metadata/ingestion/source/database/postgres/metadata.py +16 -4
- metadata/ingestion/source/database/postgres/models.py +1 -0
- metadata/ingestion/source/database/postgres/queries.py +7 -4
- metadata/ingestion/source/database/query_parser_source.py +2 -7
- metadata/ingestion/source/database/redshift/connection.py +1 -1
- metadata/ingestion/source/database/sample_data.py +1 -1
- metadata/ingestion/source/database/saphana/lineage.py +2 -7
- metadata/ingestion/source/database/sas/metadata.py +2 -7
- metadata/ingestion/source/database/trino/connection.py +10 -79
- metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +26 -17
- metadata/ingestion/source/database/unitycatalog/connection.py +33 -0
- metadata/ingestion/source/database/unitycatalog/lineage.py +2 -7
- metadata/ingestion/source/database/unitycatalog/metadata.py +126 -13
- metadata/ingestion/source/database/unitycatalog/queries.py +19 -0
- metadata/ingestion/source/messaging/messaging_service.py +2 -7
- metadata/ingestion/source/metadata/alationsink/metadata.py +2 -7
- metadata/ingestion/source/metadata/amundsen/metadata.py +2 -7
- metadata/ingestion/source/metadata/atlas/metadata.py +2 -7
- metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -7
- metadata/ingestion/source/pipeline/airflow/connection.py +4 -6
- metadata/ingestion/source/pipeline/databrickspipeline/connection.py +26 -2
- metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +175 -13
- metadata/ingestion/source/pipeline/nifi/metadata.py +133 -3
- metadata/ingestion/source/pipeline/pipeline_service.py +20 -7
- metadata/ingestion/source/search/search_service.py +2 -7
- metadata/ingestion/source/storage/storage_service.py +2 -7
- metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +3 -3
- metadata/profiler/interface/sqlalchemy/profiler_interface.py +1 -0
- metadata/profiler/metrics/static/not_regexp_match_count.py +4 -3
- metadata/profiler/metrics/static/regexp_match_count.py +3 -2
- metadata/profiler/orm/functions/length.py +1 -0
- metadata/profiler/orm/functions/md5.py +9 -0
- metadata/profiler/orm/functions/modulo.py +1 -0
- metadata/profiler/orm/functions/random_num.py +4 -0
- metadata/profiler/orm/functions/regexp.py +40 -0
- metadata/profiler/orm/functions/table_metric_computer.py +34 -8
- metadata/profiler/orm/registry.py +1 -0
- metadata/profiler/processor/core.py +2 -2
- metadata/profiler/processor/default.py +29 -28
- metadata/profiler/processor/metric_filter.py +16 -3
- metadata/profiler/processor/models.py +14 -4
- metadata/profiler/source/database/base/profiler_resolver.py +35 -0
- metadata/profiler/source/database/base/profiler_source.py +45 -30
- metadata/profiler/source/profiler_source_interface.py +8 -13
- metadata/sampler/sampler_interface.py +15 -10
- metadata/sampler/sqlalchemy/bigquery/sampler.py +7 -0
- metadata/utils/dependency_injector/dependency_injector.py +403 -0
- metadata/utils/service_spec/service_spec.py +66 -10
- metadata/workflow/profiler.py +2 -7
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/METADATA +523 -516
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/RECORD +805 -782
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/top_level.txt +0 -0
|
@@ -38,9 +38,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
|
|
|
38
38
|
from metadata.ingestion.api.models import Either
|
|
39
39
|
from metadata.ingestion.api.steps import Source
|
|
40
40
|
from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
|
|
41
|
-
from metadata.ingestion.connections.test_connections import (
|
|
42
|
-
raise_test_connection_exception,
|
|
43
|
-
)
|
|
44
41
|
from metadata.ingestion.models.delete_entity import DeleteEntity
|
|
45
42
|
from metadata.ingestion.models.topology import (
|
|
46
43
|
NodeStage,
|
|
@@ -49,7 +46,7 @@ from metadata.ingestion.models.topology import (
|
|
|
49
46
|
TopologyNode,
|
|
50
47
|
)
|
|
51
48
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
52
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
49
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
53
50
|
from metadata.utils import fqn
|
|
54
51
|
from metadata.utils.helpers import retry_with_docker_host
|
|
55
52
|
from metadata.utils.logger import ingestion_logger
|
|
@@ -180,11 +177,9 @@ class MlModelServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
180
177
|
"""By default, nothing to close"""
|
|
181
178
|
|
|
182
179
|
def test_connection(self) -> None:
|
|
183
|
-
|
|
184
|
-
result = test_connection_fn(
|
|
180
|
+
test_connection_common(
|
|
185
181
|
self.metadata, self.connection_obj, self.service_connection
|
|
186
182
|
)
|
|
187
|
-
raise_test_connection_exception(result)
|
|
188
183
|
|
|
189
184
|
def mark_mlmodels_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
|
|
190
185
|
"""Method to mark the mlmodels as deleted"""
|
|
@@ -24,7 +24,7 @@ from metadata.generated.schema.entity.automations.workflow import (
|
|
|
24
24
|
Workflow as AutomationWorkflow,
|
|
25
25
|
)
|
|
26
26
|
from metadata.generated.schema.entity.services.connections.database.mysqlConnection import (
|
|
27
|
-
MysqlConnection,
|
|
27
|
+
MysqlConnection as MysqlConnectionConfig,
|
|
28
28
|
)
|
|
29
29
|
from metadata.generated.schema.entity.services.connections.database.postgresConnection import (
|
|
30
30
|
PostgresConnection,
|
|
@@ -67,12 +67,10 @@ def _(_: BackendConnection) -> Engine:
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
@_get_connection.register
|
|
70
|
-
def _(airflow_connection:
|
|
71
|
-
from metadata.ingestion.source.database.mysql.connection import
|
|
72
|
-
get_connection as get_mysql_connection,
|
|
73
|
-
)
|
|
70
|
+
def _(airflow_connection: MysqlConnectionConfig) -> Engine:
|
|
71
|
+
from metadata.ingestion.source.database.mysql.connection import MySQLConnection
|
|
74
72
|
|
|
75
|
-
return
|
|
73
|
+
return MySQLConnection(airflow_connection).get_client()
|
|
76
74
|
|
|
77
75
|
|
|
78
76
|
@_get_connection.register
|
|
@@ -24,17 +24,38 @@ from metadata.generated.schema.entity.services.connections.pipeline.databricksPi
|
|
|
24
24
|
from metadata.generated.schema.entity.services.connections.testConnectionResult import (
|
|
25
25
|
TestConnectionResult,
|
|
26
26
|
)
|
|
27
|
+
from metadata.ingestion.connections.builders import (
|
|
28
|
+
create_generic_db_connection,
|
|
29
|
+
get_connection_args_common,
|
|
30
|
+
init_empty_connection_arguments,
|
|
31
|
+
)
|
|
27
32
|
from metadata.ingestion.connections.test_connections import test_connection_steps
|
|
28
33
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
29
34
|
from metadata.ingestion.source.database.databricks.client import DatabricksClient
|
|
30
35
|
from metadata.utils.constants import THREE_MIN
|
|
31
36
|
|
|
32
37
|
|
|
38
|
+
def get_connection_url(connection: DatabricksPipelineConnection) -> str:
|
|
39
|
+
url = f"databricks+connector://token:{connection.token.get_secret_value()}@{connection.hostPort}"
|
|
40
|
+
return url
|
|
41
|
+
|
|
42
|
+
|
|
33
43
|
def get_connection(connection: DatabricksPipelineConnection) -> DatabricksClient:
|
|
34
44
|
"""
|
|
35
45
|
Create connection
|
|
36
46
|
"""
|
|
37
|
-
|
|
47
|
+
|
|
48
|
+
if connection.httpPath:
|
|
49
|
+
if not connection.connectionArguments:
|
|
50
|
+
connection.connectionArguments = init_empty_connection_arguments()
|
|
51
|
+
connection.connectionArguments.root["http_path"] = connection.httpPath
|
|
52
|
+
|
|
53
|
+
engine = create_generic_db_connection(
|
|
54
|
+
connection=connection,
|
|
55
|
+
get_connection_url_fn=get_connection_url,
|
|
56
|
+
get_connection_args_fn=get_connection_args_common,
|
|
57
|
+
)
|
|
58
|
+
return DatabricksClient(connection, engine)
|
|
38
59
|
|
|
39
60
|
|
|
40
61
|
def test_connection(
|
|
@@ -49,7 +70,10 @@ def test_connection(
|
|
|
49
70
|
of a metadata workflow or during an Automation Workflow
|
|
50
71
|
"""
|
|
51
72
|
|
|
52
|
-
test_fn = {
|
|
73
|
+
test_fn = {
|
|
74
|
+
"GetPipelines": client.list_jobs_test_connection,
|
|
75
|
+
"GetLineage": client.test_lineage_query,
|
|
76
|
+
}
|
|
53
77
|
|
|
54
78
|
return test_connection_steps(
|
|
55
79
|
metadata=metadata,
|
|
@@ -14,7 +14,7 @@ Databricks pipeline source to extract metadata
|
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
16
|
import traceback
|
|
17
|
-
from typing import Iterable, List, Optional
|
|
17
|
+
from typing import Iterable, List, Optional, Tuple
|
|
18
18
|
|
|
19
19
|
from pydantic import ValidationError
|
|
20
20
|
|
|
@@ -27,6 +27,7 @@ from metadata.generated.schema.entity.data.pipeline import (
|
|
|
27
27
|
Task,
|
|
28
28
|
TaskStatus,
|
|
29
29
|
)
|
|
30
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
30
31
|
from metadata.generated.schema.entity.services.connections.pipeline.databricksPipelineConnection import (
|
|
31
32
|
DatabricksPipelineConnection,
|
|
32
33
|
)
|
|
@@ -43,8 +44,16 @@ from metadata.generated.schema.type.basic import (
|
|
|
43
44
|
SourceUrl,
|
|
44
45
|
Timestamp,
|
|
45
46
|
)
|
|
47
|
+
from metadata.generated.schema.type.entityLineage import (
|
|
48
|
+
ColumnLineage,
|
|
49
|
+
EntitiesEdge,
|
|
50
|
+
LineageDetails,
|
|
51
|
+
)
|
|
52
|
+
from metadata.generated.schema.type.entityLineage import Source as LineageSource
|
|
53
|
+
from metadata.generated.schema.type.entityReference import EntityReference
|
|
46
54
|
from metadata.ingestion.api.models import Either
|
|
47
55
|
from metadata.ingestion.api.steps import InvalidSourceException
|
|
56
|
+
from metadata.ingestion.lineage.sql_lineage import get_column_fqn
|
|
48
57
|
from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
|
|
49
58
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
50
59
|
from metadata.ingestion.source.pipeline.databrickspipeline.models import (
|
|
@@ -54,7 +63,6 @@ from metadata.ingestion.source.pipeline.databrickspipeline.models import (
|
|
|
54
63
|
from metadata.ingestion.source.pipeline.pipeline_service import PipelineServiceSource
|
|
55
64
|
from metadata.utils import fqn
|
|
56
65
|
from metadata.utils.logger import ingestion_logger
|
|
57
|
-
from metadata.utils.time_utils import convert_timestamp_to_milliseconds
|
|
58
66
|
|
|
59
67
|
logger = ingestion_logger()
|
|
60
68
|
|
|
@@ -200,21 +208,15 @@ class DatabrickspipelineSource(PipelineServiceSource):
|
|
|
200
208
|
executionStatus=STATUS_MAP.get(
|
|
201
209
|
run.state.result_state, StatusType.Failed
|
|
202
210
|
),
|
|
203
|
-
startTime=Timestamp(
|
|
204
|
-
|
|
205
|
-
),
|
|
206
|
-
endTime=Timestamp(
|
|
207
|
-
convert_timestamp_to_milliseconds(run.end_time)
|
|
208
|
-
),
|
|
211
|
+
startTime=Timestamp(run.start_time),
|
|
212
|
+
endTime=Timestamp(run.end_time) if run.end_time else None,
|
|
209
213
|
logLink=run.run_page_url,
|
|
210
214
|
)
|
|
211
215
|
for task in run.tasks or []
|
|
212
216
|
]
|
|
213
217
|
pipeline_status = PipelineStatus(
|
|
214
218
|
taskStatus=task_status,
|
|
215
|
-
timestamp=Timestamp(
|
|
216
|
-
convert_timestamp_to_milliseconds(run.start_time)
|
|
217
|
-
),
|
|
219
|
+
timestamp=Timestamp(run.start_time),
|
|
218
220
|
executionStatus=STATUS_MAP.get(
|
|
219
221
|
run.state.result_state,
|
|
220
222
|
StatusType.Failed,
|
|
@@ -235,13 +237,173 @@ class DatabrickspipelineSource(PipelineServiceSource):
|
|
|
235
237
|
except Exception as exc:
|
|
236
238
|
yield Either(
|
|
237
239
|
left=StackTraceError(
|
|
238
|
-
name=
|
|
240
|
+
name=pipeline_details.job_id,
|
|
239
241
|
error=f"Failed to yield pipeline status: {exc}",
|
|
240
242
|
stackTrace=traceback.format_exc(),
|
|
241
243
|
)
|
|
242
244
|
)
|
|
243
245
|
|
|
246
|
+
def _process_and_validate_column_lineage(
|
|
247
|
+
self,
|
|
248
|
+
column_lineage: List[Tuple[str, str]],
|
|
249
|
+
from_entity: Table,
|
|
250
|
+
to_entity: Table,
|
|
251
|
+
) -> List[ColumnLineage]:
|
|
252
|
+
"""
|
|
253
|
+
Process and validate column lineage
|
|
254
|
+
"""
|
|
255
|
+
processed_column_lineage = []
|
|
256
|
+
if column_lineage:
|
|
257
|
+
for column_tuple in column_lineage or []:
|
|
258
|
+
try:
|
|
259
|
+
if len(column_tuple) < 2:
|
|
260
|
+
logger.debug(f"Skipping invalid column tuple: {column_tuple}")
|
|
261
|
+
continue
|
|
262
|
+
|
|
263
|
+
source_col = column_tuple[0]
|
|
264
|
+
target_col = column_tuple[-1]
|
|
265
|
+
|
|
266
|
+
if not source_col or not target_col:
|
|
267
|
+
logger.debug(
|
|
268
|
+
f"Skipping column tuple with empty values: source={source_col}, "
|
|
269
|
+
f"target={target_col}, to_entity={to_entity.name}"
|
|
270
|
+
)
|
|
271
|
+
continue
|
|
272
|
+
|
|
273
|
+
from_column = get_column_fqn(
|
|
274
|
+
table_entity=from_entity, column=str(source_col)
|
|
275
|
+
)
|
|
276
|
+
to_column = get_column_fqn(
|
|
277
|
+
table_entity=to_entity,
|
|
278
|
+
column=str(target_col),
|
|
279
|
+
)
|
|
280
|
+
if from_column and to_column:
|
|
281
|
+
processed_column_lineage.append(
|
|
282
|
+
ColumnLineage(
|
|
283
|
+
fromColumns=[from_column],
|
|
284
|
+
toColumn=to_column,
|
|
285
|
+
)
|
|
286
|
+
)
|
|
287
|
+
except Exception as err:
|
|
288
|
+
logger.warning(
|
|
289
|
+
f"Error processing column lineage {column_tuple}: {err}"
|
|
290
|
+
)
|
|
291
|
+
logger.debug(traceback.format_exc())
|
|
292
|
+
continue
|
|
293
|
+
if not processed_column_lineage:
|
|
294
|
+
logger.warning(
|
|
295
|
+
f"No column lineage found for {from_entity.name} to {to_entity.name}"
|
|
296
|
+
)
|
|
297
|
+
return processed_column_lineage or []
|
|
298
|
+
|
|
244
299
|
def yield_pipeline_lineage_details(
|
|
245
300
|
self, pipeline_details: DataBrickPipelineDetails
|
|
246
301
|
) -> Iterable[Either[AddLineageRequest]]:
|
|
247
|
-
|
|
302
|
+
try:
|
|
303
|
+
pipeline_fqn = fqn.build(
|
|
304
|
+
metadata=self.metadata,
|
|
305
|
+
entity_type=Pipeline,
|
|
306
|
+
service_name=self.context.get().pipeline_service,
|
|
307
|
+
pipeline_name=self.context.get().pipeline,
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
pipeline_entity = self.metadata.get_by_name(
|
|
311
|
+
entity=Pipeline, fqn=pipeline_fqn
|
|
312
|
+
)
|
|
313
|
+
|
|
314
|
+
table_lineage_list = self.client.get_table_lineage(
|
|
315
|
+
job_id=pipeline_details.job_id
|
|
316
|
+
)
|
|
317
|
+
if table_lineage_list:
|
|
318
|
+
for table_lineage in table_lineage_list:
|
|
319
|
+
source_table_full_name = table_lineage.get("source_table_full_name")
|
|
320
|
+
target_table_full_name = table_lineage.get("target_table_full_name")
|
|
321
|
+
if source_table_full_name and target_table_full_name:
|
|
322
|
+
source = fqn.split_table_name(source_table_full_name)
|
|
323
|
+
target = fqn.split_table_name(target_table_full_name)
|
|
324
|
+
for dbservicename in self.get_db_service_names() or ["*"]:
|
|
325
|
+
|
|
326
|
+
from_entity = self.metadata.get_by_name(
|
|
327
|
+
entity=Table,
|
|
328
|
+
fqn=fqn.build(
|
|
329
|
+
metadata=self.metadata,
|
|
330
|
+
entity_type=Table,
|
|
331
|
+
table_name=source.get("table"),
|
|
332
|
+
database_name=source.get("database"),
|
|
333
|
+
schema_name=source.get("database_schema"),
|
|
334
|
+
service_name=dbservicename,
|
|
335
|
+
),
|
|
336
|
+
)
|
|
337
|
+
|
|
338
|
+
if from_entity is None:
|
|
339
|
+
continue
|
|
340
|
+
|
|
341
|
+
to_entity = self.metadata.get_by_name(
|
|
342
|
+
entity=Table,
|
|
343
|
+
fqn=fqn.build(
|
|
344
|
+
metadata=self.metadata,
|
|
345
|
+
entity_type=Table,
|
|
346
|
+
table_name=target.get("table"),
|
|
347
|
+
database_name=target.get("database"),
|
|
348
|
+
schema_name=target.get("database_schema"),
|
|
349
|
+
service_name=dbservicename,
|
|
350
|
+
),
|
|
351
|
+
)
|
|
352
|
+
|
|
353
|
+
if to_entity is None:
|
|
354
|
+
continue
|
|
355
|
+
|
|
356
|
+
processed_column_lineage = (
|
|
357
|
+
self._process_and_validate_column_lineage(
|
|
358
|
+
column_lineage=self.client.get_column_lineage(
|
|
359
|
+
job_id=pipeline_details.job_id,
|
|
360
|
+
TableKey=(
|
|
361
|
+
source_table_full_name,
|
|
362
|
+
target_table_full_name,
|
|
363
|
+
),
|
|
364
|
+
),
|
|
365
|
+
from_entity=from_entity,
|
|
366
|
+
to_entity=to_entity,
|
|
367
|
+
)
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
lineage_details = LineageDetails(
|
|
371
|
+
pipeline=EntityReference(
|
|
372
|
+
id=pipeline_entity.id.root, type="pipeline"
|
|
373
|
+
),
|
|
374
|
+
source=LineageSource.PipelineLineage,
|
|
375
|
+
columnsLineage=processed_column_lineage,
|
|
376
|
+
)
|
|
377
|
+
|
|
378
|
+
yield Either(
|
|
379
|
+
right=AddLineageRequest(
|
|
380
|
+
edge=EntitiesEdge(
|
|
381
|
+
fromEntity=EntityReference(
|
|
382
|
+
id=from_entity.id,
|
|
383
|
+
type="table",
|
|
384
|
+
),
|
|
385
|
+
toEntity=EntityReference(
|
|
386
|
+
id=to_entity.id,
|
|
387
|
+
type="table",
|
|
388
|
+
),
|
|
389
|
+
lineageDetails=lineage_details,
|
|
390
|
+
)
|
|
391
|
+
)
|
|
392
|
+
)
|
|
393
|
+
|
|
394
|
+
else:
|
|
395
|
+
logger.debug(
|
|
396
|
+
f"No source or target table full name found for job {pipeline_details.job_id}"
|
|
397
|
+
)
|
|
398
|
+
else:
|
|
399
|
+
logger.debug(
|
|
400
|
+
f"No table lineage found for job {pipeline_details.job_id}"
|
|
401
|
+
)
|
|
402
|
+
except Exception as exc:
|
|
403
|
+
yield Either(
|
|
404
|
+
left=StackTraceError(
|
|
405
|
+
name=pipeline_details.job_id,
|
|
406
|
+
error=f"Wild error ingesting pipeline lineage {pipeline_details} - {exc}",
|
|
407
|
+
stackTrace=traceback.format_exc(),
|
|
408
|
+
)
|
|
409
|
+
)
|
|
@@ -12,13 +12,14 @@
|
|
|
12
12
|
Nifi source to extract metadata
|
|
13
13
|
"""
|
|
14
14
|
import traceback
|
|
15
|
-
from
|
|
15
|
+
from collections import defaultdict
|
|
16
|
+
from typing import Dict, Iterable, List, Optional
|
|
16
17
|
|
|
17
18
|
from pydantic import BaseModel, ValidationError
|
|
18
19
|
|
|
19
20
|
from metadata.generated.schema.api.data.createPipeline import CreatePipelineRequest
|
|
20
21
|
from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
|
|
21
|
-
from metadata.generated.schema.entity.data.pipeline import Task
|
|
22
|
+
from metadata.generated.schema.entity.data.pipeline import Pipeline, Task
|
|
22
23
|
from metadata.generated.schema.entity.services.connections.pipeline.nifiConnection import (
|
|
23
24
|
NifiConnection,
|
|
24
25
|
)
|
|
@@ -30,6 +31,9 @@ from metadata.generated.schema.type.basic import (
|
|
|
30
31
|
FullyQualifiedEntityName,
|
|
31
32
|
SourceUrl,
|
|
32
33
|
)
|
|
34
|
+
from metadata.generated.schema.type.entityLineage import EntitiesEdge, LineageDetails
|
|
35
|
+
from metadata.generated.schema.type.entityLineage import Source as LineageSource
|
|
36
|
+
from metadata.generated.schema.type.entityReference import EntityReference
|
|
33
37
|
from metadata.ingestion.api.models import Either
|
|
34
38
|
from metadata.ingestion.api.steps import InvalidSourceException
|
|
35
39
|
from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
|
|
@@ -43,6 +47,7 @@ logger = ingestion_logger()
|
|
|
43
47
|
|
|
44
48
|
PROCESS_GROUP_FLOW = "processGroupFlow"
|
|
45
49
|
BREADCRUMB = "breadcrumb"
|
|
50
|
+
PARENT_BREADCRUMB = "parentBreadcrumb"
|
|
46
51
|
|
|
47
52
|
|
|
48
53
|
class NifiProcessor(BaseModel):
|
|
@@ -77,6 +82,7 @@ class NifiPipelineDetails(BaseModel):
|
|
|
77
82
|
uri: str
|
|
78
83
|
processors: List[NifiProcessor]
|
|
79
84
|
connections: List[NifiProcessorConnections]
|
|
85
|
+
parent_pipeline_id: Optional[str] = None
|
|
80
86
|
|
|
81
87
|
|
|
82
88
|
class NifiSource(PipelineServiceSource):
|
|
@@ -85,6 +91,11 @@ class NifiSource(PipelineServiceSource):
|
|
|
85
91
|
Pipeline metadata from Airflow's metadata db
|
|
86
92
|
"""
|
|
87
93
|
|
|
94
|
+
def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
|
|
95
|
+
super().__init__(config, metadata)
|
|
96
|
+
self.pipeline_parents_mapping: Dict[str, List[str]] = defaultdict(list)
|
|
97
|
+
self.process_group_connections: List[NifiProcessorConnections] = []
|
|
98
|
+
|
|
88
99
|
@classmethod
|
|
89
100
|
def create(
|
|
90
101
|
cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
|
|
@@ -220,7 +231,7 @@ class NifiSource(PipelineServiceSource):
|
|
|
220
231
|
"""Get List of all pipelines"""
|
|
221
232
|
for process_group in self.connection.list_process_groups():
|
|
222
233
|
try:
|
|
223
|
-
|
|
234
|
+
nifi_pipeline_details = NifiPipelineDetails(
|
|
224
235
|
id_=process_group[PROCESS_GROUP_FLOW].get("id"),
|
|
225
236
|
name=process_group[PROCESS_GROUP_FLOW][BREADCRUMB][BREADCRUMB].get(
|
|
226
237
|
"name"
|
|
@@ -232,7 +243,18 @@ class NifiSource(PipelineServiceSource):
|
|
|
232
243
|
connections=self._get_connections_from_process_group(
|
|
233
244
|
process_group=process_group
|
|
234
245
|
),
|
|
246
|
+
parent_pipeline_id=process_group[PROCESS_GROUP_FLOW][BREADCRUMB]
|
|
247
|
+
.get(PARENT_BREADCRUMB, {})
|
|
248
|
+
.get("id"),
|
|
249
|
+
)
|
|
250
|
+
if nifi_pipeline_details.parent_pipeline_id:
|
|
251
|
+
self.pipeline_parents_mapping[nifi_pipeline_details.id_].append(
|
|
252
|
+
nifi_pipeline_details.parent_pipeline_id
|
|
253
|
+
)
|
|
254
|
+
self.process_group_connections.extend(
|
|
255
|
+
self.get_process_group_connections(process_group)
|
|
235
256
|
)
|
|
257
|
+
yield nifi_pipeline_details
|
|
236
258
|
except (ValueError, KeyError, ValidationError) as err:
|
|
237
259
|
logger.debug(traceback.format_exc())
|
|
238
260
|
logger.warning(
|
|
@@ -244,5 +266,113 @@ class NifiSource(PipelineServiceSource):
|
|
|
244
266
|
f"Wild error encountered when trying to get pipelines from Process Group {process_group} - {err}."
|
|
245
267
|
)
|
|
246
268
|
|
|
269
|
+
def get_process_group_connections(
|
|
270
|
+
self, process_group: dict
|
|
271
|
+
) -> List[NifiProcessorConnections]:
|
|
272
|
+
"""Get all connections for a process group"""
|
|
273
|
+
connections_list = (
|
|
274
|
+
process_group.get(PROCESS_GROUP_FLOW).get("flow").get("connections")
|
|
275
|
+
)
|
|
276
|
+
connections = []
|
|
277
|
+
|
|
278
|
+
for connection in connections_list:
|
|
279
|
+
try:
|
|
280
|
+
source = connection.get("component", {}).get("source", {})
|
|
281
|
+
destination = connection.get("component", {}).get("destination", {})
|
|
282
|
+
if (
|
|
283
|
+
source.get("type") == "OUTPUT_PORT"
|
|
284
|
+
and destination.get("type") == "INPUT_PORT"
|
|
285
|
+
and source.get("groupId") != destination.get("groupId")
|
|
286
|
+
):
|
|
287
|
+
connections.append(
|
|
288
|
+
NifiProcessorConnections(
|
|
289
|
+
id_=connection.get("id"),
|
|
290
|
+
source_id=source.get("groupId"),
|
|
291
|
+
destination_id=destination.get("groupId"),
|
|
292
|
+
)
|
|
293
|
+
)
|
|
294
|
+
except Exception as err:
|
|
295
|
+
logger.debug(traceback.format_exc())
|
|
296
|
+
logger.warning(
|
|
297
|
+
f"Wild error encountered when trying to get process group connections from \
|
|
298
|
+
{process_group[PROCESS_GROUP_FLOW][BREADCRUMB][BREADCRUMB].get('name')} - {err}."
|
|
299
|
+
)
|
|
300
|
+
return connections
|
|
301
|
+
|
|
302
|
+
def yield_pipeline_bulk_lineage_details(
|
|
303
|
+
self,
|
|
304
|
+
) -> Iterable[Either[AddLineageRequest]]:
|
|
305
|
+
"""
|
|
306
|
+
Process the pipeline bulk lineage details
|
|
307
|
+
"""
|
|
308
|
+
# Process the lineage between parent and child pipelines
|
|
309
|
+
for pipeline_id, parent_pipeline_ids in self.pipeline_parents_mapping.items():
|
|
310
|
+
to_entity = self.metadata.get_by_name(
|
|
311
|
+
entity=Pipeline,
|
|
312
|
+
fqn=f"{self.context.get().pipeline_service}.{pipeline_id}",
|
|
313
|
+
)
|
|
314
|
+
if not to_entity:
|
|
315
|
+
logger.warning(
|
|
316
|
+
f"Pipeline {pipeline_id} not found in metadata, skipping lineage"
|
|
317
|
+
)
|
|
318
|
+
continue
|
|
319
|
+
for parent_pipeline_id in parent_pipeline_ids:
|
|
320
|
+
from_entity = self.metadata.get_by_name(
|
|
321
|
+
entity=Pipeline,
|
|
322
|
+
fqn=f"{self.context.get().pipeline_service}.{parent_pipeline_id}",
|
|
323
|
+
)
|
|
324
|
+
if not from_entity:
|
|
325
|
+
logger.warning(
|
|
326
|
+
f"Parent Pipeline {parent_pipeline_id} not found in metadata, skipping lineage"
|
|
327
|
+
)
|
|
328
|
+
continue
|
|
329
|
+
yield Either(
|
|
330
|
+
right=AddLineageRequest(
|
|
331
|
+
edge=EntitiesEdge(
|
|
332
|
+
fromEntity=EntityReference(
|
|
333
|
+
id=from_entity.id, type="pipeline"
|
|
334
|
+
),
|
|
335
|
+
toEntity=EntityReference(id=to_entity.id, type="pipeline"),
|
|
336
|
+
lineageDetails=LineageDetails(
|
|
337
|
+
source=LineageSource.PipelineLineage
|
|
338
|
+
),
|
|
339
|
+
)
|
|
340
|
+
)
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
# Process the lineage between connected pipelines
|
|
344
|
+
for connection in self.process_group_connections:
|
|
345
|
+
from_entity = self.metadata.get_by_name(
|
|
346
|
+
entity=Pipeline,
|
|
347
|
+
fqn=f"{self.context.get().pipeline_service}.{connection.source_id}",
|
|
348
|
+
)
|
|
349
|
+
if not from_entity:
|
|
350
|
+
logger.warning(
|
|
351
|
+
f"Pipeline {connection.source_id} not found in metadata, skipping lineage"
|
|
352
|
+
)
|
|
353
|
+
continue
|
|
354
|
+
|
|
355
|
+
to_entity = self.metadata.get_by_name(
|
|
356
|
+
entity=Pipeline,
|
|
357
|
+
fqn=f"{self.context.get().pipeline_service}.{connection.destination_id}",
|
|
358
|
+
)
|
|
359
|
+
if not to_entity:
|
|
360
|
+
logger.warning(
|
|
361
|
+
f"Pipeline {connection.destination_id} not found in metadata, skipping lineage"
|
|
362
|
+
)
|
|
363
|
+
continue
|
|
364
|
+
|
|
365
|
+
yield Either(
|
|
366
|
+
right=AddLineageRequest(
|
|
367
|
+
edge=EntitiesEdge(
|
|
368
|
+
fromEntity=EntityReference(id=from_entity.id, type="pipeline"),
|
|
369
|
+
toEntity=EntityReference(id=to_entity.id, type="pipeline"),
|
|
370
|
+
lineageDetails=LineageDetails(
|
|
371
|
+
source=LineageSource.PipelineLineage
|
|
372
|
+
),
|
|
373
|
+
)
|
|
374
|
+
)
|
|
375
|
+
)
|
|
376
|
+
|
|
247
377
|
def get_pipeline_name(self, pipeline_details: NifiPipelineDetails) -> str:
|
|
248
378
|
return pipeline_details.name
|
|
@@ -41,9 +41,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
|
|
|
41
41
|
from metadata.ingestion.api.models import Either
|
|
42
42
|
from metadata.ingestion.api.steps import Source
|
|
43
43
|
from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
|
|
44
|
-
from metadata.ingestion.connections.test_connections import (
|
|
45
|
-
raise_test_connection_exception,
|
|
46
|
-
)
|
|
47
44
|
from metadata.ingestion.models.delete_entity import DeleteEntity
|
|
48
45
|
from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
|
|
49
46
|
from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
|
|
@@ -55,7 +52,7 @@ from metadata.ingestion.models.topology import (
|
|
|
55
52
|
TopologyNode,
|
|
56
53
|
)
|
|
57
54
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
58
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
55
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
59
56
|
from metadata.ingestion.source.pipeline.openlineage.models import TableDetails
|
|
60
57
|
from metadata.ingestion.source.pipeline.openlineage.utils import FQNNotFoundException
|
|
61
58
|
from metadata.utils import fqn
|
|
@@ -137,6 +134,7 @@ class PipelineServiceTopology(ServiceTopology):
|
|
|
137
134
|
nullable=True,
|
|
138
135
|
),
|
|
139
136
|
],
|
|
137
|
+
post_process=["process_pipeline_bulk_lineage"],
|
|
140
138
|
)
|
|
141
139
|
|
|
142
140
|
|
|
@@ -316,6 +314,23 @@ class PipelineServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
316
314
|
else:
|
|
317
315
|
yield lineage
|
|
318
316
|
|
|
317
|
+
def yield_pipeline_bulk_lineage_details(self) -> Iterable[AddLineageRequest]:
|
|
318
|
+
"""Method to yield the bulk pipeline lineage details"""
|
|
319
|
+
|
|
320
|
+
def process_pipeline_bulk_lineage(self) -> Iterable[AddLineageRequest]:
|
|
321
|
+
"""Method to process the bulk pipeline lineage"""
|
|
322
|
+
if self.source_config.includeLineage:
|
|
323
|
+
for lineage in self.yield_pipeline_bulk_lineage_details() or []:
|
|
324
|
+
if lineage.right is not None:
|
|
325
|
+
yield Either(
|
|
326
|
+
right=OMetaLineageRequest(
|
|
327
|
+
lineage_request=lineage.right,
|
|
328
|
+
override_lineage=self.source_config.overrideLineage,
|
|
329
|
+
)
|
|
330
|
+
)
|
|
331
|
+
else:
|
|
332
|
+
yield lineage
|
|
333
|
+
|
|
319
334
|
def _get_table_fqn_from_om(self, table_details: TableDetails) -> Optional[str]:
|
|
320
335
|
"""
|
|
321
336
|
Based on partial schema and table names look for matching table object in open metadata.
|
|
@@ -373,11 +388,9 @@ class PipelineServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
373
388
|
yield pipeline_detail
|
|
374
389
|
|
|
375
390
|
def test_connection(self) -> None:
|
|
376
|
-
|
|
377
|
-
result = test_connection_fn(
|
|
391
|
+
test_connection_common(
|
|
378
392
|
self.metadata, self.connection_obj, self.service_connection
|
|
379
393
|
)
|
|
380
|
-
raise_test_connection_exception(result)
|
|
381
394
|
|
|
382
395
|
def register_record(self, pipeline_request: CreatePipelineRequest) -> None:
|
|
383
396
|
"""Mark the pipeline record as scanned and update the pipeline_source_state"""
|
|
@@ -41,9 +41,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
|
|
|
41
41
|
from metadata.ingestion.api.models import Either
|
|
42
42
|
from metadata.ingestion.api.steps import Source
|
|
43
43
|
from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
|
|
44
|
-
from metadata.ingestion.connections.test_connections import (
|
|
45
|
-
raise_test_connection_exception,
|
|
46
|
-
)
|
|
47
44
|
from metadata.ingestion.models.delete_entity import DeleteEntity
|
|
48
45
|
from metadata.ingestion.models.search_index_data import OMetaIndexSampleData
|
|
49
46
|
from metadata.ingestion.models.topology import (
|
|
@@ -53,7 +50,7 @@ from metadata.ingestion.models.topology import (
|
|
|
53
50
|
TopologyNode,
|
|
54
51
|
)
|
|
55
52
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
56
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
53
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
57
54
|
from metadata.utils import fqn
|
|
58
55
|
from metadata.utils.filters import filter_by_search_index
|
|
59
56
|
from metadata.utils.helpers import retry_with_docker_host
|
|
@@ -239,11 +236,9 @@ class SearchServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
239
236
|
"""Nothing to prepare by default"""
|
|
240
237
|
|
|
241
238
|
def test_connection(self) -> None:
|
|
242
|
-
|
|
243
|
-
result = test_connection_fn(
|
|
239
|
+
test_connection_common(
|
|
244
240
|
self.metadata, self.connection_obj, self.service_connection
|
|
245
241
|
)
|
|
246
|
-
raise_test_connection_exception(result)
|
|
247
242
|
|
|
248
243
|
def mark_search_indexes_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
|
|
249
244
|
"""Method to mark the search index as deleted"""
|
|
@@ -40,9 +40,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
|
|
|
40
40
|
from metadata.ingestion.api.models import Either
|
|
41
41
|
from metadata.ingestion.api.steps import Source
|
|
42
42
|
from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
|
|
43
|
-
from metadata.ingestion.connections.test_connections import (
|
|
44
|
-
raise_test_connection_exception,
|
|
45
|
-
)
|
|
46
43
|
from metadata.ingestion.models.delete_entity import DeleteEntity
|
|
47
44
|
from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
|
|
48
45
|
from metadata.ingestion.models.topology import (
|
|
@@ -52,7 +49,7 @@ from metadata.ingestion.models.topology import (
|
|
|
52
49
|
TopologyNode,
|
|
53
50
|
)
|
|
54
51
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
55
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
52
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
56
53
|
from metadata.ingestion.source.database.glue.models import Column
|
|
57
54
|
from metadata.readers.dataframe.models import DatalakeTableSchemaWrapper
|
|
58
55
|
from metadata.readers.dataframe.reader_factory import SupportedTypes
|
|
@@ -240,11 +237,9 @@ class StorageServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
240
237
|
self.container_source_state.add(container_fqn)
|
|
241
238
|
|
|
242
239
|
def test_connection(self) -> None:
|
|
243
|
-
|
|
244
|
-
result = test_connection_fn(
|
|
240
|
+
test_connection_common(
|
|
245
241
|
self.metadata, self.connection_obj, self.service_connection
|
|
246
242
|
)
|
|
247
|
-
raise_test_connection_exception(result)
|
|
248
243
|
|
|
249
244
|
def mark_containers_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
|
|
250
245
|
"""Method to mark the containers as deleted"""
|