From 12388fbeff2aadbeff937bb36c1994403950e36e Mon Sep 17 00:00:00 2001 From: Michael Waskom Date: Mon, 14 Oct 2024 20:52:55 -0400 Subject: [PATCH] Send schedule configuration in function definition, not request (#2329) * Send schedule in function definition, not request * Update mock servicer --- modal/functions.py | 3 ++- test/conftest.py | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/modal/functions.py b/modal/functions.py index 3a9820dee..9acf0ea7a 100644 --- a/modal/functions.py +++ b/modal/functions.py @@ -843,6 +843,7 @@ async def _load(self: _Function, resolver: Resolver, existing_object_id: Optiona is_class=info.is_service_class(), class_parameter_info=info.class_parameter_info(), i6pn_enabled=i6pn_enabled, + schedule=schedule.proto_message if schedule is not None else None, _experimental_group_size=group_size or 0, # Experimental: Grouped functions _experimental_concurrent_cancellations=True, _experimental_buffer_containers=_experimental_buffer_containers or 0, @@ -863,6 +864,7 @@ async def _load(self: _Function, resolver: Resolver, existing_object_id: Optiona web_url_info=function_definition.web_url_info, webhook_config=function_definition.webhook_config, custom_domain_info=function_definition.custom_domain_info, + schedule=schedule.proto_message if schedule is not None else None, is_class=function_definition.is_class, class_parameter_info=function_definition.class_parameter_info, is_method=function_definition.is_method, @@ -904,7 +906,6 @@ async def _load(self: _Function, resolver: Resolver, existing_object_id: Optiona app_id=resolver.app_id, function=function_definition, function_data=function_data, - schedule=schedule.proto_message if schedule is not None else None, existing_function_id=existing_object_id or "", defer_updates=True, ) diff --git a/test/conftest.py b/test/conftest.py index 1c990f727..0f11a453b 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -870,8 +870,6 @@ async def FunctionCreate(self, stream): else: self.n_functions += 1 function_id = f"fu-{self.n_functions}" - if request.schedule: - self.function2schedule[function_id] = request.schedule function: Optional[api_pb2.Function] = None function_data: Optional[api_pb2.FunctionData] = None @@ -890,8 +888,12 @@ async def FunctionCreate(self, stream): assert (function is None) != (function_data is None) function_defn = function or function_data + assert function_defn self.app_functions[function_id] = function_defn + if function_defn.schedule: + self.function2schedule[function_id] = function_defn.schedule + await stream.send_message( api_pb2.FunctionCreateResponse( function_id=function_id,