Skip to content

Commit e1f40dc

Browse files
committed
Reconnect to the db if ping failed + removed panic
1 parent e115c57 commit e1f40dc

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"
@@ -205,7 +206,7 @@ func handleReleaseIP(res http.ResponseWriter, req *http.Request) {
205206
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
206207
res.WriteHeader(http.StatusOK)
207208
if err := json.NewEncoder(res).Encode(result); err != nil {
208-
panic(err)
209+
log.LoggerWContext(ctx).Error("Error releasing IP: " + err.Error())
209210
}
210211
}
211212

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

@@ -253,7 +254,7 @@ func handleOverrideNetworkOptions(res http.ResponseWriter, req *http.Request) {
253254
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
254255
res.WriteHeader(http.StatusOK)
255256
if err := json.NewEncoder(res).Encode(result); err != nil {
256-
panic(err)
257+
log.LoggerWContext(ctx).Error("Error adding network options: " + err.Error())
257258
}
258259
}
259260

@@ -270,7 +271,7 @@ func handleRemoveOptions(res http.ResponseWriter, req *http.Request) {
270271
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
271272
res.WriteHeader(http.StatusOK)
272273
if err := json.NewEncoder(res).Encode(result); err != nil {
273-
panic(err)
274+
log.LoggerWContext(ctx).Error("Error removing MAC options: " + err.Error())
274275
}
275276
}
276277

@@ -287,7 +288,7 @@ func handleRemoveNetworkOptions(res http.ResponseWriter, req *http.Request) {
287288
res.Header().Set("Content-Type", "application/json; charset=UTF-8")
288289
res.WriteHeader(http.StatusOK)
289290
if err := json.NewEncoder(res).Encode(result); err != nil {
290-
panic(err)
291+
log.LoggerWContext(ctx).Error("Error removing betwork options: " + err.Error())
291292
}
292293
}
293294

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)