Skip to content

Commit

Permalink
Involve since_time for collect-sub entry getting. (#1049)
Browse files Browse the repository at this point in the history
* Involve `since_time` for collect-sub entry getting.

Signed-off-by: Bob McWhirter <bmcwhirt@redhat.com>

* Correct lint warning of decl and defn.

Signed-off-by: Bob McWhirter <bmcwhirt@redhat.com>

* Update the protobuf files.

Signed-off-by: Bob McWhirter <bmcwhirt@redhat.com>

* Jostle the .proto correctly instead of editing the generated file.

Signed-off-by: Bob McWhirter <bmcwhirt@redhat.com>

* Rename `AsOf` into `SinceTime` for consistency.

Signed-off-by: Bob McWhirter <bmcwhirt@redhat.com>

---------

Signed-off-by: Bob McWhirter <bmcwhirt@redhat.com>
  • Loading branch information
bobmcwhirter committed Jul 12, 2023
1 parent 1bb597c commit d1267d1
Show file tree
Hide file tree
Showing 10 changed files with 42 additions and 26 deletions.
2 changes: 1 addition & 1 deletion pkg/collectsub/client/mock.go
Expand Up @@ -45,5 +45,5 @@ func (c *MockClient) AddCollectEntries(ctx context.Context, entries []*pb.Collec
}

func (c *MockClient) GetCollectEntries(ctx context.Context, filters []*pb.CollectEntryFilter) ([]*pb.CollectEntry, error) {
return c.db.GetCollectEntries(ctx, filters)
return c.db.GetCollectEntries(ctx, filters, 0)
}
34 changes: 22 additions & 12 deletions pkg/collectsub/collectsub/collectsub.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pkg/collectsub/collectsub/collectsub.proto
Expand Up @@ -30,6 +30,7 @@ enum CollectDataType {
message CollectEntry {
CollectDataType type = 1;
string value = 2;
int64 since_time = 3;
}

// rpc AddCollectEntry
Expand Down
2 changes: 1 addition & 1 deletion pkg/collectsub/collectsub/collectsub_grpc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/collectsub/server/db/db_test.go
Expand Up @@ -150,7 +150,7 @@ type testCall func(ctx context.Context, db types.CollectSubscriberDb) error

func getFn(filters []*pb.CollectEntryFilter, expectErr bool, expect []*pb.CollectEntry) testCall {
return func(ctx context.Context, db types.CollectSubscriberDb) error {
entries, err := db.GetCollectEntries(ctx, filters)
entries, err := db.GetCollectEntries(ctx, filters, 0)
if err != nil != expectErr {
return fmt.Errorf("expected err status %v, got %v", expectErr, err != nil)
}
Expand Down
17 changes: 11 additions & 6 deletions pkg/collectsub/server/db/simpledb/simpledb.go
Expand Up @@ -18,6 +18,7 @@ package simpledb
import (
"context"
"sync"
"time"

"github.com/gobwas/glob"
pb "github.com/guacsec/guac/pkg/collectsub/collectsub"
Expand Down Expand Up @@ -52,15 +53,17 @@ func (s *simpleDb) containsEntry(e *pb.CollectEntry) bool {
func (s *simpleDb) AddCollectEntries(ctx context.Context, entries []*pb.CollectEntry) error {
s.lock.Lock()
defer s.lock.Unlock()
var sinceTime = time.Now().Unix()
for _, e := range entries {
if e != nil && !s.containsEntry(e) {
e.SinceTime = sinceTime
s.collectEntries = append(s.collectEntries, e)
}
}
return nil
}

func (s *simpleDb) GetCollectEntries(ctx context.Context, filters []*pb.CollectEntryFilter) ([]*pb.CollectEntry, error) {
func (s *simpleDb) GetCollectEntries(ctx context.Context, filters []*pb.CollectEntryFilter, sinceTime int64) ([]*pb.CollectEntry, error) {
s.lock.RLock()
defer s.lock.RUnlock()
var filterMatchers []glob.Glob
Expand All @@ -70,11 +73,13 @@ func (s *simpleDb) GetCollectEntries(ctx context.Context, filters []*pb.CollectE

var retList []*pb.CollectEntry
for _, e := range s.collectEntries {
for i, f := range filters {
matched := filterMatchers[i].Match(e.Value)
if e.Type == f.Type && matched {
retList = append(retList, e)
break
if e.SinceTime >= sinceTime {
for i, f := range filters {
matched := filterMatchers[i].Match(e.Value)
if e.Type == f.Type && matched {
retList = append(retList, e)
break
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/collectsub/server/db/types/db.go
Expand Up @@ -23,5 +23,5 @@ import (

type CollectSubscriberDb interface {
AddCollectEntries(context.Context, []*pb.CollectEntry) error
GetCollectEntries(context.Context, []*pb.CollectEntryFilter) ([]*pb.CollectEntry, error)
GetCollectEntries(context.Context, []*pb.CollectEntryFilter, int64) ([]*pb.CollectEntry, error)
}
2 changes: 1 addition & 1 deletion pkg/collectsub/server/server.go
Expand Up @@ -67,7 +67,7 @@ func (s *server) GetCollectEntries(ctx context.Context, in *pb.GetCollectEntries
logger := logging.FromContext(ctx)
logger.Infof("GetCollectEntries called with filters: %v", in.Filters)

ret, err := s.Db.GetCollectEntries(ctx, in.Filters)
ret, err := s.Db.GetCollectEntries(ctx, in.Filters, in.SinceTime)
if err != nil {
return nil, fmt.Errorf("failed to get collect entries from db: %w", err)
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/handler/collector/deps_dev/internal/api.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/handler/collector/deps_dev/internal/api_grpc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d1267d1

Please sign in to comment.