Create scaffolding of ddl-simulator
Implement global server as control plane Implement device to get their info from global server and connect each others
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"git.pengzhan.dev/ddp-simulator/pkg/env"
|
||||
"git.pengzhan.dev/ddp-simulator/pkg/global"
|
||||
pb "git.pengzhan.dev/ddp-simulator/proto"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
var (
|
||||
ip = flag.String("ip", "0.0.0.0", "The global server ip")
|
||||
port = flag.Int("port", 3200, "The global server port")
|
||||
configPath = flag.String("config-path", "", "Config file path")
|
||||
)
|
||||
|
||||
func init() {
|
||||
flag.Parse()
|
||||
|
||||
log.SetOutput(os.Stdout)
|
||||
log.SetLevel(log.TraceLevel)
|
||||
// log.SetReportCaller(true)
|
||||
}
|
||||
|
||||
func main() {
|
||||
lis, err := net.Listen(env.PROTOCOL, fmt.Sprintf("%s:%d", *ip, *port))
|
||||
if err != nil {
|
||||
log.Fatalf("failed to listen: %v", err)
|
||||
}
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
||||
go func() {
|
||||
<-c
|
||||
os.Exit(1)
|
||||
}()
|
||||
|
||||
s := grpc.NewServer()
|
||||
g := global.NewGlobalServer(*configPath)
|
||||
pb.RegisterGlobalServiceServer(s, g)
|
||||
|
||||
if err := s.Serve(lis); err != nil {
|
||||
log.Fatalf("failed to serve: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user