MCPcopy Create free account
hub / github.com/apache/kvrocks-controller / NewServer

Function NewServer

server/server.go:55–98  ·  view source on GitHub ↗
(cfg *config.Config)

Source from the content-addressed store, hash-verified

53}
54
55func NewServer(cfg *config.Config) (*Server, error) {
56 var persist engine.Engine
57 var err error
58
59 sessionID := helper.GenerateSessionID(cfg.Addr)
60 storageType := strings.ToLower(cfg.StorageType)
61 switch storageType {
62 case "etcd":
63 logger.Get().Info("Use Etcd as store")
64 persist, err = etcd.New(sessionID, cfg.Etcd)
65 case "zookeeper":
66 logger.Get().Info("Use Zookeeper as store")
67 persist, err = zookeeper.New(sessionID, cfg.Zookeeper)
68 case "raft":
69 logger.Get().Info("Use Raft as store")
70 persist, err = raft.New(cfg.Raft)
71 case "consul":
72 logger.Get().Info("Use Consul as store")
73 persist, err = consul.New(sessionID, cfg.Consul)
74 default:
75 logger.Get().Info("Use Etcd as default store")
76 persist, err = etcd.New(sessionID, cfg.Etcd)
77 }
78
79 if err != nil {
80 return nil, err
81 }
82 if persist == nil {
83 return nil, fmt.Errorf("no found any store config")
84 }
85
86 clusterStore := store.NewClusterStore(persist)
87 ctrl, err := controller.New(clusterStore, cfg.Controller)
88 if err != nil {
89 return nil, err
90 }
91 gin.SetMode(gin.ReleaseMode)
92 return &Server{
93 store: clusterStore,
94 controller: ctrl,
95 config: cfg,
96 engine: gin.New(),
97 }, nil
98}
99
100func (srv *Server) startAPIServer() {
101 srv.initHandlers()

Callers 1

mainFunction · 0.92

Calls 10

GenerateSessionIDFunction · 0.92
GetFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewClusterStoreFunction · 0.92
NewFunction · 0.92
InfoMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected