diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 91e378384b88a26ecee5da1e27438f32af06dce6..d18705f005db8c59b4c8319d528d63bc1239ac3e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,7 +15,7 @@ Unit tests: - "coverage.html" script: - "ln -s $(pwd) $GOPATH/src/dfss" - - "go get gopkg.in/mgo.v2" + - "./build/deps.sh" - "go test -coverprofile auth.part -v ./auth" - "go test -coverprofile mgdb.part -v ./mgdb" - "go test -coverprofile mails.part -v ./mails" @@ -28,7 +28,7 @@ ARM tests: tags: - arm script: - - "go get gopkg.in/mgo.v2" + - "./build/deps.sh" - "go test -cover -short -v ./auth" - "go test -cover -short -v ./mgdb" @@ -41,7 +41,7 @@ Code lint: script: - "ln -s $(pwd) $GOPATH/src/dfss" - "go get github.com/alecthomas/gometalinter" - - "go get gopkg.in/mgo.v2" + - "./build/deps.sh" - "go install ./..." - "gometalinter --install" - "gometalinter -t --deadline=100s -j1 ./..." diff --git a/build/deps.sh b/build/deps.sh new file mode 100755 index 0000000000000000000000000000000000000000..569ce57d4b18f6d07d9f4e9af238d516504445ff --- /dev/null +++ b/build/deps.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# mongo +go get gopkg.in/mgo.v2 + +# grpc +go get google.golang.org/grpc diff --git a/net/client.go b/net/client.go index b5c9d9755ce502b2617563d64b93f427fe05184e..e1b919e46c8003f62558c0d67b08a9cddf8cba8c 100644 --- a/net/client.go +++ b/net/client.go @@ -3,25 +3,22 @@ package net import ( "crypto/tls" "crypto/x509" - "flag" - "io/ioutil" "log" - "math/rand" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/grpclog" ) -// Connect to a peer +// Connect to a peer. // +// Given parameters cert/key/ca are PEM-encoded array of byte // Closing must be defered after call -func Connect(addr_port string, cert, key, ca []byte) *ClientConn { +func Connect(addrPort string, cert, key, ca []byte) *grpc.ClientConn { // load peer cert/key, ca as PEM buffers peerCert, err := tls.X509KeyPair(cert, key) if err != nil { - log.Fatal("Load peer cert/key error: %v", err) + log.Fatalf("Load peer cert/key error: %v", err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(ca) @@ -33,7 +30,7 @@ func Connect(addr_port string, cert, key, ca []byte) *ClientConn { }) // let's do the dialing ! - con, err := grpc.Dial(addr_port, grpc.WithTransportCredentials(ta)) + con, err := grpc.Dial(addrPort, grpc.WithTransportCredentials(ta)) if err != nil { grpclog.Fatalf("Fail to dial: %v", err) } diff --git a/net/server.go b/net/server.go index 9a7b14e8a728598226be8f33f782de16be6dff72..e2b4e6af1651dceca46109b84b706d3a6c51171f 100644 --- a/net/server.go +++ b/net/server.go @@ -3,31 +3,27 @@ package net import ( "crypto/tls" "crypto/x509" - "flag" - "fmt" - "io/ioutil" "log" "net" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/grpclog" ) -// Create a new grpc server with given tls creds +// NewServer create a new grpc server with given tls credentials. // // cert/key/ca are PEM-encoded array of byte // // The returned grpcServer must be used in association with server{} to // register APIs before calling Listen() -func NewServer(cert, key, ca []byte) *Server { +func NewServer(cert, key, ca []byte) *grpc.Server { // configure gRPC var opts []grpc.ServerOption serverCert, err := tls.X509KeyPair(cert, key) if err != nil { - log.Fatal("Load peer cert/key error: %v", err) + log.Fatalf("Load peer cert/key error: %v", err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(ca) @@ -44,16 +40,20 @@ func NewServer(cert, key, ca []byte) *Server { return grpc.NewServer(opts...) } -// Listen with specified server on addr:port TCP +// Listen with specified server on addr:port. // -// addr is the addr to bind to -// port is the port to listen on -func Listen(addr, port string, grpcServer *Server) { +// addrPort is formated as 127.0.0.1:8001 +// * addr is the addr to bind to, +// * port is the port to listen on +func Listen(addrPort string, grpcServer *grpc.Server) { // open tcp socket - lis, err := net.Listen("tcp", fmt.Sprintf(":%d", *port)) + lis, err := net.Listen("tcp", addrPort) if err != nil { grpclog.Fatalf("Failed to open tcp socket: %v", err) } - grpcServer.Serve(lis) + err = grpcServer.Serve(lis) + if err != nil { + grpclog.Fatalf("Failed to bind gRPC server: %v", err) + } }