Skip to content

Commit 7bc2719

Browse files
committed
Reconnect to the db if ping failed + removed panic
1 parent 59a18b0 commit 7bc2719

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

go/dhcp/api.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/davecgh/go-spew/spew"
1515
"github.com/gorilla/mux"
1616
"github.com/inverse-inc/packetfence/go/api-frontend/unifiedapierrors"
17+
"github.com/inverse-inc/packetfence/go/log"
1718
"github.com/inverse-inc/packetfence/go/pfconfigdriver"
1819
"github.com/inverse-inc/packetfence/go/sharedutils"
1920
dhcp "github.com/krolaw/dhcp4"
@@ -180,7 +181,7 @@ func handleReleaseIP(res http.ResponseWriter, req *http.Request) {
180181
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
181182
res.WriteHeader(http.StatusOK)
182183
if err := json.NewEncoder(res).Encode(result); err != nil {
183-
panic(err)
184+
log.LoggerWContext(ctx).Error("Error releasing IP: " + err.Error())
184185
}
185186
}
186187

@@ -204,7 +205,7 @@ func handleOverrideOptions(res http.ResponseWriter, req *http.Request) {
204205
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
205206
res.WriteHeader(http.StatusOK)
206207
if err := json.NewEncoder(res).Encode(result); err != nil {
207-
panic(err)
208+
log.LoggerWContext(ctx).Error("Error adding MAC options: " + err.Error())
208209
}
209210
}
210211

@@ -228,7 +229,7 @@ func handleOverrideNetworkOptions(res http.ResponseWriter, req *http.Request) {
228229
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
229230
res.WriteHeader(http.StatusOK)
230231
if err := json.NewEncoder(res).Encode(result); err != nil {
231-
panic(err)
232+
log.LoggerWContext(ctx).Error("Error adding network options: " + err.Error())
232233
}
233234
}
234235

@@ -245,7 +246,7 @@ func handleRemoveOptions(res http.ResponseWriter, req *http.Request) {
245246
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
246247
res.WriteHeader(http.StatusOK)
247248
if err := json.NewEncoder(res).Encode(result); err != nil {
248-
panic(err)
249+
log.LoggerWContext(ctx).Error("Error removing MAC options: " + err.Error())
249250
}
250251
}
251252

@@ -262,7 +263,7 @@ func handleRemoveNetworkOptions(res http.ResponseWriter, req *http.Request) {
262263
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
263264
res.WriteHeader(http.StatusOK)
264265
if err := json.NewEncoder(res).Encode(result); err != nil {
265-
panic(err)
266+
log.LoggerWContext(ctx).Error("Error removing betwork options: " + err.Error())
266267
}
267268
}
268269

go/dhcp/keysoption.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import (
55
)
66

77
func MysqlInsert(key string, value string) bool {
8+
if err := MySQLdatabase.PingContext(ctx); err != nil {
9+
log.LoggerWContext(ctx).Error("Unable to ping database, reconnect: " + err.Error())
10+
}
811
rows, err := MySQLdatabase.Query("replace into key_value_storage values(?,?)", "/dhcpd/"+key, value)
912
defer rows.Close()
1013
if err != nil {
@@ -16,6 +19,9 @@ func MysqlInsert(key string, value string) bool {
1619
}
1720

1821
func MysqlGet(key string) (string, string) {
22+
if err := MySQLdatabase.PingContext(ctx); err != nil {
23+
log.LoggerWContext(ctx).Error("Unable to ping database, reconnect: " + err.Error())
24+
}
1925
rows, err := MySQLdatabase.Query("select id, value from key_value_storage where id = ?", "/dhcpd/"+key)
2026
defer rows.Close()
2127
if err != nil {
@@ -36,6 +42,9 @@ func MysqlGet(key string) (string, string) {
3642
}
3743

3844
func MysqlDel(key string) bool {
45+
if err := MySQLdatabase.PingContext(ctx); err != nil {
46+
log.LoggerWContext(ctx).Error("Unable to ping database, reconnect: " + err.Error())
47+
}
3948
rows, err := MySQLdatabase.Query("delete from key_value_storage where id = ?", "/dhcpd/"+key)
4049
defer rows.Close()
4150
if err != nil {

0 commit comments

Comments
 (0)