mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
bubble up the error message from go-getter (#18444)
This commit is contained in:
3
.changelog/18444.txt
Normal file
3
.changelog/18444.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:improvement
|
||||
status: go-getter failure reason now shown in `alloc status`
|
||||
```
|
||||
@@ -143,10 +143,11 @@ func (s *Sandbox) runCmd(env *parameters) error {
|
||||
|
||||
// start & wait for the subprocess to terminate
|
||||
if err := cmd.Run(); err != nil {
|
||||
subproc.Log(output, s.logger.Error)
|
||||
msg := subproc.Log(output, s.logger.Error)
|
||||
|
||||
return &Error{
|
||||
URL: env.Source,
|
||||
Err: fmt.Errorf("getter subprocess failed: %v", err),
|
||||
Err: fmt.Errorf("getter subprocess failed: %v: %v", err, msg),
|
||||
Recoverable: true,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"time"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -45,12 +46,15 @@ func Print(format string, args ...any) {
|
||||
//
|
||||
// r should be a buffer containing output (typically combined stdin + stdout)
|
||||
// f should be an HCLogger Print method (e.g. log.Debug)
|
||||
func Log(r io.Reader, f func(msg string, args ...any)) {
|
||||
func Log(r io.Reader, f func(msg string, args ...any)) string {
|
||||
scanner := bufio.NewScanner(r)
|
||||
lines := ""
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
lines += line + "\n"
|
||||
f("sub-process", "OUTPUT", line)
|
||||
}
|
||||
return strings.TrimSpace(lines)
|
||||
}
|
||||
|
||||
// Context creates a context setup with the given timeout.
|
||||
|
||||
Reference in New Issue
Block a user