@@ -1238,13 +1238,18 @@ func stackChangeHooks(send func(*stacks.StackChangeProgress) error, mainStackSou
12381238 providerAddr = statusData .ProviderAddr .String ()
12391239 }
12401240
1241+ protoStatus := & stacks.StackChangeProgress_ActionInvocationStatus {
1242+ Addr : stacks .NewActionInvocationInStackAddr (statusData .Addr ),
1243+ Status : statusData .Status .ForProtobuf (),
1244+ ProviderAddr : providerAddr ,
1245+ }
1246+
1247+ // Set the action trigger oneof
1248+ setActionInvocationStatusTrigger (protoStatus , statusData .Addr .Component , statusData .Trigger )
1249+
12411250 send (& stacks.StackChangeProgress {
12421251 Event : & stacks.StackChangeProgress_ActionInvocationStatus_ {
1243- ActionInvocationStatus : & stacks.StackChangeProgress_ActionInvocationStatus {
1244- Addr : stacks .NewActionInvocationInStackAddr (statusData .Addr ),
1245- Status : statusData .Status .ForProtobuf (),
1246- ProviderAddr : providerAddr ,
1247- },
1252+ ActionInvocationStatus : protoStatus ,
12481253 },
12491254 })
12501255
@@ -1263,13 +1268,18 @@ func stackChangeHooks(send func(*stacks.StackChangeProgress) error, mainStackSou
12631268 providerAddr = progressData .ProviderAddr .String ()
12641269 }
12651270
1271+ protoProgress := & stacks.StackChangeProgress_ActionInvocationProgress {
1272+ Addr : stacks .NewActionInvocationInStackAddr (progressData .Addr ),
1273+ Message : progressData .Message ,
1274+ ProviderAddr : providerAddr ,
1275+ }
1276+
1277+ // Set the action trigger oneof
1278+ setActionInvocationProgressTrigger (protoProgress , progressData .Addr .Component , progressData .Trigger )
1279+
12661280 send (& stacks.StackChangeProgress {
12671281 Event : & stacks.StackChangeProgress_ActionInvocationProgress_ {
1268- ActionInvocationProgress : & stacks.StackChangeProgress_ActionInvocationProgress {
1269- Addr : stacks .NewActionInvocationInStackAddr (progressData .Addr ),
1270- Message : progressData .Message ,
1271- ProviderAddr : providerAddr ,
1272- },
1282+ ActionInvocationProgress : protoProgress ,
12731283 },
12741284 })
12751285
@@ -1394,13 +1404,20 @@ func actionInvocationPlanned(ai *hooks.ActionInvocation) (*stacks.StackChangePro
13941404 ProviderAddr : ai .ProviderAddr .String (),
13951405 }
13961406
1397- switch trig := ai .Trigger .(type ) {
1407+ setActionInvocationPlannedTrigger (res , ai .Addr .Component , ai .Trigger )
1408+
1409+ return res , nil
1410+ }
1411+
1412+ // setActionInvocationStatusTrigger sets the ActionTrigger oneof field on an ActionInvocationStatus message.
1413+ func setActionInvocationStatusTrigger (msg * stacks.StackChangeProgress_ActionInvocationStatus , component stackaddrs.AbsComponentInstance , trigger plans.ActionTrigger ) {
1414+ switch trig := trigger .(type ) {
13981415 case * plans.LifecycleActionTrigger :
1399- res .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationPlanned_LifecycleActionTrigger {
1416+ msg .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationStatus_LifecycleActionTrigger {
14001417 LifecycleActionTrigger : & stacks.StackChangeProgress_LifecycleActionTrigger {
14011418 TriggeringResourceAddress : stacks .NewResourceInstanceInStackAddr (
14021419 stackaddrs.AbsResourceInstance {
1403- Component : ai . Addr . Component ,
1420+ Component : component ,
14041421 Item : trig .TriggeringResourceAddr ,
14051422 },
14061423 ),
@@ -1410,14 +1427,58 @@ func actionInvocationPlanned(ai *hooks.ActionInvocation) (*stacks.StackChangePro
14101427 },
14111428 }
14121429 case * plans.InvokeActionTrigger :
1413- res .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationPlanned_InvokeActionTrigger {
1430+ msg .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationStatus_InvokeActionTrigger {
14141431 InvokeActionTrigger : & stacks.StackChangeProgress_InvokeActionTrigger {},
14151432 }
1416- default :
1417- return nil , fmt .Errorf ("unsupported action invocation trigger type" )
14181433 }
1434+ }
14191435
1420- return res , nil
1436+ // setActionInvocationProgressTrigger sets the ActionTrigger oneof field on an ActionInvocationProgress message.
1437+ func setActionInvocationProgressTrigger (msg * stacks.StackChangeProgress_ActionInvocationProgress , component stackaddrs.AbsComponentInstance , trigger plans.ActionTrigger ) {
1438+ switch trig := trigger .(type ) {
1439+ case * plans.LifecycleActionTrigger :
1440+ msg .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationProgress_LifecycleActionTrigger {
1441+ LifecycleActionTrigger : & stacks.StackChangeProgress_LifecycleActionTrigger {
1442+ TriggeringResourceAddress : stacks .NewResourceInstanceInStackAddr (
1443+ stackaddrs.AbsResourceInstance {
1444+ Component : component ,
1445+ Item : trig .TriggeringResourceAddr ,
1446+ },
1447+ ),
1448+ TriggerEvent : stacks .StackChangeProgress_ActionTriggerEvent (trig .TriggerEvent ()),
1449+ ActionTriggerBlockIndex : int64 (trig .ActionTriggerBlockIndex ),
1450+ ActionsListIndex : int64 (trig .ActionsListIndex ),
1451+ },
1452+ }
1453+ case * plans.InvokeActionTrigger :
1454+ msg .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationProgress_InvokeActionTrigger {
1455+ InvokeActionTrigger : & stacks.StackChangeProgress_InvokeActionTrigger {},
1456+ }
1457+ }
1458+ }
1459+
1460+ // setActionInvocationPlannedTrigger sets the ActionTrigger oneof field on an ActionInvocationPlanned message.
1461+ func setActionInvocationPlannedTrigger (msg * stacks.StackChangeProgress_ActionInvocationPlanned , component stackaddrs.AbsComponentInstance , trigger plans.ActionTrigger ) {
1462+ switch trig := trigger .(type ) {
1463+ case * plans.LifecycleActionTrigger :
1464+ msg .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationPlanned_LifecycleActionTrigger {
1465+ LifecycleActionTrigger : & stacks.StackChangeProgress_LifecycleActionTrigger {
1466+ TriggeringResourceAddress : stacks .NewResourceInstanceInStackAddr (
1467+ stackaddrs.AbsResourceInstance {
1468+ Component : component ,
1469+ Item : trig .TriggeringResourceAddr ,
1470+ },
1471+ ),
1472+ TriggerEvent : stacks .StackChangeProgress_ActionTriggerEvent (trig .TriggerEvent ()),
1473+ ActionTriggerBlockIndex : int64 (trig .ActionTriggerBlockIndex ),
1474+ ActionsListIndex : int64 (trig .ActionsListIndex ),
1475+ },
1476+ }
1477+ case * plans.InvokeActionTrigger :
1478+ msg .ActionTrigger = & stacks.StackChangeProgress_ActionInvocationPlanned_InvokeActionTrigger {
1479+ InvokeActionTrigger : & stacks.StackChangeProgress_InvokeActionTrigger {},
1480+ }
1481+ }
14211482}
14221483
14231484func evtComponentInstanceStatus (ci stackaddrs.AbsComponentInstance , status hooks.ComponentInstanceStatus ) * stacks.StackChangeProgress {
0 commit comments