From 7c09f0a255ac8911ca0d4ef04bb0945d1460378a Mon Sep 17 00:00:00 2001 From: bk Date: Mon, 24 Jul 2023 14:56:22 -0400 Subject: [PATCH 1/4] restruct proj --- sentry/worker.py | 26 +------------------------- sentry/workflows.py | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 25 deletions(-) create mode 100644 sentry/workflows.py diff --git a/sentry/worker.py b/sentry/worker.py index 1db0826ba..031d05c38 100644 --- a/sentry/worker.py +++ b/sentry/worker.py @@ -5,37 +5,13 @@ from datetime import timedelta import sentry_sdk -from temporalio import activity, workflow +from sentry.workflows import compose_greeting, GreetingWorkflow from temporalio.client import Client from temporalio.worker import Worker from sentry.interceptor import SentryInterceptor -@dataclass -class ComposeGreetingInput: - greeting: str - name: str - - -@activity.defn -async def compose_greeting(input: ComposeGreetingInput) -> str: - activity.logger.info("Running activity with parameter %s" % input) - return f"{input.greeting}, {input.name}!" - - -@workflow.defn -class GreetingWorkflow: - @workflow.run - async def run(self, name: str) -> str: - workflow.logger.info("Running workflow with parameter %s" % name) - return await workflow.execute_activity( - compose_greeting, - ComposeGreetingInput("Hello", name), - start_to_close_timeout=timedelta(seconds=10), - ) - - async def main(): # Uncomment the line below to see logging # logging.basicConfig(level=logging.INFO) diff --git a/sentry/workflows.py b/sentry/workflows.py new file mode 100644 index 000000000..4b5f3b268 --- /dev/null +++ b/sentry/workflows.py @@ -0,0 +1,26 @@ +from temporalio import activity, workflow +from dataclasses import dataclass +from datetime import timedelta + +@dataclass +class ComposeGreetingInput: + greeting: str + name: str + + +@activity.defn +async def compose_greeting(input: ComposeGreetingInput) -> str: + activity.logger.info("Running activity with parameter %s" % input) + return f"{input.greeting}, {input.name}!" + + +@workflow.defn +class GreetingWorkflow: + @workflow.run + async def run(self, name: str) -> str: + workflow.logger.info("Running workflow with parameter %s" % name) + return await workflow.execute_activity( + compose_greeting, + ComposeGreetingInput("Hello", name), + start_to_close_timeout=timedelta(seconds=10), + ) From 6b7f898315b93a3a6137b1fd8369141d99b9252d Mon Sep 17 00:00:00 2001 From: bk Date: Mon, 24 Jul 2023 16:19:39 -0400 Subject: [PATCH 2/4] acitivities and import updates --- sentry/activities.py | 14 ++++++++++++++ sentry/workflows.py | 12 +----------- 2 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 sentry/activities.py diff --git a/sentry/activities.py b/sentry/activities.py new file mode 100644 index 000000000..e968e456a --- /dev/null +++ b/sentry/activities.py @@ -0,0 +1,14 @@ +from dataclasses import dataclass +from temporalio import activity + + +@dataclass +class ComposeGreetingInput: + greeting: str + name: str + + +@activity.defn +async def compose_greeting(input: ComposeGreetingInput) -> str: + activity.logger.info("Running activity with parameter %s" % input) + return f"{input.greeting}, {input.name}!" diff --git a/sentry/workflows.py b/sentry/workflows.py index 4b5f3b268..84c0bd1a8 100644 --- a/sentry/workflows.py +++ b/sentry/workflows.py @@ -1,17 +1,7 @@ from temporalio import activity, workflow from dataclasses import dataclass from datetime import timedelta - -@dataclass -class ComposeGreetingInput: - greeting: str - name: str - - -@activity.defn -async def compose_greeting(input: ComposeGreetingInput) -> str: - activity.logger.info("Running activity with parameter %s" % input) - return f"{input.greeting}, {input.name}!" +from sentry.activities import ComposeGreetingInput, compose_greeting @workflow.defn From bfb2ec2b1bae5b95fa4c80980a00c277a00022e3 Mon Sep 17 00:00:00 2001 From: bk <126711557+bkodes@users.noreply.github.com> Date: Mon, 24 Jul 2023 17:15:37 -0400 Subject: [PATCH 3/4] Update sentry/workflows.py Co-authored-by: Chad Retz --- sentry/workflows.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sentry/workflows.py b/sentry/workflows.py index 84c0bd1a8..e163610e0 100644 --- a/sentry/workflows.py +++ b/sentry/workflows.py @@ -1,7 +1,9 @@ from temporalio import activity, workflow from dataclasses import dataclass from datetime import timedelta -from sentry.activities import ComposeGreetingInput, compose_greeting +# Import our activity and param class, passing it through the sandbox +with workflow.unsafe.imports_passed_through(): + from sentry.activities import ComposeGreetingInput, compose_greeting @workflow.defn From 3de9d12e5393acd424f0333f7622059415f8c1d5 Mon Sep 17 00:00:00 2001 From: bk <126711557+bkodes@users.noreply.github.com> Date: Mon, 24 Jul 2023 23:17:01 -0400 Subject: [PATCH 4/4] Update sentry/worker.py Co-authored-by: Chad Retz --- sentry/worker.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sentry/worker.py b/sentry/worker.py index 031d05c38..f9d4cda06 100644 --- a/sentry/worker.py +++ b/sentry/worker.py @@ -5,7 +5,8 @@ from datetime import timedelta import sentry_sdk -from sentry.workflows import compose_greeting, GreetingWorkflow +from sentry.activities import compose_greeting +from sentry.workflows import GreetingWorkflow from temporalio.client import Client from temporalio.worker import Worker