| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package api
- import (
- "fmt"
- "sort"
- "strings"
- "connectrpc.com/connect"
- apiv1 "github.com/OliveTin/OliveTin/gen/olivetin/api/v1"
- "github.com/OliveTin/OliveTin/internal/executor"
- )
- func logEntryArgumentsToProto(args map[string]string) []*apiv1.StartActionArgument {
- if len(args) == 0 {
- return nil
- }
- names := make([]string, 0, len(args))
- for name := range args {
- names = append(names, name)
- }
- sort.Strings(names)
- out := make([]*apiv1.StartActionArgument, 0, len(names))
- for _, name := range names {
- out = append(out, &apiv1.StartActionArgument{
- Name: name,
- Value: args[name],
- })
- }
- return out
- }
- func copyStringMap(source map[string]string) map[string]string {
- copied := make(map[string]string, len(source))
- for key, value := range source {
- copied[key] = value
- }
- return copied
- }
- func restartArgumentsIncompleteError() error {
- return connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("stored arguments are incomplete for restart; use StartAction with the required arguments instead"))
- }
- func validateRestartLogEntry(entry *executor.InternalLogEntry) error {
- if entry.Binding.Action.Justification && strings.TrimSpace(entry.Justification) == "" {
- return restartRequiresJustificationError()
- }
- if executor.RestartArgumentsIncomplete(entry.Binding.Action, entry.Binding.Entity, entry.Arguments) {
- return restartArgumentsIncompleteError()
- }
- return nil
- }
|