@@ -598,18 +598,18 @@ func (c *Client) evaluate(
598598 }
599599
600600 defer func () {
601- c .finallyHooks (hookCtx , providerInvocationClientApiHooks , options )
601+ c .finallyHooks (ctx , hookCtx , providerInvocationClientApiHooks , options )
602602 }()
603603
604- evalCtx , err = c .beforeHooks (hookCtx , apiClientInvocationProviderHooks , evalCtx , options )
604+ evalCtx , err = c .beforeHooks (ctx , hookCtx , apiClientInvocationProviderHooks , evalCtx , options )
605605 hookCtx .evaluationContext = evalCtx
606606 if err != nil {
607607 c .logger ().Error (
608608 err , "before hook" , "flag" , flag , "defaultValue" , defaultValue ,
609609 "evaluationContext" , evalCtx , "evaluationOptions" , options , "type" , flagType .String (),
610610 )
611611 err = fmt .Errorf ("before hook: %w" , err )
612- c .errorHooks (hookCtx , providerInvocationClientApiHooks , err , options )
612+ c .errorHooks (ctx , hookCtx , providerInvocationClientApiHooks , err , options )
613613 return evalDetails , err
614614 }
615615
@@ -648,21 +648,21 @@ func (c *Client) evaluate(
648648 "errMessage" , resolution .ResolutionError .message ,
649649 )
650650 err = fmt .Errorf ("error code: %w" , err )
651- c .errorHooks (hookCtx , providerInvocationClientApiHooks , err , options )
651+ c .errorHooks (ctx , hookCtx , providerInvocationClientApiHooks , err , options )
652652 evalDetails .ResolutionDetail = resolution .ResolutionDetail ()
653653 evalDetails .Reason = ErrorReason
654654 return evalDetails , err
655655 }
656656 evalDetails .Value = resolution .Value
657657 evalDetails .ResolutionDetail = resolution .ResolutionDetail ()
658658
659- if err := c .afterHooks (hookCtx , providerInvocationClientApiHooks , evalDetails , options ); err != nil {
659+ if err := c .afterHooks (ctx , hookCtx , providerInvocationClientApiHooks , evalDetails , options ); err != nil {
660660 c .logger ().Error (
661661 err , "after hook" , "flag" , flag , "defaultValue" , defaultValue ,
662662 "evaluationContext" , evalCtx , "evaluationOptions" , options , "type" , flagType .String (),
663663 )
664664 err = fmt .Errorf ("after hook: %w" , err )
665- c .errorHooks (hookCtx , providerInvocationClientApiHooks , err , options )
665+ c .errorHooks (ctx , hookCtx , providerInvocationClientApiHooks , err , options )
666666 return evalDetails , err
667667 }
668668
@@ -682,13 +682,13 @@ func flattenContext(evalCtx EvaluationContext) FlattenedContext {
682682}
683683
684684func (c * Client ) beforeHooks (
685- hookCtx HookContext , hooks []Hook , evalCtx EvaluationContext , options EvaluationOptions ,
685+ ctx context. Context , hookCtx HookContext , hooks []Hook , evalCtx EvaluationContext , options EvaluationOptions ,
686686) (EvaluationContext , error ) {
687687 c .logger ().V (debug ).Info ("executing before hooks" )
688688 defer c .logger ().V (debug ).Info ("executed before hooks" )
689689
690690 for _ , hook := range hooks {
691- resultEvalCtx , err := hook .Before (hookCtx , options .hookHints )
691+ resultEvalCtx , err := hook .Before (ctx , hookCtx , options .hookHints )
692692 if resultEvalCtx != nil {
693693 hookCtx .evaluationContext = * resultEvalCtx
694694 }
@@ -701,35 +701,35 @@ func (c *Client) beforeHooks(
701701}
702702
703703func (c * Client ) afterHooks (
704- hookCtx HookContext , hooks []Hook , evalDetails InterfaceEvaluationDetails , options EvaluationOptions ,
704+ ctx context. Context , hookCtx HookContext , hooks []Hook , evalDetails InterfaceEvaluationDetails , options EvaluationOptions ,
705705) error {
706706 c .logger ().V (debug ).Info ("executing after hooks" )
707707 defer c .logger ().V (debug ).Info ("executed after hooks" )
708708
709709 for _ , hook := range hooks {
710- if err := hook .After (hookCtx , evalDetails , options .hookHints ); err != nil {
710+ if err := hook .After (ctx , hookCtx , evalDetails , options .hookHints ); err != nil {
711711 return err
712712 }
713713 }
714714
715715 return nil
716716}
717717
718- func (c * Client ) errorHooks (hookCtx HookContext , hooks []Hook , err error , options EvaluationOptions ) {
718+ func (c * Client ) errorHooks (ctx context. Context , hookCtx HookContext , hooks []Hook , err error , options EvaluationOptions ) {
719719 c .logger ().V (debug ).Info ("executing error hooks" )
720720 defer c .logger ().V (debug ).Info ("executed error hooks" )
721721
722722 for _ , hook := range hooks {
723- hook .Error (hookCtx , err , options .hookHints )
723+ hook .Error (ctx , hookCtx , err , options .hookHints )
724724 }
725725}
726726
727- func (c * Client ) finallyHooks (hookCtx HookContext , hooks []Hook , options EvaluationOptions ) {
727+ func (c * Client ) finallyHooks (ctx context. Context , hookCtx HookContext , hooks []Hook , options EvaluationOptions ) {
728728 c .logger ().V (debug ).Info ("executing finally hooks" )
729729 defer c .logger ().V (debug ).Info ("executed finally hooks" )
730730
731731 for _ , hook := range hooks {
732- hook .Finally (hookCtx , options .hookHints )
732+ hook .Finally (ctx , hookCtx , options .hookHints )
733733 }
734734}
735735
0 commit comments