Skip to content

Commit

Permalink
Merge pull request kata-containers#9 from jodh-intel/add-version-details
Browse files Browse the repository at this point in the history
Add version details
  • Loading branch information
Samuel Ortiz committed Dec 10, 2017
2 parents 00285bb + 98572f0 commit 8c3bf59
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 12 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
proxy
kata-proxy
test/server
test/client
11 changes: 8 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,16 @@
#

TARGET = kata-proxy
SOURCES := $(shell find . 2>&1 | grep -E '.*\.go$$')

all: $(TARGET)
VERSION_FILE := ./VERSION
VERSION := $(shell grep -v ^\# $(VERSION_FILE))
COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true)
COMMIT := $(if $(shell git status --porcelain --untracked-files=no),${COMMIT_NO}-dirty,${COMMIT_NO})
VERSION_COMMIT := $(if $(COMMIT),$(VERSION)-$(COMMIT),$(VERSION))

$(TARGET):
go build -o $@ proxy.go
$(TARGET): $(SOURCES)
go build -o $@ -ldflags "-X main.version=$(VERSION_COMMIT)"

test:
go test -v -race -coverprofile=coverage.txt -covermode=atomic
Expand Down
2 changes: 2 additions & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# This is the proxy version.
0.0.1
40 changes: 31 additions & 9 deletions proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,27 @@ package main
import (
"errors"
"flag"
"fmt"
"io"
"net"
"net/url"
"os"
"sync"

"github.com/hashicorp/yamux"
"github.com/sirupsen/logrus"
)

const proxyName = "kata-proxy"

// version is the proxy version. This variable is populated at build time.
var version = "unknown"

var proxyLog = logrus.WithFields(logrus.Fields{
"name": proxyName,
"pid": os.Getpid(),
})

func serve(servConn io.ReadWriteCloser, proto, addr string, results chan error) error {
session, err := yamux.Client(servConn, nil)
if err != nil {
Expand Down Expand Up @@ -96,19 +108,24 @@ func unixAddr(uri string) (string, error) {
return addr.Host + addr.Path, nil
}

func setupLoger(logLevel string) error {

func setupLogger(logLevel string) error {
level, err := logrus.ParseLevel(logLevel)
if err != nil {
return err
}

logrus.SetLevel(level)

proxyLog.WithField("version", version).Info()

return nil
}

func main() {
var channel, proxyAddr, logLevel string
var showVersion bool

flag.BoolVar(&showVersion, "version", false, "display program version and exit")
flag.StringVar(&channel, "mux-socket", "", "unix socket to multiplex on")
flag.StringVar(&proxyAddr, "listen-socket", "", "unix socket to listen on")

Expand All @@ -117,38 +134,43 @@ func main() {

flag.Parse()

err := setupLoger(logLevel)
if showVersion {
fmt.Printf("%v version %v\n", proxyName, version)
os.Exit(0)
}

err := setupLogger(logLevel)
if err != nil {
logrus.Fatal(err)
proxyLog.Fatal(err)
}

muxAddr, err := unixAddr(channel)
if err != nil {
logrus.Fatal("invalid mux socket address")
proxyLog.Fatal("invalid mux socket address")
}
listenAddr, err := unixAddr(proxyAddr)
if err != nil {
logrus.Fatal("invalid listen socket address")
proxyLog.Fatal("invalid listen socket address")
return
}

// yamux connection
servConn, err := net.Dial("unix", muxAddr)
if err != nil {
logrus.Fatalf("failed to dial channel(%q): %s", muxAddr, err)
proxyLog.Fatalf("failed to dial channel(%q): %s", muxAddr, err)
return
}
defer servConn.Close()

results := make(chan error)
err = serve(servConn, "unix", listenAddr, results)
if err != nil {
logrus.Fatal(err)
proxyLog.Fatal(err)
}

for err = range results {
if err != nil {
logrus.Fatal(err)
proxyLog.Fatal(err)
}
}
}

0 comments on commit 8c3bf59

Please sign in to comment.