Skip to content

Commit 2f93d0d

Browse files
authored
Merge pull request #528 from serverlessworkflow/fix-operator-selectors
Fixed the `WorkflowInstanceController` to ignore instances of unselected workflows
2 parents 44785ed + 2b05387 commit 2f93d0d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/operator/Synapse.Operator/Services/WorkflowInstanceController.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,15 @@ protected override async Task OnResourceDeletedAsync(WorkflowInstance workflowIn
223223
{
224224
ArgumentNullException.ThrowIfNull(workflowInstance);
225225
if (workflowInstance.Metadata.Labels != null && workflowInstance.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out var operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName();
226-
if (this.Workflows.TryGetValue(this.GetResourceCacheKey(workflowInstance.Spec.Definition.Name, workflowInstance.Spec.Definition.Namespace), out var workflow) && workflow != null
227-
&& workflow.Metadata.Labels != null && workflow.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName();
226+
if (this.Workflows.TryGetValue(this.GetResourceCacheKey(workflowInstance.Spec.Definition.Name, workflowInstance.Spec.Definition.Namespace), out var workflow))
227+
{
228+
if (workflow.Metadata.Labels != null && workflow.Metadata.Labels.TryGetValue(SynapseDefaults.Resources.Labels.Operator, out operatorQualifiedName)) return operatorQualifiedName == this.Operator.Resource.GetQualifiedName();
229+
}
230+
else
231+
{
232+
// if we are not able to retrieve the workflow, we assume it has been ignored by selectors, and thus cannot be claimed
233+
return false;
234+
}
228235
return null;
229236
}
230237

0 commit comments

Comments
 (0)