From 016219d3945584b7e58ac06516c63a291afa0811 Mon Sep 17 00:00:00 2001 From: Manuel Alejandro de Brito Fontes Date: Tue, 13 Aug 2019 13:46:16 -0400 Subject: [PATCH] Refactor version helper (#4437) --- internal/nginx/main.go | 20 ++++++++++++++++++++ version/version.go | 15 ++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/internal/nginx/main.go b/internal/nginx/main.go index 95236b7447..a3bce486c1 100644 --- a/internal/nginx/main.go +++ b/internal/nginx/main.go @@ -23,10 +23,12 @@ import ( "io/ioutil" "net/http" "os" + "os/exec" "strings" "time" "github.com/tv42/httpunix" + "k8s.io/klog" ) // PID defines the location of the pid file used by NGINX @@ -148,3 +150,21 @@ func buildUnixSocketClient(timeout time.Duration) *http.Client { Transport: u, } } + +// Version return details about NGINX +func Version() string { + flag := "-v" + + if klog.V(2) { + flag = "-V" + } + + cmd := exec.Command("nginx", flag) + out, err := cmd.CombinedOutput() + if err != nil { + klog.Errorf("unexpected error obtaining NGINX version: %v", err) + return "N/A" + } + + return string(out) +} diff --git a/version/version.go b/version/version.go index aebfec3616..58e7ca1752 100644 --- a/version/version.go +++ b/version/version.go @@ -16,7 +16,11 @@ limitations under the License. package version -import "fmt" +import ( + "fmt" + + "k8s.io/ingress-nginx/internal/nginx" +) var ( // RELEASE returns the release version @@ -31,9 +35,10 @@ var ( func String() string { return fmt.Sprintf(`------------------------------------------------------------------------------- NGINX Ingress controller - Release: %v - Build: %v - Repository: %v + Release: %v + Build: %v + Repository: %v + %v ------------------------------------------------------------------------------- -`, RELEASE, COMMIT, REPO) +`, RELEASE, COMMIT, REPO, nginx.Version()) }