48 lines
896 B
Go
48 lines
896 B
Go
package core
|
|
|
|
import (
|
|
"log"
|
|
"msw/proto"
|
|
"msw/rpc"
|
|
"msw/shell"
|
|
"net"
|
|
"time"
|
|
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/keepalive"
|
|
)
|
|
|
|
var kaep = keepalive.EnforcementPolicy{
|
|
MinTime: 5 * time.Second,
|
|
PermitWithoutStream: true,
|
|
}
|
|
|
|
var kasp = keepalive.ServerParameters{
|
|
Time: 1 * time.Second,
|
|
Timeout: 5 * time.Second,
|
|
}
|
|
|
|
func Start() {
|
|
log.Println("Starting main loop")
|
|
|
|
go shell.ExecuteOne("./resources/node_exporter")
|
|
go shell.ExecuteOne("./resources/ipmi_exporter")
|
|
|
|
go func() {
|
|
listAddr := "0.0.0.0:3939"
|
|
list, err := net.Listen("tcp", listAddr)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
s := grpc.NewServer(
|
|
grpc.KeepaliveEnforcementPolicy(kaep),
|
|
grpc.KeepaliveParams(kasp),
|
|
)
|
|
proto.RegisterMSWServer(s, &rpc.MSWServer{})
|
|
log.Println("RPC Server started on", listAddr)
|
|
if err := s.Serve(list); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}()
|
|
}
|