feat(config): add grpc config. (#255)
This commit is contained in:
		
							parent
							
								
									9a52f8f2b5
								
							
						
					
					
						commit
						41a8a609be
					
				|  | @ -86,6 +86,10 @@ core: | |||
|     folder: ".cache" # folder for storing TLS certificates | ||||
|     host: "" # which domains the Let's Encrypt will attempt | ||||
| 
 | ||||
| grpc: | ||||
|   enabled: false | ||||
|   port: 50051 | ||||
| 
 | ||||
| api: | ||||
|   push_uri: "/api/push" | ||||
|   stat_go_uri: "/api/stat/go" | ||||
|  |  | |||
|  | @ -15,6 +15,7 @@ type ConfYaml struct { | |||
| 	Ios     SectionIos     `yaml:"ios"` | ||||
| 	Log     SectionLog     `yaml:"log"` | ||||
| 	Stat    SectionStat    `yaml:"stat"` | ||||
| 	GRPC    SectionGRPC    `yaml:"grpc"` | ||||
| } | ||||
| 
 | ||||
| // SectionCore is sub section of config.
 | ||||
|  | @ -115,6 +116,12 @@ type SectionPID struct { | |||
| 	Override bool   `yaml:"override"` | ||||
| } | ||||
| 
 | ||||
| // SectionGRPC is sub section of config.
 | ||||
| type SectionGRPC struct { | ||||
| 	Enabled bool   `yaml:"enabled"` | ||||
| 	Port    string `yaml:"port"` | ||||
| } | ||||
| 
 | ||||
| // BuildDefaultPushConf is default config setting.
 | ||||
| func BuildDefaultPushConf() ConfYaml { | ||||
| 	var conf ConfYaml | ||||
|  | @ -165,17 +172,19 @@ func BuildDefaultPushConf() ConfYaml { | |||
| 	conf.Log.ErrorLevel = "error" | ||||
| 	conf.Log.HideToken = true | ||||
| 
 | ||||
| 	// Stat Engine
 | ||||
| 	conf.Stat.Engine = "memory" | ||||
| 	conf.Stat.Redis.Addr = "localhost:6379" | ||||
| 	conf.Stat.Redis.Password = "" | ||||
| 	conf.Stat.Redis.DB = 0 | ||||
| 
 | ||||
| 	conf.Stat.BoltDB.Path = "bolt.db" | ||||
| 	conf.Stat.BoltDB.Bucket = "gorush" | ||||
| 
 | ||||
| 	conf.Stat.BuntDB.Path = "bunt.db" | ||||
| 	conf.Stat.LevelDB.Path = "level.db" | ||||
| 
 | ||||
| 	// gRPC Server
 | ||||
| 	conf.GRPC.Enabled = false | ||||
| 	conf.GRPC.Port = "50051" | ||||
| 	return conf | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,6 +18,10 @@ core: | |||
|     folder: ".cache" # folder for storing TLS certificates | ||||
|     host: "" # which domains the Let's Encrypt will attempt | ||||
| 
 | ||||
| grpc: | ||||
|   enabled: false | ||||
|   port: 50051 | ||||
| 
 | ||||
| api: | ||||
|   push_uri: "/api/push" | ||||
|   stat_go_uri: "/api/stat/go" | ||||
|  |  | |||
|  | @ -111,6 +111,10 @@ func (suite *ConfigTestSuite) TestValidateConfDefault() { | |||
| 
 | ||||
| 	assert.Equal(suite.T(), "bunt.db", suite.ConfGorushDefault.Stat.BuntDB.Path) | ||||
| 	assert.Equal(suite.T(), "level.db", suite.ConfGorushDefault.Stat.LevelDB.Path) | ||||
| 
 | ||||
| 	// gRPC
 | ||||
| 	assert.Equal(suite.T(), false, suite.ConfGorushDefault.GRPC.Enabled) | ||||
| 	assert.Equal(suite.T(), "50051", suite.ConfGorushDefault.GRPC.Port) | ||||
| } | ||||
| 
 | ||||
| func (suite *ConfigTestSuite) TestValidateConf() { | ||||
|  | @ -171,6 +175,10 @@ func (suite *ConfigTestSuite) TestValidateConf() { | |||
| 
 | ||||
| 	assert.Equal(suite.T(), "bunt.db", suite.ConfGorush.Stat.BuntDB.Path) | ||||
| 	assert.Equal(suite.T(), "level.db", suite.ConfGorush.Stat.LevelDB.Path) | ||||
| 
 | ||||
| 	// gRPC
 | ||||
| 	assert.Equal(suite.T(), false, suite.ConfGorush.GRPC.Enabled) | ||||
| 	assert.Equal(suite.T(), "50051", suite.ConfGorush.GRPC.Port) | ||||
| } | ||||
| 
 | ||||
| func TestConfigTestSuite(t *testing.T) { | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ import ( | |||
| 
 | ||||
| // RunHTTPServer provide run http or https protocol.
 | ||||
| func RunHTTPServer() (err error) { | ||||
| 	LogAccess.Debug("HTTPD server is running on " + PushConf.Core.Port + " port.") | ||||
| 	if PushConf.Core.AutoTLS.Enabled { | ||||
| 		err = gracehttp.Serve(autoTLSServer()) | ||||
| 	} else if PushConf.Core.SSL && PushConf.Core.CertPath != "" && PushConf.Core.KeyPath != "" { | ||||
|  |  | |||
|  | @ -45,7 +45,12 @@ func (s *server) Send(ctx context.Context, in *pb.NotificationRequest) (*pb.Noti | |||
| 
 | ||||
| // RunGRPCServer run gorush grpc server
 | ||||
| func RunGRPCServer() error { | ||||
| 	lis, err := net.Listen("tcp", port) | ||||
| 	if !gorush.PushConf.GRPC.Enabled { | ||||
| 		gorush.LogAccess.Debug("gRPC server is disabled.") | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	lis, err := net.Listen("tcp", ":"+gorush.PushConf.GRPC.Port) | ||||
| 	if err != nil { | ||||
| 		gorush.LogError.Error("failed to listen: %v", err) | ||||
| 		return err | ||||
|  | @ -54,6 +59,7 @@ func RunGRPCServer() error { | |||
| 	pb.RegisterGorushServer(s, &server{}) | ||||
| 	// Register reflection service on gRPC server.
 | ||||
| 	reflection.Register(s) | ||||
| 	gorush.LogAccess.Debug("gRPC server is running on " + gorush.PushConf.GRPC.Port + " port.") | ||||
| 	if err := s.Serve(lis); err != nil { | ||||
| 		gorush.LogError.Error("failed to serve: %v", err) | ||||
| 		return err | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue