Skip to content

Commit 661f644

Browse files
committed
refactor: using try and catch for new after_deploy callbacks to simplify the code.
Signed-off-by: Yuki Ito <yuki462@ibm.com>
1 parent 81dad08 commit 661f644

File tree

1 file changed

+9
-25
lines changed

1 file changed

+9
-25
lines changed

oper8/rollout_manager.py

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
# Standard
77
from functools import partial
88
from typing import Callable, Optional
9-
import inspect
109

1110
# First Party
1211
import alog
@@ -19,9 +18,6 @@
1918
from .session import Session
2019

2120
log = alog.use_channel("ROLMGR")
22-
# New argument introduced at oper8 v0.1.33 for after_deploy or after_verify functions.
23-
DEPLOY_COMPLETION_STATE_ARG_NAME = "deploy_completion_state"
24-
VERIFY_COMPLETION_STATE_ARG_NAME = "verify_completion_state"
2521

2622
## Rollout Functions ###########################################################
2723

@@ -329,17 +325,14 @@ def rollout( # pylint: disable=too-many-locals,too-many-statements
329325
if (not phase1_complete or phase1_failed) and self._after_deploy_unsuccessful:
330326
log.debug2("Running after-deploy-unsuccessful")
331327
try:
332-
# Check DEPLOY_COMPLETION_STATE_ARG_NAME argument for backward compatibility.
333-
if (
334-
DEPLOY_COMPLETION_STATE_ARG_NAME
335-
in inspect.signature(self._after_deploy_unsuccessful).parameters
336-
):
328+
# Check deploy_completion_state argument for backward compatibility.
329+
try:
337330
is_after_deploy_unsuccessful_completed = (
338331
self._after_deploy_unsuccessful(
339332
self._session, phase1_failed, deploy_completion_state
340333
)
341334
)
342-
else:
335+
except TypeError:
343336
log.warning(
344337
"Detected old after_deploy function. Please migrate oper8 to ^0.1.33."
345338
)
@@ -363,14 +356,11 @@ def rollout( # pylint: disable=too-many-locals,too-many-statements
363356
if phase1_complete and self._after_deploy:
364357
log.debug2("Running after-deploy")
365358
try:
366-
if (
367-
DEPLOY_COMPLETION_STATE_ARG_NAME
368-
in inspect.signature(self._after_deploy).parameters
369-
):
359+
try:
370360
phase2_complete = self._after_deploy(
371361
self._session, deploy_completion_state
372362
)
373-
else:
363+
except TypeError:
374364
log.warning(
375365
"Detected old after_deploy function. Please migrate oper8 to ^0.1.33."
376366
)
@@ -466,16 +456,13 @@ def rollout( # pylint: disable=too-many-locals,too-many-statements
466456
) and self._after_verify_unsuccessful:
467457
log.debug("Running after-verify-unsuccessful")
468458
try:
469-
if (
470-
VERIFY_COMPLETION_STATE_ARG_NAME
471-
in inspect.signature(self._after_verify_unsuccessful).parameters
472-
):
459+
try:
473460
is_after_verify_unsuccessful_completed = (
474461
self._after_verify_unsuccessful(
475462
self._session, phase3_failed, verify_completion_state
476463
)
477464
)
478-
else:
465+
except TypeError:
479466
log.warning(
480467
"Detected old after_verify function. Please migrate oper8 to ^0.1.33."
481468
)
@@ -495,14 +482,11 @@ def rollout( # pylint: disable=too-many-locals,too-many-statements
495482
if phase3_complete and self._after_verify:
496483
log.debug("Running after-verify")
497484
try:
498-
if (
499-
VERIFY_COMPLETION_STATE_ARG_NAME
500-
in inspect.signature(self._after_verify).parameters
501-
):
485+
try:
502486
phase4_complete = self._after_verify(
503487
self._session, verify_completion_state
504488
)
505-
else:
489+
except TypeError:
506490
log.warning(
507491
"Detected old after_verify function. Please migrate oper8 to ^0.1.33."
508492
)

0 commit comments

Comments
 (0)