Skip to content
Snippets Groups Projects
Commit 8bab9d00 authored by Alexey Kuklin's avatar Alexey Kuklin
Browse files

Merge branch '326-http-gateway-in-front-each-golang-microservice' into 'localbuild'

# Conflicts:
#   config/configs.go
parents 1a470317 03e1ed50
No related branches found
No related tags found
3 merge requests!53Localbuild,!52Localbuild,!49326 http gateway in front each golang microservice
......@@ -6,6 +6,8 @@
dataStorageUrl: localhost:7777
grpcListenAddress: localhost:7877
restListenAddress: localhost:7878
# This one using by rest-gateway. Must contain the same domain name with issued certificate
grpcURL: key-storage-agent:7877
# VIAM Variables
viamUUID: viam-system
......
......@@ -29,6 +29,7 @@ var MaxMessageSize int
var GrpcListenAddress string
var RestListenAddress string
var GrpcURL string
var DataStorageUrl string
var EntitiesManagerUrl string
var CertDir string
......@@ -41,6 +42,7 @@ func SetConfigValues(configFile, etcdURL string) {
viper.SetDefault("restListenAddress", ":7878")
viper.SetDefault("dataStorageUrl", "data-storage-agent:7777")
viper.SetDefault("entitiesManagerUrl", "entities-management-agent:7779")
viper.SetDefault("grpcURL", "key-storage-agent:7877")
viper.SetDefault("viamUUID", "viam-system")
viper.SetDefault("viamSession", "viam-session")
......@@ -122,6 +124,7 @@ func SetConfigValues(configFile, etcdURL string) {
}
GrpcListenAddress = viper.GetString("grpcListenAddress")
GrpcURL = viper.GetString("grpcURL")
RestListenAddress = viper.GetString("restListenAddress")
DataStorageUrl = viper.GetString("dataStorageUrl")
......
......@@ -42,6 +42,7 @@ func main() {
grpcAddress := config.GrpcListenAddress
restAddress := config.RestListenAddress
grpcURL := config.GrpcURL
dataStorageAddress := config.DataStorageUrl
certPem := config.CertificatePEM
keyPem := config.PrivateKeyPEM
......@@ -62,7 +63,7 @@ func main() {
// fire the REST server in a goroutine
go func() {
err := server.StartRESTServer(restAddress, grpcAddress, certPem)
err := server.StartRESTServer(restAddress, grpcURL, certPem, keyPem)
if err != nil {
log.Fatalf("failed to start gRPC server: %s", err)
}
......
......@@ -54,6 +54,9 @@ func credMatcher(headerName string) (mdName string, ok bool) {
if headerName == "Session" {
return headerName, true
}
if headerName == "Uuid" {
return headerName, true
}
return "", false
}
......@@ -177,7 +180,8 @@ func StartGRPCServer(address string, certPEM, privateKeyPEM, caCertPEM, vereignC
return nil
}
func StartRESTServer(address, grpcAddress string, certPEM []byte) error {
func StartRESTServer(address, grpcURL string, certPEM, keyPEM []byte) error {
log.Println("grpcAddress: ", grpcURL)
ctx := context.Background()
ctx, cancel := context.WithCancel(ctx)
defer cancel()
......@@ -200,14 +204,31 @@ func StartRESTServer(address, grpcAddress string, certPEM []byte) error {
opts := []grpc.DialOption{grpc.WithTransportCredentials(creds)}
// Register RedisStorageServer
err = api.RegisterKeyStorageHandlerFromEndpoint(ctx, mux, grpcAddress, opts)
err = api.RegisterKeyStorageHandlerFromEndpoint(ctx, mux, grpcURL, opts)
if err != nil {
log.Printf("Error: %v", err)
return fmt.Errorf("could not register service RedisStorageServer: %s", err)
}
log.Printf("starting HTTP/1.1 REST server on %s", address)
http.ListenAndServe(address, mux)
// server certificate
certificate, err := tls.X509KeyPair(certPEM, keyPEM)
if err != nil {
log.Printf("Error: %v", err)
return fmt.Errorf("could not load server key pair: %s", err)
}
serverTLSConfig := &tls.Config{
Certificates: []tls.Certificate{certificate},
}
tlsServer := &http.Server{
Addr: address,
Handler: mux,
TLSConfig: serverTLSConfig,
}
log.Printf("starting HTTP/1.1 REST server on %s", address)
tlsServer.ListenAndServeTLS("","")
return nil
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment