From a08adff152137e38a1729f25676e33203f3ceb4b Mon Sep 17 00:00:00 2001 From: Charles d'Avernas Date: Mon, 21 Jul 2025 12:05:58 +0200 Subject: [PATCH] fix(Operator): Fixed the operator to ignore workflows and workflow instances marked with mismatching `synapse.io/operator` labels Signed-off-by: Charles d'Avernas --- src/operator/Synapse.Operator/Services/WorkflowController.cs | 4 ++-- .../Synapse.Operator/Services/WorkflowInstanceController.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/operator/Synapse.Operator/Services/WorkflowController.cs b/src/operator/Synapse.Operator/Services/WorkflowController.cs index 651101c3..940c73bc 100644 --- a/src/operator/Synapse.Operator/Services/WorkflowController.cs +++ b/src/operator/Synapse.Operator/Services/WorkflowController.cs @@ -95,7 +95,7 @@ protected virtual async Task TryClaimAsync(Workflow workflow, Cancellation { ArgumentNullException.ThrowIfNull(workflow); if (this.Operator == null) throw new Exception("The controller must be started before attempting any operation"); - if (workflow.Metadata.Labels != null && workflow.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName) && operatorQualifiedName == this.Operator.Resource.GetQualifiedName()) return true; + if (workflow.Metadata.Labels != null && workflow.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName(); try { var originalResource = workflow.Clone(); @@ -120,7 +120,7 @@ protected virtual async Task TryClaimAsync(Workflow workflow, Cancellation protected virtual async Task TryReleaseAsync(Workflow workflow, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(workflow); - if (workflow.Metadata.Labels != null && workflow.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName) && operatorQualifiedName == this.Operator.Resource.GetQualifiedName()) return true; + if (workflow.Metadata.Labels != null && workflow.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName(); try { var originalResource = workflow.Clone(); diff --git a/src/operator/Synapse.Operator/Services/WorkflowInstanceController.cs b/src/operator/Synapse.Operator/Services/WorkflowInstanceController.cs index a70c4c47..667122e0 100644 --- a/src/operator/Synapse.Operator/Services/WorkflowInstanceController.cs +++ b/src/operator/Synapse.Operator/Services/WorkflowInstanceController.cs @@ -87,7 +87,7 @@ protected virtual async Task CreateWorkflowInstanceHand protected virtual async Task TryClaimAsync(WorkflowInstance resource, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(resource); - if (resource.Metadata.Labels != null && resource.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName) && operatorQualifiedName == this.Operator.Resource.GetQualifiedName()) return true; + if (resource.Metadata.Labels != null && resource.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName(); try { var originalResource = resource.Clone(); @@ -112,7 +112,7 @@ protected virtual async Task TryClaimAsync(WorkflowInstance resource, Canc protected virtual async Task TryReleaseAsync(WorkflowInstance resource, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(resource); - if (resource.Metadata.Labels != null && resource.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName) && operatorQualifiedName == this.Operator.Resource.GetQualifiedName()) return true; + if (resource.Metadata.Labels != null && resource.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName(); try { var originalResource = resource.Clone();