Check errors of more database calls

This commit is contained in:
Kristoffer Dalby 2022-05-30 15:39:24 +02:00
parent a1837a4d69
commit a09633e859
3 changed files with 28 additions and 4 deletions

13
api.go
View File

@ -475,7 +475,16 @@ func (h *Headscale) handleMachineRefreshKey(
Str("machine", machine.Name).
Msg("We have the OldNodeKey in the database. This is a key refresh")
machine.NodeKey = NodePublicKeyStripPrefix(registerRequest.NodeKey)
h.db.Save(&machine)
if err := h.db.Save(&machine).Error; err != nil {
log.Error().
Caller().
Err(err).
Msg("Failed to update machine key in the database")
ctx.String(http.StatusInternalServerError, "Internal server error")
return
}
resp.AuthURL = ""
resp.User = *machine.Namespace.toUser()
@ -485,7 +494,7 @@ func (h *Headscale) handleMachineRefreshKey(
Caller().
Err(err).
Msg("Cannot encode message")
ctx.String(http.StatusInternalServerError, "Extremely sad!")
ctx.String(http.StatusInternalServerError, "Internal server error")
return
}

4
db.go
View File

@ -175,7 +175,9 @@ func (h *Headscale) setValue(key string, value string) error {
return nil
}
h.db.Create(keyValue)
if err := h.db.Create(keyValue).Error; err != nil {
return fmt.Errorf("failed to create key value pair in the database: %w", err)
}
return nil
}

15
poll.go
View File

@ -126,7 +126,20 @@ func (h *Headscale) PollNetMapHandler(ctx *gin.Context) {
machine.Endpoints = req.Endpoints
machine.LastSeen = &now
}
h.db.Updates(machine)
if err := h.db.Updates(machine).Error; err != nil {
if err != nil {
log.Error().
Str("handler", "PollNetMap").
Str("id", ctx.Param("id")).
Str("machine", machine.Name).
Err(err).
Msg("Failed to persist/update machine in the database")
ctx.String(http.StatusInternalServerError, ":(")
return
}
}
data, err := h.getMapResponse(machineKey, req, machine)
if err != nil {