From 0407f7824c3e24c156ac2eaeb3a277350ea81f0c Mon Sep 17 00:00:00 2001 From: Walter Vos Date: Mon, 1 May 2023 19:51:48 +0200 Subject: [PATCH 1/2] Update DurableOrchestrationClient.py quote event name when raising event --- azure/durable_functions/models/DurableOrchestrationClient.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure/durable_functions/models/DurableOrchestrationClient.py b/azure/durable_functions/models/DurableOrchestrationClient.py index 6b473c2c..69364a17 100644 --- a/azure/durable_functions/models/DurableOrchestrationClient.py +++ b/azure/durable_functions/models/DurableOrchestrationClient.py @@ -638,7 +638,7 @@ def _get_raise_event_url( self, instance_id: str, event_name: str, task_hub_name: Optional[str], connection_name: Optional[str]) -> str: request_url = f'{self._orchestration_bindings.rpc_base_url}' \ - f'instances/{instance_id}/raiseEvent/{event_name}' + f'instances/{instance_id}/raiseEvent/{quote(event_name)}' query: List[str] = [] if task_hub_name: From 337adf9d3fb0edc09982f425ba1e5bfd325e0e7c Mon Sep 17 00:00:00 2001 From: Walter Vos Date: Wed, 3 May 2023 12:24:50 +0200 Subject: [PATCH 2/2] Quote event_name when wait starts, and use empty safe string --- azure/durable_functions/models/DurableOrchestrationClient.py | 2 +- azure/durable_functions/models/DurableOrchestrationContext.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/azure/durable_functions/models/DurableOrchestrationClient.py b/azure/durable_functions/models/DurableOrchestrationClient.py index 69364a17..294e7fda 100644 --- a/azure/durable_functions/models/DurableOrchestrationClient.py +++ b/azure/durable_functions/models/DurableOrchestrationClient.py @@ -638,7 +638,7 @@ def _get_raise_event_url( self, instance_id: str, event_name: str, task_hub_name: Optional[str], connection_name: Optional[str]) -> str: request_url = f'{self._orchestration_bindings.rpc_base_url}' \ - f'instances/{instance_id}/raiseEvent/{quote(event_name)}' + f'instances/{instance_id}/raiseEvent/{quote(event_name, safe="")}' query: List[str] = [] if task_hub_name: diff --git a/azure/durable_functions/models/DurableOrchestrationContext.py b/azure/durable_functions/models/DurableOrchestrationContext.py index 194bcae2..a9a27aef 100644 --- a/azure/durable_functions/models/DurableOrchestrationContext.py +++ b/azure/durable_functions/models/DurableOrchestrationContext.py @@ -1,4 +1,5 @@ from collections import defaultdict +from urllib.parse import quote from azure.durable_functions.models.actions.SignalEntityAction import SignalEntityAction from azure.durable_functions.models.actions.CallEntityAction import CallEntityAction from azure.durable_functions.models.Task import TaskBase, TimerTask @@ -535,7 +536,7 @@ def wait_for_external_event(self, name: str) -> TaskBase: Task to wait for the event """ action = WaitForExternalEventAction(name) - task = self._generate_task(action, id_=name) + task = self._generate_task(action, id_=quote(name, safe="")) return task def continue_as_new(self, input_: Any):