Skip to content

Commit 86bb699

Browse files
committed
RHINENG-19880: defer system deletion using stale/culled markers
instead of immediately deleting systems via delete_system(), mark them as stale and culled with timestamps and defer cleanup to background task
1 parent a93aa88 commit 86bb699

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

listener/events.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,19 @@ func HandleDelete(event mqueue.PlatformEvent) error {
7878
return errors.Wrap(err, "Could not delete system")
7979
}
8080

81-
query := database.DB.Exec("select deleted_inventory_id from delete_system(?::uuid)", event.ID)
81+
// mark system as stale and let system_culling job remove it later
82+
query := database.DB.Model(&models.SystemPlatform{}).Where("inventory_id = ?::uuid", event.ID).
83+
Updates(map[string]interface{}{
84+
"stale": true,
85+
"stale_timestamp": gorm.Expr("NOW()"),
86+
"culled_timestamp": gorm.Expr("NOW()"),
87+
})
8288
err = query.Error
8389
if err != nil {
84-
utils.LogError("inventoryID", event.ID, "err", err.Error(), "Could not delete system")
90+
wrappedErr := errors.Wrap(err, "Could not mark system as deleted")
91+
utils.LogError("inventoryID", event.ID, "err", wrappedErr.Error())
8592
eventMsgsReceivedCnt.WithLabelValues(EventDelete, ReceivedErrorProcessing).Inc()
86-
return errors.Wrap(err, "Could not opt_out system")
93+
return wrappedErr
8794
}
8895

8996
if query.RowsAffected == 0 {

0 commit comments

Comments
 (0)