sqlite.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package main
  2. import (
  3. "time"
  4. "github.com/crowdsecurity/crowdsec/pkg/sqlite"
  5. "github.com/crowdsecurity/crowdsec/pkg/types"
  6. log "github.com/sirupsen/logrus"
  7. )
  8. //nolint:unused // pluginDB is the interface for sqlite output plugin
  9. type pluginDB struct {
  10. CTX *sqlite.Context
  11. }
  12. func (p *pluginDB) Init(config map[string]string) error {
  13. var err error
  14. log.Debugf("sqlite config : %+v \n", config)
  15. p.CTX, err = sqlite.NewSQLite(config)
  16. if err != nil {
  17. return err
  18. }
  19. return nil
  20. }
  21. func (p *pluginDB) Delete(target string) (int, error) {
  22. nbDel, err := p.CTX.DeleteBan(target)
  23. if err != nil {
  24. return 0, err
  25. }
  26. log.Debugf("deleted '%d' entry from database", nbDel)
  27. return nbDel, nil
  28. }
  29. func (p *pluginDB) DeleteAll() error {
  30. err := p.CTX.DeleteAll()
  31. if err != nil {
  32. return err
  33. }
  34. return nil
  35. }
  36. func (p *pluginDB) Insert(sig types.SignalOccurence) error {
  37. err := p.CTX.WriteSignal(sig)
  38. if err != nil {
  39. return err
  40. }
  41. return nil
  42. }
  43. func (p *pluginDB) Flush() error {
  44. err := p.CTX.Flush()
  45. if err != nil {
  46. return err
  47. }
  48. return nil
  49. }
  50. func (p *pluginDB) ReadAT(timeAT time.Time) ([]map[string]string, error) {
  51. ret, err := p.CTX.GetBansAt(timeAT)
  52. if err != nil {
  53. return nil, err
  54. }
  55. return ret, nil
  56. }
  57. //nolint:unused // New is used by the plugin system
  58. func New() interface{} {
  59. return &pluginDB{}
  60. }
  61. // empty main function is mandatory since we are in a main package
  62. func main() {}