Apply review suggestions
diff --git a/core/kg/model/config.go b/core/kg/model/config.go
index 04cc39b..fd8c034 100644
--- a/core/kg/model/config.go
+++ b/core/kg/model/config.go
@@ -14,9 +14,9 @@
)
type Config struct {
- SQLSettings SQLSettings
- HTTPSettings HTTPSettings
- GRPCSettings GRPCSettings
+ SQL SQLConfig
+ HTTP HTTPConfig
+ GRPC GRPCConfig
}
func NewConfig() *Config {
@@ -26,27 +26,26 @@
}
func (c *Config) SetDefaults() {
- c.SQLSettings.SetDefaults()
- c.HTTPSettings.SetDefaults()
- c.GRPCSettings.SetDefaults()
+ c.SQL.SetDefaults()
+ c.HTTP.SetDefaults()
+ c.GRPC.SetDefaults()
}
-type SQLSettings struct {
+type SQLConfig struct {
DriverName string
DataSource string
}
-func (s *SQLSettings) SetDefaults() {
+func (s *SQLConfig) SetDefaults() {
if s.DriverName == "" {
s.DriverName = databaseDriverPostgres
}
-
if s.DataSource == "" {
s.DataSource = defaultDataSource
}
}
-type HTTPSettings struct {
+type HTTPConfig struct {
Host string
Port int
ReadTimeout int
@@ -54,33 +53,29 @@
IdleTimeout int
}
-func (s *HTTPSettings) SetDefaults() {
+func (s *HTTPConfig) SetDefaults() {
if s.Host == "" {
s.Host = defaultHTTPHost
}
-
if s.Port == 0 {
s.Port = defaultHTTPPort
}
-
if s.ReadTimeout == 0 {
s.ReadTimeout = defaultHTTPReadTimeout
}
-
if s.WriteTimeout == 0 {
s.WriteTimeout = defaultHTTPWriteTimeout
}
-
if s.IdleTimeout == 0 {
s.IdleTimeout = defaultHTTPIdleTimeout
}
}
-type GRPCSettings struct {
+type GRPCConfig struct {
Port int
}
-func (s *GRPCSettings) SetDefaults() {
+func (s *GRPCConfig) SetDefaults() {
if s.Port == 0 {
s.Port = defaultGRPCPort
}
diff --git a/core/kg/server/grpc_server.go b/core/kg/server/grpc_server.go
index bc3b05f..565ce77 100644
--- a/core/kg/server/grpc_server.go
+++ b/core/kg/server/grpc_server.go
@@ -38,20 +38,17 @@
func (a *GRPCServerImpl) Start() error {
a.Log.Info("Starting GRPC Server...")
- // settings := model.NewConfig().SqlSettings
- // a.store = sqlstore.New(settings)
-
- lis, err := net.Listen("tcp", fmt.Sprintf(":%d", a.config.GRPCSettings.Port))
+ lis, err := net.Listen("tcp", fmt.Sprintf(":%d", a.config.GRPC.Port))
if err != nil {
- a.Log.Error("failed to listen: %v", log.Err(err))
+ a.Log.Error("Failed to listen: %v", log.Err(err))
return err
}
a.srv = grpc.NewServer()
- a.Log.Info("GRPC Server is listening on", log.Int("port", a.config.GRPCSettings.Port))
+ a.Log.Info("GRPC Server is listening on", log.Int("port", a.config.GRPC.Port))
if err := a.srv.Serve(lis); err != nil {
- a.Log.Error("failed to serve rpc: %v", log.Err(err))
+ a.Log.Error("Failed to serve rpc: %v", log.Err(err))
return err
}
return nil
diff --git a/core/kg/server/http_server.go b/core/kg/server/http_server.go
index e4a7688..6802332 100644
--- a/core/kg/server/http_server.go
+++ b/core/kg/server/http_server.go
@@ -44,16 +44,16 @@
a.Log.Info("Starting HTTP Server...")
a.srv = &http.Server{
- Addr: fmt.Sprintf("%s:%d", a.config.HTTPSettings.Host, a.config.HTTPSettings.Port),
+ Addr: fmt.Sprintf("%s:%d", a.config.HTTP.Host, a.config.HTTP.Port),
Handler: a.root,
- ReadTimeout: time.Duration(a.config.HTTPSettings.ReadTimeout) * time.Second,
- WriteTimeout: time.Duration(a.config.HTTPSettings.WriteTimeout) * time.Second,
- IdleTimeout: time.Duration(a.config.HTTPSettings.IdleTimeout) * time.Second,
+ ReadTimeout: time.Duration(a.config.HTTP.ReadTimeout) * time.Second,
+ WriteTimeout: time.Duration(a.config.HTTP.WriteTimeout) * time.Second,
+ IdleTimeout: time.Duration(a.config.HTTP.IdleTimeout) * time.Second,
}
- a.Log.Info("HTTP Server is listening on", log.Int("port", a.config.HTTPSettings.Port))
+ a.Log.Info("HTTP Server is listening on", log.Int("port", a.config.HTTP.Port))
if err := a.srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
- a.Log.Error("failed to listen and serve: %v", log.Err(err))
+ a.Log.Error("Failed to listen and serve: %v", log.Err(err))
return err
}
return nil
@@ -63,7 +63,7 @@
func (a *HTTPServerImpl) Shutdown() error {
a.Log.Info("Stopping HTTP Server...")
if a.srv == nil {
- return errors.New("no http server present")
+ return errors.New("No http server present")
}
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
diff --git a/core/kg/server/servers.go b/core/kg/server/servers.go
index d197666..7363a0e 100644
--- a/core/kg/server/servers.go
+++ b/core/kg/server/servers.go
@@ -2,9 +2,10 @@
import (
"os"
+ "os/signal"
+ "syscall"
"github.com/giolekva/pcloud/core/kg/log"
- "github.com/vardius/shutdown"
)
// Server interface
@@ -41,11 +42,17 @@
}
}(server)
}
- shutdown.GracefulStop(func() { ss.shutdown() })
+ // wait for kill signal before attempting to gracefully shutdown
+ // the running service
+ interruptChan := make(chan os.Signal, 1)
+ signal.Notify(interruptChan, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
+ <-interruptChan
+ ss.logger.Info("os.Interrupt...")
+ ss.shutdown()
}
func (ss *Servers) shutdown() {
- ss.logger.Info("shutting down...")
+ ss.logger.Info("Shutting down...")
errCh := make(chan error, len(ss.servers))
@@ -58,12 +65,12 @@
for i := 0; i < len(ss.servers); i++ {
if err := <-errCh; err != nil {
go func(err error) {
- ss.logger.Error("shutdown error", log.Err(err))
+ ss.logger.Error("Shutdown error", log.Err(err))
os.Exit(1)
}(err)
return
}
}
- ss.logger.Info("gracefully stopped")
+ ss.logger.Info("Gracefully stopped")
}
diff --git a/core/kg/store/sqlstore/store.go b/core/kg/store/sqlstore/store.go
index 2fbe0c7..fd53f1e 100644
--- a/core/kg/store/sqlstore/store.go
+++ b/core/kg/store/sqlstore/store.go
@@ -8,9 +8,9 @@
)
type SqlStore struct {
- db *sqlx.DB
- stores SqlStoreStores
- settings *model.SQLSettings
+ db *sqlx.DB
+ stores SqlStoreStores
+ config *model.SQLConfig
}
var _ store.Store = &SqlStore{}
@@ -19,9 +19,9 @@
user store.UserStore
}
-func New(settings model.SQLSettings) *SqlStore {
+func New(config model.SQLConfig) *SqlStore {
store := &SqlStore{
- settings: &settings,
+ config: &config,
}
store.initConnection()
@@ -32,7 +32,7 @@
}
func (ss *SqlStore) initConnection() {
- ss.db = sqlx.MustConnect(ss.settings.DriverName, ss.settings.DataSource)
+ ss.db = sqlx.MustConnect(ss.config.DriverName, ss.config.DataSource)
}
func (ss *SqlStore) getQueryBuilder() sq.StatementBuilderType {