39 lines
798 B
Go
39 lines
798 B
Go
|
package helm
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
"errors"
|
||
|
"os/exec"
|
||
|
|
||
|
log "oc-deploy/log_wrapper"
|
||
|
)
|
||
|
|
||
|
type HelmCommandInterface interface {
|
||
|
Status(string) (string, error)
|
||
|
}
|
||
|
|
||
|
type HelmCommandData struct {
|
||
|
bin string
|
||
|
// name string
|
||
|
}
|
||
|
|
||
|
type RealHelmCommandStatus HelmCommandData
|
||
|
|
||
|
func (this RealHelmCommandStatus) Status(name string) (string, error) {
|
||
|
|
||
|
msg := fmt.Sprintf("%s status %s --show-resources -o json", this.bin, name)
|
||
|
log.Log().Debug().Msg(msg)
|
||
|
|
||
|
cmd_args := strings.Split(msg, " ")
|
||
|
|
||
|
cmd := exec.Command(cmd_args[0], cmd_args[1:]...)
|
||
|
stdout, err := cmd.CombinedOutput()
|
||
|
if err != nil {
|
||
|
log.Log().Debug().Msg(string(stdout))
|
||
|
return "", errors.New(string(stdout))
|
||
|
}
|
||
|
|
||
|
return string(stdout), nil
|
||
|
}
|