diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js index ba87e01f192..4dbea2d32c4 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js @@ -140,7 +140,7 @@ export const testServiceCreationAndIngestion = ( cy.get('[data-testid="success-line"]', { timeout: 15000 }).should( 'be.visible' ); - cy.contains(`"${serviceName}_metadata"`).should('be.visible'); + cy.contains(`${serviceName}_metadata`).should('be.visible'); cy.contains('has been created and deployed successfully').should( 'be.visible' ); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx index cfabcce6ff6..b2685daac16 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx @@ -421,6 +421,24 @@ const ConfigureIngestion = ({ const getMetadataFields = () => { return ( <> + + +

+ Name that identifies this pipeline instance uniquely. +

+ handleIngestionName(e.target.value)} + /> + {getSeparator('')} +
{getMetadataFilterPatternField()}
); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx index 7b6fa3642f0..8b51d6f4d44 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx @@ -113,7 +113,8 @@ const Ingestion: React.FC = ({ if (ingestionList.length > 0) { return pipelineType.reduce((prev, curr) => { if ( - curr !== PipelineType.Profiler && + // Prevent adding multiple usage pipeline + curr === PipelineType.Usage && ingestionList.find((d) => d.pipelineType === curr) ) { return prev; @@ -263,12 +264,21 @@ const Ingestion: React.FC = ({ const getAddIngestionElement = () => { const types = getIngestionPipelineTypeOption(); let element: JSX.Element | null = null; + // Check if service has atleast one metadata pipeline available or not + const hasMetadata = ingestionList.find( + (ingestion) => ingestion.pipelineType === PipelineType.Metadata + ); if (types.length) { - if (types[0] === PipelineType.Metadata || types.length === 1) { - element = getAddIngestionButton(types[0]); - } else { + // if service has metedata then show all available option + if (hasMetadata) { element = getAddIngestionDropdown(types); + } else { + /** + * If service does not have any metedata pipeline then + * show only option for metadata ingestion + */ + element = getAddIngestionButton(PipelineType.Metadata); } } diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx index 47cf400802d..fd8cfe8a434 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx @@ -484,7 +484,11 @@ export const getIngestionName = ( serviceName: string, type: IngestionPipelineType ) => { - if (type === IngestionPipelineType.Profiler) { + if ( + [IngestionPipelineType.Profiler, IngestionPipelineType.Metadata].includes( + type + ) + ) { return `${serviceName}_${type}_${cryptoRandomString({ length: 8, type: 'alphanumeric',