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  }