Add TO Golang DBMaxConns config

Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/10a410a3
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/10a410a3
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/10a410a3

Branch: refs/heads/master
Commit: 10a410a3467f5e864ff47dd44ec3d7184d34923b
Parents: d45733b
Author: Robert Butts <robert.o.bu...@gmail.com>
Authored: Tue Aug 1 18:03:43 2017 -0600
Committer: Dewayne Richardson <dewr...@apache.org>
Committed: Thu Aug 10 09:46:03 2017 -0600

----------------------------------------------------------------------
 traffic_ops/traffic_ops_golang/config.go        |  1 +
 traffic_ops/traffic_ops_golang/perlconfig.go    | 22 +++++++++++++-------
 .../traffic_ops_golang/traffic_ops_golang.go    |  2 ++
 3 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/10a410a3/traffic_ops/traffic_ops_golang/config.go
----------------------------------------------------------------------
diff --git a/traffic_ops/traffic_ops_golang/config.go 
b/traffic_ops/traffic_ops_golang/config.go
index 0c87878..3dc06c9 100644
--- a/traffic_ops/traffic_ops_golang/config.go
+++ b/traffic_ops/traffic_ops_golang/config.go
@@ -41,6 +41,7 @@ type Config struct {
        Insecure           bool     `json:"insecure"`
        CertPath           string   `json:"cert_path"`
        KeyPath            string   `json:"key_path"`
+       MaxDBConnections   int      `json:"max_db_connections"`
        LogLocationError   string   `json:"log_location_error"`
        LogLocationWarning string   `json:"log_location_warning"`
        LogLocationInfo    string   `json:"log_location_info"`

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/10a410a3/traffic_ops/traffic_ops_golang/perlconfig.go
----------------------------------------------------------------------
diff --git a/traffic_ops/traffic_ops_golang/perlconfig.go 
b/traffic_ops/traffic_ops_golang/perlconfig.go
index a3013dc..d088fb3 100644
--- a/traffic_ops/traffic_ops_golang/perlconfig.go
+++ b/traffic_ops/traffic_ops_golang/perlconfig.go
@@ -33,6 +33,7 @@ import (
 
 const OldAccessLogPath = "/var/log/traffic_ops/access.log"
 const NewLogPath = "/var/log/traffic_ops/traffic_ops_golang.log"
+const DefaultMaxDBConnections = 50
 
 func GetPerlConfigs(cdnConfPath string, dbConfPath string) (Config, error) {
        configBytes, err := ioutil.ReadFile(cdnConfPath)
@@ -71,6 +72,12 @@ func getPerlConfigsFromStrs(cdnConfBytes string, dbConfBytes 
string) (Config, er
        cfg.LogLocationEvent = OldAccessLogPath
        cfg.LogLocationDebug = log.LogLocationNull
 
+       if dbconf.MaxConnections != nil {
+               cfg.MaxDBConnections = *dbconf.MaxConnections
+       } else {
+               cfg.MaxDBConnections = DefaultMaxDBConnections
+       }
+
        return cfg, nil
 }
 
@@ -272,13 +279,14 @@ func getSecret(obj map[string]interface{}) (string, 
error) {
 }
 
 type DatabaseConf struct {
-       Description string `json:"description"`
-       DBName      string `json:"dbname"`
-       Hostname    string `json:"hostname"`
-       User        string `json:"user"`
-       Password    string `json:"password"`
-       Port        string `json:"port"`
-       Type        string `json:"type"`
+       Description    string `json:"description"`
+       DBName         string `json:"dbname"`
+       Hostname       string `json:"hostname"`
+       User           string `json:"user"`
+       Password       string `json:"password"`
+       Port           string `json:"port"`
+       Type           string `json:"type"`
+       MaxConnections *int   `json:"max_connections"`
 }
 
 func getDbConf(s string) (DatabaseConf, error) {

http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/10a410a3/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
----------------------------------------------------------------------
diff --git a/traffic_ops/traffic_ops_golang/traffic_ops_golang.go 
b/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
index 6d2c75b..4a41954 100644
--- a/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
+++ b/traffic_ops/traffic_ops_golang/traffic_ops_golang.go
@@ -77,6 +77,8 @@ func main() {
        }
        defer db.Close()
 
+       db.SetMaxOpenConns(cfg.MaxDBConnections)
+
        if err := RegisterRoutes(ServerData{DB: db, Config: cfg}); err != nil {
                log.Errorf("registering routes: %v\n", err)
                return

Reply via email to