func NewServer(config *configuration.Configuration, coord api.Coordinator, clusterConfig *cluster.ClusterConfiguration) *Server { s := &Server{} s.listenAddress = config.CollectdBindString() s.database = config.CollectdDatabase s.coordinator = coord s.shutdown = make(chan bool, 1) s.clusterConfig = clusterConfig s.typesdbpath = config.CollectdTypesDB s.typesdb = make(collectd.Types) return s }
func NewHttpServer(config *configuration.Configuration, theCoordinator api.Coordinator, userManager UserManager, clusterConfig *cluster.ClusterConfiguration, raftServer *coordinator.RaftServer) *HttpServer { self := &HttpServer{} self.httpPort = config.ApiHttpPortString() self.coordinator = theCoordinator self.userManager = userManager self.shutdown = make(chan bool, 2) self.clusterConfig = clusterConfig self.raftServer = raftServer self.readTimeout = config.ApiReadTimeout self.config = config self.p = pat.New() return self }
// TODO: check that database exists and create it if not func NewServer(config *configuration.Configuration, coord api.Coordinator, clusterConfig *cluster.ClusterConfiguration) *Server { self := &Server{} self.listenAddress = config.GraphiteBindString() self.database = config.GraphiteDatabase self.coordinator = coord self.writeSeries = make(chan Record, max_queue) self.allCommitted = make(chan bool, 1) self.connClosed = make(chan bool, 1) self.clusterConfig = clusterConfig self.udpEnabled = config.GraphiteUdpEnabled return self }
func NewServer(config *configuration.Configuration) (*Server, error) { log.Info("Opening database at %s", config.DataDir) metaStore := metastore.NewStore() shardDb, err := datastore.NewShardDatastore(config, metaStore) if err != nil { return nil, err } newClient := func(connectString string) cluster.ServerConnection { return coordinator.NewProtobufClient(connectString, config.ProtobufTimeout.Duration) } writeLog, err := wal.NewWAL(config) if err != nil { return nil, err } clusterConfig := cluster.NewClusterConfiguration(config, writeLog, shardDb, newClient, metaStore) raftServer := coordinator.NewRaftServer(config, clusterConfig) metaStore.SetClusterConsensus(raftServer) clusterConfig.LocalRaftName = raftServer.GetRaftName() clusterConfig.SetShardCreator(raftServer) coord := coordinator.NewCoordinator(config, raftServer, clusterConfig) requestHandler := coordinator.NewProtobufRequestHandler(coord, clusterConfig) protobufServer := coordinator.NewProtobufServer(config.ProtobufListenString(), requestHandler) raftServer.AssignCoordinator(coord) httpApi := http.NewHttpServer(config, coord, coord, clusterConfig, raftServer) httpApi.EnableSsl(config.ApiHttpSslPortString(), config.ApiHttpCertPath) graphiteApi := graphite.NewServer(config, coord, clusterConfig) collectdApi := collectd.NewServer(config, coord, clusterConfig) adminServer := admin.NewHttpServer(config.AdminHttpPortString()) return &Server{ RaftServer: raftServer, ProtobufServer: protobufServer, ClusterConfig: clusterConfig, HttpApi: httpApi, GraphiteApi: graphiteApi, CollectdApi: collectdApi, Coordinator: coord, AdminServer: adminServer, Config: config, RequestHandler: requestHandler, writeLog: writeLog, shardStore: shardDb}, nil }