github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/storage/stores/indexshipper/compactor/deletion/util.go (about) 1 package deletion 2 3 import ( 4 "errors" 5 6 "github.com/grafana/loki/pkg/storage/stores/indexshipper/compactor/deletionmode" 7 8 "github.com/grafana/loki/pkg/logql/syntax" 9 ) 10 11 var ( 12 errInvalidQuery = errors.New("invalid query expression") 13 ) 14 15 // parseDeletionQuery checks if the given logQL is valid for deletions 16 func parseDeletionQuery(query string) (syntax.LogSelectorExpr, error) { 17 logSelectorExpr, err := syntax.ParseLogSelector(query, false) 18 if err != nil { 19 return nil, errInvalidQuery 20 } 21 22 return logSelectorExpr, nil 23 } 24 25 func validDeletionLimit(l Limits, userID string) (bool, error) { 26 mode, err := deleteModeFromLimits(l, userID) 27 if err != nil { 28 return false, err 29 } 30 31 return mode.DeleteEnabled(), nil 32 } 33 34 func deleteModeFromLimits(l Limits, userID string) (deletionmode.Mode, error) { 35 mode := l.DeletionMode(userID) 36 return deletionmode.ParseMode(mode) 37 }