2024-11-08 16:26:22 +03:00
|
|
|
// main implements a single mock GRPC server for backend services defined by
|
|
|
|
// BILLSTAT_URL, PROFILES_URL, and REMOTE_KV_URL environment variables.
|
2024-01-04 19:22:32 +03:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net"
|
2024-07-10 19:49:07 +03:00
|
|
|
"os"
|
2024-01-04 19:22:32 +03:00
|
|
|
|
|
|
|
"github.com/AdguardTeam/AdGuardDNS/internal/backendpb"
|
2024-07-10 19:49:07 +03:00
|
|
|
"github.com/AdguardTeam/golibs/logutil/slogutil"
|
|
|
|
"github.com/AdguardTeam/golibs/osutil"
|
2024-01-04 19:22:32 +03:00
|
|
|
"google.golang.org/grpc"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2024-07-10 19:49:07 +03:00
|
|
|
l := slogutil.New(nil)
|
|
|
|
|
2024-01-04 19:22:32 +03:00
|
|
|
const listenAddr = "localhost:6062"
|
2024-11-08 16:26:22 +03:00
|
|
|
|
2024-07-10 19:49:07 +03:00
|
|
|
lsnr, err := net.Listen("tcp", listenAddr)
|
2024-01-04 19:22:32 +03:00
|
|
|
if err != nil {
|
2024-07-10 19:49:07 +03:00
|
|
|
l.Error("getting listener", slogutil.KeyError, err)
|
|
|
|
|
|
|
|
os.Exit(osutil.ExitCodeFailure)
|
2024-01-04 19:22:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
grpcSrv := grpc.NewServer()
|
2024-11-08 16:26:22 +03:00
|
|
|
dnsSrv := newMockDNSServiceServer(l.With(slogutil.KeyPrefix, "dns"))
|
|
|
|
backendpb.RegisterDNSServiceServer(grpcSrv, dnsSrv)
|
|
|
|
|
|
|
|
kvSrv := newMockRemoteKVServiceServer(l.With(slogutil.KeyPrefix, "remote_kv"))
|
|
|
|
backendpb.RegisterRemoteKVServiceServer(grpcSrv, kvSrv)
|
|
|
|
|
|
|
|
rateLimitSrv := newMockRateLimitServiceServer(l.With(slogutil.KeyPrefix, "rate_limiter"))
|
|
|
|
backendpb.RegisterRateLimitServiceServer(grpcSrv, rateLimitSrv)
|
2024-01-04 19:22:32 +03:00
|
|
|
|
2024-07-10 19:49:07 +03:00
|
|
|
l.Info("staring serving", "laddr", listenAddr)
|
|
|
|
err = grpcSrv.Serve(lsnr)
|
2024-01-04 19:22:32 +03:00
|
|
|
if err != nil {
|
2024-07-10 19:49:07 +03:00
|
|
|
l.Error("serving grpc", slogutil.KeyError, err)
|
|
|
|
|
|
|
|
os.Exit(osutil.ExitCodeFailure)
|
2024-01-04 19:22:32 +03:00
|
|
|
}
|
|
|
|
}
|