From 882891a9353f165e1c09aed628709c0ca1fc4e7d Mon Sep 17 00:00:00 2001 From: Ram Narayan Balaji Date: Wed, 24 Sep 2025 10:46:28 +0530 Subject: [PATCH] Remove Old Deployments of Periodic Batch Entity Trigger and use hiphen to trigger to avoid accidental triggering --- .../governance/workflows/WorkflowHandler.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java index 4252941cb43..995f80a979b 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java @@ -271,6 +271,41 @@ public class WorkflowHandler { triggerWorkflowKey, e.getMessage()); } + + // Step 3: Delete old deployments to prevent confusion with old process definitions + // This is critical for periodicBatchEntity triggers that may have changed format + try { + // Delete old trigger deployments without entity type suffix + List oldTriggerDefinitions = + repositoryService + .createProcessDefinitionQuery() + .processDefinitionKey(triggerWorkflowKey) + .list(); + + for (ProcessDefinition pd : oldTriggerDefinitions) { + LOG.info( + "Removing old trigger deployment: {} (version: {})", pd.getKey(), pd.getVersion()); + repositoryService.deleteDeployment(pd.getDeploymentId(), true); + } + + // Delete old main workflow deployments + List oldMainDefinitions = + repositoryService + .createProcessDefinitionQuery() + .processDefinitionKey(workflowName) + .list(); + + for (ProcessDefinition pd : oldMainDefinitions) { + LOG.info( + "Removing old main workflow deployment: {} (version: {})", + pd.getKey(), + pd.getVersion()); + repositoryService.deleteDeployment(pd.getDeploymentId(), true); + } + } catch (Exception e) { + LOG.warn( + "Error removing old deployments for workflow {}: {}", workflowName, e.getMessage()); + } } // Deploy Main Workflow @@ -1035,7 +1070,7 @@ public class WorkflowHandler { List processDefinitions = repositoryService .createProcessDefinitionQuery() - .processDefinitionKeyLike(baseProcessKey + "%") + .processDefinitionKeyLike(baseProcessKey + "-%") .latestVersion() .list();