本文整理汇总了Golang中github.com/juju/juju/worker/uniter/operation.Factory.NewAction方法的典型用法代码示例。如果您正苦于以下问题:Golang Factory.NewAction方法的具体用法?Golang Factory.NewAction怎么用?Golang Factory.NewAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/juju/juju/worker/uniter/operation.Factory
的用法示例。
在下文中一共展示了Factory.NewAction方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NextOp
// NextOp implements the resolver.Resolver interface.
func (r *actionsResolver) NextOp(
localState resolver.LocalState,
remoteState remotestate.Snapshot,
opFactory operation.Factory,
) (operation.Operation, error) {
nextAction, err := nextAction(remoteState.Actions, localState.CompletedActions)
if err != nil {
return nil, err
}
switch localState.Kind {
case operation.RunHook:
// We can still run actions if the unit is in a hook error state.
if localState.Step == operation.Pending {
return opFactory.NewAction(nextAction)
}
case operation.RunAction:
if localState.Hook != nil {
logger.Infof("found incomplete action %q; ignoring", localState.ActionId)
logger.Infof("recommitting prior %q hook", localState.Hook.Kind)
return opFactory.NewSkipHook(*localState.Hook)
} else {
logger.Infof("%q hook is nil", operation.RunAction)
return opFactory.NewFailAction(*localState.ActionId)
}
case operation.Continue:
return opFactory.NewAction(nextAction)
}
return nil, resolver.ErrNoOperation
}
示例2: NextOp
// NextOp implements the resolver.Resolver interface.
func (r *actionsResolver) NextOp(
localState resolver.LocalState,
remoteState remotestate.Snapshot,
opFactory operation.Factory,
) (operation.Operation, error) {
nextAction, err := nextAction(remoteState.Actions, localState.CompletedActions)
if err != nil {
return nil, err
}
switch localState.Kind {
case operation.RunHook:
// We can still run actions if the unit is in a hook error state.
if localState.Step == operation.Pending {
return opFactory.NewAction(nextAction)
}
case operation.RunAction:
// TODO(fwereade): we *should* handle interrupted actions, and make sure
// they're marked as failed, but that's not for now.
if localState.Hook != nil {
logger.Infof("found incomplete action %q; ignoring", localState.ActionId)
logger.Infof("recommitting prior %q hook", localState.Hook.Kind)
return opFactory.NewSkipHook(*localState.Hook)
} else {
logger.Infof("%q hook is nil", operation.RunAction)
}
case operation.Continue:
return opFactory.NewAction(nextAction)
}
return nil, resolver.ErrNoOperation
}