iop/apps/edge/internal/service/run_cancel.go

40 lines
824 B
Go

package service
import (
"context"
iop "iop/proto/gen/iop"
)
type CancelRunRequest struct {
NodeRef string
RunID string
}
func BuildCancelRunRequest(req CancelRunRequest) *iop.CancelRequest {
return &iop.CancelRequest{
RunId: req.RunID,
}
}
func (s *Service) CancelRun(_ context.Context, req CancelRunRequest) (CommandResult, error) {
entry, err := s.ResolveDispatchReady(req.NodeRef)
if err != nil {
return CommandResult{}, err
}
cancelReq := BuildCancelRunRequest(req)
if err := entry.Client.Send(cancelReq); err != nil {
return CommandResult{}, err
}
return CommandResult{
NodeID: entry.NodeID,
NodeLabel: nodeLabel(entry),
}, nil
}
// CommandResult is the surface-neutral acknowledgement for one-shot node
// commands.
type CommandResult struct {
NodeID string
NodeLabel string
}