@@ -15,40 +15,40 @@ import (
15
15
16
16
// DBConnectionFactory is a database connection factory on postgres with gorp
17
17
type DBConnectionFactory struct {
18
- dbDriver string
19
- dbRole string
20
- dbUser string
21
- dbPassword string
22
- dbName string
23
- dbHost string
24
- dbPort int
25
- dbSSLMode string
26
- dbTimeout int
27
- dbConnectTimeout int
28
- dbMaxConn int
29
- db * sql.DB
18
+ DBDriver string
19
+ DBRole string
20
+ DBUser string
21
+ DBPassword string
22
+ DBName string
23
+ DBHost string
24
+ DBPort int
25
+ DBSSLMode string
26
+ DBTimeout int
27
+ DBConnectTimeout int
28
+ DBMaxConn int
29
+ Database * sql.DB
30
30
mutex * sync.Mutex
31
31
}
32
32
33
33
// DB returns the current sql.DB object
34
34
func (f * DBConnectionFactory ) DB () * sql.DB {
35
- if f .db == nil {
36
- if f .dbName == "" {
35
+ if f .Database == nil {
36
+ if f .DBName == "" {
37
37
return nil
38
38
}
39
- newF , err := Init (f .dbUser , f .dbRole , f .dbPassword , f .dbName , f .dbHost , f .dbPort , f .dbSSLMode , f .dbConnectTimeout , f .dbTimeout , f .dbMaxConn )
39
+ newF , err := Init (f .DBUser , f .DBRole , f .DBPassword , f .DBName , f .DBHost , f .DBPort , f .DBSSLMode , f .DBConnectTimeout , f .DBTimeout , f .DBMaxConn )
40
40
if err != nil {
41
41
log .Error ("Database> cannot init db connection : %s" , err )
42
42
return nil
43
43
}
44
44
* f = * newF
45
45
}
46
- if err := f .db .Ping (); err != nil {
46
+ if err := f .Database .Ping (); err != nil {
47
47
log .Error ("Database> cannot ping db : %s" , err )
48
- f .db = nil
48
+ f .Database = nil
49
49
return nil
50
50
}
51
- return f .db
51
+ return f .Database
52
52
}
53
53
54
54
// GetDBMap returns a gorp.DbMap pointer
@@ -58,76 +58,76 @@ func (f *DBConnectionFactory) GetDBMap() *gorp.DbMap {
58
58
59
59
//Set is for tetsing purpose, we need to set manually the connection
60
60
func (f * DBConnectionFactory ) Set (d * sql.DB ) {
61
- f .db = d
61
+ f .Database = d
62
62
}
63
63
64
64
// Init initialize sql.DB object by checking environment variables and connecting to database
65
65
func Init (user , role , password , name , host string , port int , sslmode string , connectTimeout , timeout , maxconn int ) (* DBConnectionFactory , error ) {
66
66
f := & DBConnectionFactory {
67
- dbDriver : "postgres" ,
68
- dbRole : role ,
69
- dbUser : user ,
70
- dbPassword : password ,
71
- dbName : name ,
72
- dbHost : host ,
73
- dbPort : port ,
74
- dbSSLMode : sslmode ,
75
- dbTimeout : timeout ,
76
- dbConnectTimeout : connectTimeout ,
77
- dbMaxConn : maxconn ,
67
+ DBDriver : "postgres" ,
68
+ DBRole : role ,
69
+ DBUser : user ,
70
+ DBPassword : password ,
71
+ DBName : name ,
72
+ DBHost : host ,
73
+ DBPort : port ,
74
+ DBSSLMode : sslmode ,
75
+ DBTimeout : timeout ,
76
+ DBConnectTimeout : connectTimeout ,
77
+ DBMaxConn : maxconn ,
78
78
mutex : & sync.Mutex {},
79
79
}
80
80
81
81
f .mutex .Lock ()
82
82
defer f .mutex .Unlock ()
83
83
84
84
// Try to close before reinit
85
- if f .db != nil {
86
- if err := f .db .Close (); err != nil {
85
+ if f .Database != nil {
86
+ if err := f .Database .Close (); err != nil {
87
87
log .Error ("Cannot close connection to DB : %s" , err )
88
88
}
89
89
}
90
90
91
91
var err error
92
92
93
- if f .dbUser == "" ||
94
- f .dbPassword == "" ||
95
- f .dbName == "" ||
96
- f .dbHost == "" ||
97
- f .dbPort == 0 {
93
+ if f .DBUser == "" ||
94
+ f .DBPassword == "" ||
95
+ f .DBName == "" ||
96
+ f .DBHost == "" ||
97
+ f .DBPort == 0 {
98
98
return nil , fmt .Errorf ("Missing database infos" )
99
99
}
100
100
101
- if f .dbTimeout < 200 || f .dbTimeout > 30000 {
102
- f .dbTimeout = 3000
101
+ if f .DBTimeout < 200 || f .DBTimeout > 30000 {
102
+ f .DBTimeout = 3000
103
103
}
104
104
105
- if f .dbConnectTimeout <= 0 {
106
- f .dbConnectTimeout = 10
105
+ if f .DBConnectTimeout <= 0 {
106
+ f .DBConnectTimeout = 10
107
107
}
108
108
109
109
// connect_timeout in seconds
110
110
// statement_timeout in milliseconds
111
111
dsn := f .dsn ()
112
- f .db , err = sql .Open (f .dbDriver , dsn )
112
+ f .Database , err = sql .Open (f .DBDriver , dsn )
113
113
if err != nil {
114
- f .db = nil
114
+ f .Database = nil
115
115
log .Error ("cannot open database: %s" , err )
116
116
return nil , err
117
117
}
118
118
119
- if err = f .db .Ping (); err != nil {
120
- f .db = nil
119
+ if err = f .Database .Ping (); err != nil {
120
+ f .Database = nil
121
121
return nil , err
122
122
}
123
123
124
- f .db .SetMaxOpenConns (f .dbMaxConn )
125
- f .db .SetMaxIdleConns (int (f .dbMaxConn / 2 ))
124
+ f .Database .SetMaxOpenConns (f .DBMaxConn )
125
+ f .Database .SetMaxIdleConns (int (f .DBMaxConn / 2 ))
126
126
127
127
// Set role if specified
128
128
if role != "" {
129
129
log .Debug ("database> setting role %s on database" , role )
130
- if _ , err := f .db .Exec ("SET ROLE '" + role + "'" ); err != nil {
130
+ if _ , err := f .Database .Exec ("SET ROLE '" + role + "'" ); err != nil {
131
131
log .Error ("unable to set role %s on database: %s" , role , err )
132
132
return nil , sdk .WrapError (err , "unable to set role %s" , role )
133
133
}
@@ -137,26 +137,26 @@ func Init(user, role, password, name, host string, port int, sslmode string, con
137
137
}
138
138
139
139
func (f * DBConnectionFactory ) dsn () string {
140
- return fmt .Sprintf ("user=%s password=%s dbname=%s host=%s port=%d sslmode=%s connect_timeout=%d statement_timeout=%d" , f .dbUser , f .dbPassword , f .dbName , f .dbHost , f .dbPort , f .dbSSLMode , f .dbConnectTimeout , f .dbTimeout )
140
+ return fmt .Sprintf ("user=%s password=%s dbname=%s host=%s port=%d sslmode=%s connect_timeout=%d statement_timeout=%d" , f .DBUser , f .DBPassword , f .DBName , f .DBHost , f .DBPort , f .DBSSLMode , f .DBConnectTimeout , f .DBTimeout )
141
141
}
142
142
143
143
// Status returns database driver and status in a printable string
144
144
func (f * DBConnectionFactory ) Status () sdk.MonitoringStatusLine {
145
- if f .db == nil {
145
+ if f .Database == nil {
146
146
return sdk.MonitoringStatusLine {Component : "Database Conns" , Value : "No Connection" , Status : sdk .MonitoringStatusAlert }
147
147
}
148
148
149
- if err := f .db .Ping (); err != nil {
149
+ if err := f .Database .Ping (); err != nil {
150
150
return sdk.MonitoringStatusLine {Component : "Database Conns" , Value : "No Ping" , Status : sdk .MonitoringStatusAlert }
151
151
}
152
152
153
- return sdk.MonitoringStatusLine {Component : "Database Conns" , Value : fmt .Sprintf ("%d" , f .db .Stats ().OpenConnections ), Status : sdk .MonitoringStatusOK }
153
+ return sdk.MonitoringStatusLine {Component : "Database Conns" , Value : fmt .Sprintf ("%d" , f .Database .Stats ().OpenConnections ), Status : sdk .MonitoringStatusOK }
154
154
}
155
155
156
156
// Close closes the database, releasing any open resources.
157
157
func (f * DBConnectionFactory ) Close () error {
158
- if f .db != nil {
159
- return f .db .Close ()
158
+ if f .Database != nil {
159
+ return f .Database .Close ()
160
160
}
161
161
return nil
162
162
}
0 commit comments