Refactor GetPodLogs using isTestHook & getHookLog

`git show --ignore-space-change` is useful for understanding this
commit.

Co-authored-by: Andreas Lindhé <andreas@lindhe.io>

Signed-off-by: Andreas Lindhé <andreas@lindhe.io>
pull/9677/head
Simon Alling 4 years ago committed by Andreas Lindhé
parent 4cb207b425
commit 1661ba5b1e

@ -17,13 +17,11 @@ limitations under the License.
package action package action
import ( import (
"context"
"fmt" "fmt"
"io" "io"
"time" "time"
"github.com/pkg/errors" "github.com/pkg/errors"
v1 "k8s.io/api/core/v1"
"helm.sh/helm/v3/pkg/chartutil" "helm.sh/helm/v3/pkg/chartutil"
"helm.sh/helm/v3/pkg/release" "helm.sh/helm/v3/pkg/release"
@ -108,20 +106,16 @@ func (r *ReleaseTesting) GetPodLogs(out io.Writer, rel *release.Release) error {
} }
for _, h := range rel.Hooks { for _, h := range rel.Hooks {
for _, e := range h.Events { if isTestHook(h) {
if e == release.HookTest { hookLog, err := getHookLog(client, rel, h)
req := client.CoreV1().Pods(r.Namespace).GetLogs(h.Name, &v1.PodLogOptions{}) if err != nil {
logReader, err := req.Stream(context.Background()) return err
if err != nil { }
return errors.Wrapf(err, "unable to get pod logs for %s", h.Name) fmt.Fprintf(out, "POD LOGS: %s\n", h.Name)
} _, err = fmt.Fprint(out, string(hookLog))
fmt.Fprintln(out)
fmt.Fprintf(out, "POD LOGS: %s\n", h.Name) if err != nil {
_, err = io.Copy(out, logReader) return errors.Wrapf(err, "unable to write pod logs for %s", h.Name)
fmt.Fprintln(out)
if err != nil {
return errors.Wrapf(err, "unable to write pod logs for %s", h.Name)
}
} }
} }
} }

Loading…
Cancel
Save