Skip to content

Commit dcaec00

Browse files
scaleway-botPrototool Botyfodil
authored
feat(serverless_jobs): improve retry_policy handling for job definition updates (#1785)
Co-authored-by: Prototool Bot <prototool-bot@scaleway.com> Co-authored-by: Yacine Fodil <105779815+yfodil@users.noreply.github.com>
1 parent 2d8222d commit dcaec00

8 files changed

Lines changed: 52 additions & 6 deletions

File tree

scaleway-async/scaleway_async/jobs/v1alpha2/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from .types import JobRun
2121
from .types import Trigger
2222
from .types import UpdateJobDefinitionRequestCronScheduleConfig
23+
from .types import UpdateJobDefinitionRequestUpdateRetryPolicy
2324
from .types import UpdateTriggerRequestCronConfig
2425
from .types import CreateJobDefinitionRequest
2526
from .types import CreateSecretsRequest
@@ -73,6 +74,7 @@
7374
"JobRun",
7475
"Trigger",
7576
"UpdateJobDefinitionRequestCronScheduleConfig",
77+
"UpdateJobDefinitionRequestUpdateRetryPolicy",
7678
"UpdateTriggerRequestCronConfig",
7779
"CreateJobDefinitionRequest",
7880
"CreateSecretsRequest",

scaleway-async/scaleway_async/jobs/v1alpha2/api.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
Trigger,
4141
UpdateJobDefinitionRequest,
4242
UpdateJobDefinitionRequestCronScheduleConfig,
43+
UpdateJobDefinitionRequestUpdateRetryPolicy,
4344
UpdateSecretRequest,
4445
UpdateTriggerRequest,
4546
UpdateTriggerRequestCronConfig,
@@ -294,7 +295,7 @@ async def update_job_definition(
294295
description: Optional[str] = None,
295296
job_timeout: Optional[str] = None,
296297
cron_schedule: Optional[UpdateJobDefinitionRequestCronScheduleConfig] = None,
297-
retry_policy: Optional[RetryPolicy] = None,
298+
retry_policy: Optional[UpdateJobDefinitionRequestUpdateRetryPolicy] = None,
298299
) -> JobDefinition:
299300
"""
300301
Update an existing job definition associated with the specified unique identifier.

scaleway-async/scaleway_async/jobs/v1alpha2/marshalling.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
CreateTriggerRequest,
3939
StartJobDefinitionRequest,
4040
UpdateJobDefinitionRequestCronScheduleConfig,
41+
UpdateJobDefinitionRequestUpdateRetryPolicy,
4142
UpdateJobDefinitionRequest,
4243
UpdateSecretRequest,
4344
UpdateTriggerRequestCronConfig,
@@ -910,6 +911,18 @@ def marshal_UpdateJobDefinitionRequestCronScheduleConfig(
910911
return output
911912

912913

914+
def marshal_UpdateJobDefinitionRequestUpdateRetryPolicy(
915+
request: UpdateJobDefinitionRequestUpdateRetryPolicy,
916+
defaults: ProfileDefaults,
917+
) -> dict[str, Any]:
918+
output: dict[str, Any] = {}
919+
920+
if request.max_retries is not None:
921+
output["max_retries"] = request.max_retries
922+
923+
return output
924+
925+
913926
def marshal_UpdateJobDefinitionRequest(
914927
request: UpdateJobDefinitionRequest,
915928
defaults: ProfileDefaults,
@@ -955,7 +968,9 @@ def marshal_UpdateJobDefinitionRequest(
955968
)
956969

957970
if request.retry_policy is not None:
958-
output["retry_policy"] = marshal_RetryPolicy(request.retry_policy, defaults)
971+
output["retry_policy"] = marshal_UpdateJobDefinitionRequestUpdateRetryPolicy(
972+
request.retry_policy, defaults
973+
)
959974

960975
return output
961976

scaleway-async/scaleway_async/jobs/v1alpha2/types.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,11 @@ class UpdateJobDefinitionRequestCronScheduleConfig:
431431
timezone: Optional[str] = None
432432

433433

434+
@dataclass
435+
class UpdateJobDefinitionRequestUpdateRetryPolicy:
436+
max_retries: Optional[int] = None
437+
438+
434439
@dataclass
435440
class UpdateTriggerRequestCronConfig:
436441
schedule: Optional[str] = None
@@ -948,7 +953,7 @@ class UpdateJobDefinitionRequest:
948953
Configure a cron for the job.
949954
"""
950955

951-
retry_policy: Optional[RetryPolicy] = None
956+
retry_policy: Optional[UpdateJobDefinitionRequestUpdateRetryPolicy] = None
952957
"""
953958
Retry behaviour in case of job failure.
954959
"""

scaleway/scaleway/jobs/v1alpha2/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from .types import JobRun
2121
from .types import Trigger
2222
from .types import UpdateJobDefinitionRequestCronScheduleConfig
23+
from .types import UpdateJobDefinitionRequestUpdateRetryPolicy
2324
from .types import UpdateTriggerRequestCronConfig
2425
from .types import CreateJobDefinitionRequest
2526
from .types import CreateSecretsRequest
@@ -73,6 +74,7 @@
7374
"JobRun",
7475
"Trigger",
7576
"UpdateJobDefinitionRequestCronScheduleConfig",
77+
"UpdateJobDefinitionRequestUpdateRetryPolicy",
7678
"UpdateTriggerRequestCronConfig",
7779
"CreateJobDefinitionRequest",
7880
"CreateSecretsRequest",

scaleway/scaleway/jobs/v1alpha2/api.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
Trigger,
4141
UpdateJobDefinitionRequest,
4242
UpdateJobDefinitionRequestCronScheduleConfig,
43+
UpdateJobDefinitionRequestUpdateRetryPolicy,
4344
UpdateSecretRequest,
4445
UpdateTriggerRequest,
4546
UpdateTriggerRequestCronConfig,
@@ -294,7 +295,7 @@ def update_job_definition(
294295
description: Optional[str] = None,
295296
job_timeout: Optional[str] = None,
296297
cron_schedule: Optional[UpdateJobDefinitionRequestCronScheduleConfig] = None,
297-
retry_policy: Optional[RetryPolicy] = None,
298+
retry_policy: Optional[UpdateJobDefinitionRequestUpdateRetryPolicy] = None,
298299
) -> JobDefinition:
299300
"""
300301
Update an existing job definition associated with the specified unique identifier.

scaleway/scaleway/jobs/v1alpha2/marshalling.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
CreateTriggerRequest,
3939
StartJobDefinitionRequest,
4040
UpdateJobDefinitionRequestCronScheduleConfig,
41+
UpdateJobDefinitionRequestUpdateRetryPolicy,
4142
UpdateJobDefinitionRequest,
4243
UpdateSecretRequest,
4344
UpdateTriggerRequestCronConfig,
@@ -910,6 +911,18 @@ def marshal_UpdateJobDefinitionRequestCronScheduleConfig(
910911
return output
911912

912913

914+
def marshal_UpdateJobDefinitionRequestUpdateRetryPolicy(
915+
request: UpdateJobDefinitionRequestUpdateRetryPolicy,
916+
defaults: ProfileDefaults,
917+
) -> dict[str, Any]:
918+
output: dict[str, Any] = {}
919+
920+
if request.max_retries is not None:
921+
output["max_retries"] = request.max_retries
922+
923+
return output
924+
925+
913926
def marshal_UpdateJobDefinitionRequest(
914927
request: UpdateJobDefinitionRequest,
915928
defaults: ProfileDefaults,
@@ -955,7 +968,9 @@ def marshal_UpdateJobDefinitionRequest(
955968
)
956969

957970
if request.retry_policy is not None:
958-
output["retry_policy"] = marshal_RetryPolicy(request.retry_policy, defaults)
971+
output["retry_policy"] = marshal_UpdateJobDefinitionRequestUpdateRetryPolicy(
972+
request.retry_policy, defaults
973+
)
959974

960975
return output
961976

scaleway/scaleway/jobs/v1alpha2/types.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,11 @@ class UpdateJobDefinitionRequestCronScheduleConfig:
431431
timezone: Optional[str] = None
432432

433433

434+
@dataclass
435+
class UpdateJobDefinitionRequestUpdateRetryPolicy:
436+
max_retries: Optional[int] = None
437+
438+
434439
@dataclass
435440
class UpdateTriggerRequestCronConfig:
436441
schedule: Optional[str] = None
@@ -948,7 +953,7 @@ class UpdateJobDefinitionRequest:
948953
Configure a cron for the job.
949954
"""
950955

951-
retry_policy: Optional[RetryPolicy] = None
956+
retry_policy: Optional[UpdateJobDefinitionRequestUpdateRetryPolicy] = None
952957
"""
953958
Retry behaviour in case of job failure.
954959
"""

0 commit comments

Comments
 (0)