From 3867330add5ae33688f4df2d1edc1f525357ffcf Mon Sep 17 00:00:00 2001 From: cam Date: Sun, 29 Sep 2024 11:27:54 +1300 Subject: [PATCH] Add checks for salt id being set --- saltutil/saltutil.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/saltutil/saltutil.go b/saltutil/saltutil.go index 731c168..9068c3b 100644 --- a/saltutil/saltutil.go +++ b/saltutil/saltutil.go @@ -3,6 +3,7 @@ package saltutil import ( "bufio" "encoding/json" + "errors" "fmt" "os" "os/exec" @@ -23,7 +24,12 @@ type Grains struct { Group string `json:"group,omitempty"` } +var ErrNoSaltMinionID = errors.New("no salt minion ID") + func SetGrains(grains Grains, log *logging.Logger) error { + if !IsSaltIdSet() { + return ErrNoSaltMinionID + } // Setup logger if none is provided if log == nil { log = logging.NewLogger("info") @@ -48,6 +54,9 @@ func SetGrains(grains Grains, log *logging.Logger) error { // GetSaltGrains returns the salt grains. Optional to pass a logger, pass nil to use default. func GetSaltGrains(log *logging.Logger) (*Grains, error) { + if !IsSaltIdSet() { + return nil, ErrNoSaltMinionID + } // Setup logger if none is provided if log == nil { log = logging.NewLogger("info") @@ -106,6 +115,9 @@ func GetSaltGrains(log *logging.Logger) (*Grains, error) { } func GetNodegroupFromFile() (string, error) { + if !IsSaltIdSet() { + return "", ErrNoSaltMinionID + } nodegroup, err := os.ReadFile(nodegroupFile) if err != nil { return "", err @@ -114,6 +126,9 @@ func GetNodegroupFromFile() (string, error) { } func GetMinionID(log *logging.Logger) (string, error) { + if !IsSaltIdSet() { + return "", ErrNoSaltMinionID + } // Setup logger if none is provided if log == nil { log = logging.NewLogger("info") @@ -129,3 +144,8 @@ func GetMinionID(log *logging.Logger) (string, error) { log.Debugf("Minion ID: '%s'", id) return id, nil } + +func IsSaltIdSet() bool { + _, err := os.Stat(minionIdFile) + return err == nil +}