66# Standard
77from functools import partial
88from typing import Callable , Optional
9- import inspect
109
1110# First Party
1211import alog
1918from .session import Session
2019
2120log = 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