45 lines
917 B
Go
45 lines
917 B
Go
package api
|
|
|
|
import (
|
|
"log"
|
|
"net"
|
|
"strings"
|
|
"time"
|
|
|
|
"deevirt.fr/compute/pkg/api/proto"
|
|
"deevirt.fr/compute/pkg/config"
|
|
clientv3 "go.etcd.io/etcd/client/v3"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/reflection"
|
|
)
|
|
|
|
func Server() {
|
|
config, _ := config.New()
|
|
|
|
//listen on the port
|
|
lis, err := net.Listen("tcp", ":8080")
|
|
if err != nil {
|
|
log.Fatalf("Failed to start server %v", err)
|
|
}
|
|
|
|
etcd, err := clientv3.New(clientv3.Config{
|
|
Endpoints: strings.Split(config.EtcdURI, ","),
|
|
DialTimeout: 5 * time.Second,
|
|
})
|
|
if err != nil {
|
|
log.Fatalf("Error connexion to etcd: %v", err)
|
|
}
|
|
defer etcd.Close()
|
|
|
|
grpcServer := grpc.NewServer()
|
|
proto.RegisterDomainServer(grpcServer, &Domain{
|
|
Config: config,
|
|
Etcd: etcd,
|
|
})
|
|
reflection.Register(grpcServer)
|
|
log.Printf("Server started at %v", lis.Addr())
|
|
if err := grpcServer.Serve(lis); err != nil {
|
|
log.Fatalf("Failed to start: %v", err)
|
|
}
|
|
}
|