diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts index d2bd1933d4e9..865893d18739 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/VersionPages/EntityVersionPages.spec.ts @@ -79,6 +79,9 @@ test.describe('Entity Version pages', () => { const domain = EntityDataClass.domain1.responseData; for (const entity of entities) { + if (await entity.exists(apiContext)) { + await entity.delete(apiContext); + } await entity.create(apiContext); const dataTypeDisplayPath = getEntityDataTypeDisplayPatch(entity); await entity.patch({ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ApiEndpointClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ApiEndpointClass.ts index b7abb9943a9c..1967d9926b4f 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ApiEndpointClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ApiEndpointClass.ts @@ -296,6 +296,15 @@ export class ApiEndpointClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/apiServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/apiServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ContainerClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ContainerClass.ts index e366b7674585..4f852f7fbb6d 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ContainerClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/ContainerClass.ts @@ -273,6 +273,15 @@ export class ContainerClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/storageServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/storageServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardClass.ts index 2553102aca8c..2573c9022882 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardClass.ts @@ -236,6 +236,15 @@ export class DashboardClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/dashboardServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const chartResponse = await apiContext.delete( `/api/v1/charts/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardDataModelClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardDataModelClass.ts index 8cf71bd00cbe..bfe5161ca3b1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardDataModelClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DashboardDataModelClass.ts @@ -216,6 +216,15 @@ export class DashboardDataModelClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/dashboardServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/dashboardServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DirectoryClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DirectoryClass.ts index 68971a8b38a8..fc8f731ae467 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DirectoryClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/DirectoryClass.ts @@ -151,6 +151,15 @@ export class DirectoryClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/driveServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/driveServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/EntityClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/EntityClass.ts index 59b79cbbb988..41cf536bde47 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/EntityClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/EntityClass.ts @@ -90,6 +90,10 @@ export class EntityClass { return this.type; } + async exists(_apiContext: APIRequestContext): Promise { + return false; + } + public get() { return {}; } diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/FileClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/FileClass.ts index 1208cabb2678..fd092c18b94c 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/FileClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/FileClass.ts @@ -211,6 +211,15 @@ export class FileClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/driveServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/driveServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/MlModelClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/MlModelClass.ts index edc4fdc180a7..4633134e871f 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/MlModelClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/MlModelClass.ts @@ -169,6 +169,15 @@ export class MlModelClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/mlmodelServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/mlmodelServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/PipelineClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/PipelineClass.ts index e5c4d87e819f..34d64768268f 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/PipelineClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/PipelineClass.ts @@ -188,6 +188,15 @@ export class PipelineClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/pipelineServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/pipelineServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SearchIndexClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SearchIndexClass.ts index 8aff01621bb4..506c0a2c92e8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SearchIndexClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SearchIndexClass.ts @@ -220,6 +220,15 @@ export class SearchIndexClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/searchServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/searchServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SpreadsheetClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SpreadsheetClass.ts index 806d3eb6423a..2b863ad6e0c2 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SpreadsheetClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/SpreadsheetClass.ts @@ -164,6 +164,15 @@ export class SpreadsheetClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/driveServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/driveServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/StoredProcedureClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/StoredProcedureClass.ts index 08182571ed10..f1a6a08c813b 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/StoredProcedureClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/StoredProcedureClass.ts @@ -205,6 +205,15 @@ export class StoredProcedureClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/databaseServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/databaseServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TableClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TableClass.ts index 86a42b9ccdb8..1e25ae989a8d 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TableClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TableClass.ts @@ -535,6 +535,15 @@ export class TableClass extends EntityClass { ); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/databaseServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext, hardDelete = true) { const serviceResponse = await apiContext.delete( `/api/v1/services/databaseServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TopicClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TopicClass.ts index 1ecb6b96f0ca..73b2150c46ca 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TopicClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/TopicClass.ts @@ -213,6 +213,15 @@ export class TopicClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/messagingServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/messagingServices/name/${encodeURIComponent( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/WorksheetClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/WorksheetClass.ts index 65a174777ecb..318224819d14 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/entity/WorksheetClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/entity/WorksheetClass.ts @@ -221,6 +221,15 @@ export class WorksheetClass extends EntityClass { }); } + async exists(apiContext: APIRequestContext): Promise { + const name = this.serviceResponseData?.fullyQualifiedName ?? ''; + const res = await apiContext.get( + `/api/v1/services/driveServices/name/${encodeURIComponent(name)}` + ); + + return res.ok(); + } + async delete(apiContext: APIRequestContext) { const serviceResponse = await apiContext.delete( `/api/v1/services/driveServices/name/${encodeURIComponent(