From fb87b0b3a41acd1708a95e89f54e1b033a59f61b Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Fri, 29 May 2026 09:14:14 +0000 Subject: [PATCH] appview/ingester: slightly nicer logging Signed-off-by: oppiliappan --- appview/ingester.go | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------ appview/ingester_repo.go | 24 ++++++++++++------------ appview/ingester_repo_test.go | 25 ++++++++++++------------- appview/ingester_string_test.go | 23 +++++++++++------------ 4 file(s) changed, 142 insertion(s)(+), 133 deletion(s)(-) diff --git a/appview/ingester.go b/appview/ingester.go --- a/appview/ingester.go +++ b/appview/ingester.go @@ -72,49 +72,54 @@ } case jmodels.EventKindIdentity: err = i.IdResolver.InvalidateIdent(ctx, e.Identity.Did) case jmodels.EventKindCommit: + l = l.With( + "nsid", e.Commit.Collection, + "did", e.Did, + "rkey", e.Commit.RKey, + "op", e.Commit.Operation, + ) switch e.Commit.Collection { case tangled.GraphFollowNSID: - err = i.ingestFollow(e) + err = i.ingestFollow(e, l) case tangled.GraphVouchNSID: - err = i.ingestVouch(ctx, e) + err = i.ingestVouch(ctx, e, l) case tangled.FeedStarNSID: - err = i.ingestStar(ctx, e) + err = i.ingestStar(ctx, e, l) case tangled.FeedReactionNSID: - err = i.ingestReaction(e) + err = i.ingestReaction(e, l) case tangled.PublicKeyNSID: - err = i.ingestPublicKey(e) + err = i.ingestPublicKey(e, l) case tangled.RepoArtifactNSID: - err = i.ingestArtifact(ctx, e) + err = i.ingestArtifact(ctx, e, l) case tangled.ActorProfileNSID: - err = i.ingestProfile(ctx, e) + err = i.ingestProfile(ctx, e, l) case tangled.SpindleMemberNSID: - err = i.ingestSpindleMember(ctx, e) + err = i.ingestSpindleMember(ctx, e, l) case tangled.SpindleNSID: - err = i.ingestSpindle(ctx, e) + err = i.ingestSpindle(ctx, e, l) case tangled.KnotMemberNSID: - err = i.ingestKnotMember(ctx, e) + err = i.ingestKnotMember(ctx, e, l) case tangled.KnotNSID: - err = i.ingestKnot(ctx, e) + err = i.ingestKnot(ctx, e, l) case tangled.StringNSID: - err = i.ingestString(e) + err = i.ingestString(e, l) case tangled.RepoIssueNSID: - err = i.ingestIssue(ctx, e) + err = i.ingestIssue(ctx, e, l) case tangled.RepoPullNSID: - err = i.ingestPull(ctx, e) + err = i.ingestPull(ctx, e, l) case tangled.FeedCommentNSID: - err = i.ingestComment(e) + err = i.ingestComment(e, l) case tangled.RepoIssueCommentNSID: - err = i.ingestIssueComment(e) + err = i.ingestIssueComment(e, l) case tangled.RepoPullCommentNSID: - err = i.ingestPullComment(e) + err = i.ingestPullComment(e, l) case tangled.LabelDefinitionNSID: - err = i.ingestLabelDefinition(e) + err = i.ingestLabelDefinition(e, l) case tangled.LabelOpNSID: - err = i.ingestLabelOp(e) + err = i.ingestLabelOp(e, l) case tangled.RepoNSID: - err = i.ingestRepo(ctx, e) + err = i.ingestRepo(ctx, e, l) } - l = i.Logger.With("nsid", e.Commit.Collection) } if err != nil { @@ -183,12 +188,11 @@ return false, fmt.Errorf("old-format star has neither subject nor subjectDid") } } -func (i *Ingester) ingestStar(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestStar(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { var err error did := e.Did - l := i.Logger.With("handler", "ingestStar") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestStar") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -241,15 +245,15 @@ if err != nil { return fmt.Errorf("failed to %s star record: %w", e.Commit.Operation, err) } + l.Info("ingested record") return nil } -func (i *Ingester) ingestFollow(e *jmodels.Event) error { +func (i *Ingester) ingestFollow(e *jmodels.Event, l *slog.Logger) error { var err error did := e.Did - l := i.Logger.With("handler", "ingestFollow") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestFollow") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -274,16 +278,15 @@ if err != nil { return fmt.Errorf("failed to %s follow record: %w", e.Commit.Operation, err) } + l.Info("ingested record") return nil } -func (i *Ingester) ingestVouch(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestVouch(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { var err error did := e.Did - l := i.Logger.With("handler", "ingestVouch") - l = l.With("nsid", e.Commit.Collection) - l.Info("ingesting vouch") + l = l.With("handler", "ingestVouch") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -368,15 +371,15 @@ if err != nil { return fmt.Errorf("failed to %s vouch record: %w", e.Commit.Operation, err) } + l.Info("ingested record") return nil } -func (i *Ingester) ingestPublicKey(e *jmodels.Event) error { +func (i *Ingester) ingestPublicKey(e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestPublicKey") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestPublicKey") switch e.Commit.Operation { case jmodels.CommitOperationCreate: @@ -414,15 +417,15 @@ if err != nil { return fmt.Errorf("failed to %s pubkey record: %w", e.Commit.Operation, err) } + l.Info("ingested record") return nil } -func (i *Ingester) ingestArtifact(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestArtifact(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestArtifact") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestArtifact") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -496,15 +499,15 @@ if err != nil { return fmt.Errorf("failed to %s artifact record: %w", e.Commit.Operation, err) } + l.Info("ingested record") return nil } -func (i *Ingester) ingestProfile(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestProfile(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestProfile") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestProfile") if e.Commit.RKey != "self" { return fmt.Errorf("ingestProfile only ingests `self` record") @@ -638,15 +641,15 @@ if err != nil { return fmt.Errorf("failed to %s profile record: %w", e.Commit.Operation, err) } + l.Info("ingested record") return nil } -func (i *Ingester) ingestSpindleMember(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestSpindleMember(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestSpindleMember") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestSpindleMember") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -804,12 +807,11 @@ return nil } -func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestSpindle") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestSpindle") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -836,6 +838,7 @@ if err := i.verifySpindle(ctx, instance, did); err != nil { l.Warn("failed to verify spindle", "instance", instance, "did", did, "err", err) } + l.Info("ingested record", "instance", instance) return nil case jmodels.CommitOperationDelete: @@ -855,7 +858,7 @@ spindle := spindles[0] tx, err := i.Db.Begin() if err != nil { - return err + return fmt.Errorf("failed to start txn: %w", err) } defer func() { tx.Rollback() @@ -869,7 +872,7 @@ orm.FilterEq("owner", did), orm.FilterEq("instance", instance), ) if err != nil { - return err + return fmt.Errorf("failed to remove spindle members: %w", err) } err = db.DeleteSpindle( @@ -878,38 +881,39 @@ orm.FilterEq("owner", did), orm.FilterEq("instance", instance), ) if err != nil { - return err + return fmt.Errorf("failed to delete spindle: %w", err) } if spindle.Verified != nil { err = i.Enforcer.RemoveSpindle(instance) if err != nil { - return err + return fmt.Errorf("failed to remove spindle from enforcer: %w", err) } } err = tx.Commit() if err != nil { - return err + return fmt.Errorf("failed to commit txn: %w", err) } err = i.Enforcer.E.SavePolicy() if err != nil { - return err + return fmt.Errorf("failed to save ACLs: %w", err) } + + l.Info("ingested record", "instance", instance) } return nil } -func (i *Ingester) ingestString(e *jmodels.Event) error { +func (i *Ingester) ingestString(e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey var err error - l := i.Logger.With("handler", "ingestString", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestString") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -933,6 +937,7 @@ l.Error("failed to add string", "err", err) return err } + l.Info("ingested record") return nil case jmodels.CommitOperationDelete: @@ -945,18 +950,18 @@ l.Error("failed to delete", "err", err) return fmt.Errorf("failed to delete string record: %w", err) } + l.Info("ingested record") return nil } return nil } -func (i *Ingester) ingestKnotMember(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestKnotMember(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestKnotMember") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestKnotMember") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1117,12 +1122,11 @@ return nil } -func (i *Ingester) ingestKnot(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestKnot(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did var err error - l := i.Logger.With("handler", "ingestKnot") - l = l.With("nsid", e.Commit.Collection) + l = l.With("handler", "ingestKnot") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1146,6 +1150,7 @@ if err := i.verifyKnot(ctx, domain, did); err != nil { l.Warn("failed to verify knot", "domain", domain, "did", did, "err", err) } + l.Info("ingested record", "domain", domain) return nil case jmodels.CommitOperationDelete: @@ -1167,7 +1172,7 @@ registration := registrations[0] tx, err := i.Db.Begin() if err != nil { - return err + return fmt.Errorf("failed to start txn: %w", err) } defer func() { tx.Rollback() @@ -1180,7 +1185,7 @@ orm.FilterEq("did", did), orm.FilterEq("domain", domain), ) if err != nil { - return err + return fmt.Errorf("failed to remove knot members: %w", err) } err = db.DeleteKnot( @@ -1189,30 +1194,32 @@ orm.FilterEq("did", did), orm.FilterEq("domain", domain), ) if err != nil { - return err + return fmt.Errorf("failed to delete knot: %w", err) } err = db.RemoveReposByKnot(tx, domain) if err != nil { - return err + return fmt.Errorf("failed to remove repos by knot: %w", err) } if registration.Registered != nil { err = i.Enforcer.RemoveKnot(domain) if err != nil { - return err + return fmt.Errorf("failed to remove knot from enforcer: %w", err) } } err = tx.Commit() if err != nil { - return err + return fmt.Errorf("failed to commit txn: %w", err) } err = i.Enforcer.E.SavePolicy() if err != nil { - return err + return fmt.Errorf("failed to save ACLs: %w", err) } + + l.Info("ingested record", "domain", domain) } return nil @@ -1324,14 +1331,13 @@ } g.Wait() } -func (i *Ingester) ingestIssue(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestIssue(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey var err error - l := i.Logger.With("handler", "ingestIssue", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestIssue") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1384,6 +1390,7 @@ l.Error("failed to commit txn", "err", err) return err } + l.Info("ingested record") return nil case jmodels.CommitOperationDelete: @@ -1407,20 +1414,20 @@ l.Error("failed to commit txn", "err", err) return err } + l.Info("ingested record") return nil } return nil } -func (i *Ingester) ingestPull(ctx context.Context, e *jmodels.Event) error { +func (i *Ingester) ingestPull(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey var err error - l := i.Logger.With("handler", "ingestPull", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestPull") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1434,7 +1441,7 @@ } ownerId, err := i.IdResolver.ResolveIdent(ctx, did) if err != nil { - l.Error("failed to resolve did") + l.Error("failed to resolve did", "err", err) return err } @@ -1523,6 +1530,7 @@ l.Error("failed to commit txn", "err", err) return err } + l.Info("ingested record") return nil case jmodels.CommitOperationDelete: @@ -1546,6 +1554,7 @@ l.Error("failed to commit txn", "err", err) return err } + l.Info("ingested record") return nil } @@ -1553,9 +1562,8 @@ return nil } // ingestIssueComment ingests legacy sh.tangled.repo.issue.comment deletions -func (i *Ingester) ingestIssueComment(e *jmodels.Event) error { - l := i.Logger.With("handler", "ingestIssueComment", "nsid", e.Commit.Collection, "did", e.Did, "rkey", e.Commit.RKey) - l.Info("ingesting record") +func (i *Ingester) ingestIssueComment(e *jmodels.Event, l *slog.Logger) error { + l = l.With("handler", "ingestIssueComment") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1572,13 +1580,13 @@ return fmt.Errorf("failed to delete comment record: %w", err) } } + l.Info("ingested record") return nil } // ingestPullComment ingests legacy sh.tangled.repo.pull.comment deletions -func (i *Ingester) ingestPullComment(e *jmodels.Event) error { - l := i.Logger.With("handler", "ingestPullComment", "nsid", e.Commit.Collection, "did", e.Did, "rkey", e.Commit.RKey) - l.Info("ingesting record") +func (i *Ingester) ingestPullComment(e *jmodels.Event, l *slog.Logger) error { + l = l.With("handler", "ingestPullComment") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1595,18 +1603,18 @@ return fmt.Errorf("failed to delete comment record: %w", err) } } + l.Info("ingested record") return nil } -func (i *Ingester) ingestComment(e *jmodels.Event) error { +func (i *Ingester) ingestComment(e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey cid := e.Commit.CID var err error - l := i.Logger.With("handler", "ingestComment", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestComment") ctx := context.Background() @@ -1657,19 +1665,17 @@ orm.FilterEq("rkey", rkey), ); err != nil { return fmt.Errorf("failed to delete comment record: %w", err) } - - return nil } + l.Info("ingested record") return nil } -func (i *Ingester) ingestReaction(e *jmodels.Event) error { +func (i *Ingester) ingestReaction(e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey - l := i.Logger.With("handler", "ingestReaction", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestReaction") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1708,7 +1714,9 @@ if err := db.AddReaction(tx, did, subjectUri, kind, rkey, created); err != nil { return fmt.Errorf("failed to add reaction: %w", err) } - return tx.Commit() + if err := tx.Commit(); err != nil { + return err + } case jmodels.CommitOperationDelete: if err := db.DeleteReactionByRkey(i.Db, did, rkey); err != nil { @@ -1716,17 +1724,17 @@ return fmt.Errorf("failed to delete reaction record: %w", err) } } + l.Info("ingested record") return nil } -func (i *Ingester) ingestLabelDefinition(e *jmodels.Event) error { +func (i *Ingester) ingestLabelDefinition(e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey var err error - l := i.Logger.With("handler", "ingestLabelDefinition", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestLabelDefinition") switch e.Commit.Operation { case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: @@ -1751,6 +1759,7 @@ if err != nil { return fmt.Errorf("failed to create labeldef: %w", err) } + l.Info("ingested record") return nil case jmodels.CommitOperationDelete: @@ -1762,20 +1771,20 @@ ); err != nil { return fmt.Errorf("failed to delete labeldef record: %w", err) } + l.Info("ingested record") return nil } return nil } -func (i *Ingester) ingestLabelOp(e *jmodels.Event) error { +func (i *Ingester) ingestLabelOp(e *jmodels.Event, l *slog.Logger) error { did := e.Did rkey := e.Commit.RKey var err error - l := i.Logger.With("handler", "ingestLabelOp", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) - l.Info("ingesting record") + l = l.With("handler", "ingestLabelOp") switch e.Commit.Operation { case jmodels.CommitOperationCreate: @@ -1840,6 +1849,8 @@ if err = tx.Commit(); err != nil { return err } + + l.Info("ingested record") } return nil diff --git a/appview/ingester_repo.go b/appview/ingester_repo.go --- a/appview/ingester_repo.go +++ b/appview/ingester_repo.go @@ -19,24 +19,24 @@ "tangled.org/core/appview/repoverify" "tangled.org/core/orm" ) -func (i *Ingester) ingestRepo(ctx context.Context, e *jmodels.Event) error { - l := i.Logger.With("handler", "ingestRepo", "did", e.Did, "rkey", e.Commit.RKey) +func (i *Ingester) ingestRepo(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { + l = l.With("handler", "ingestRepo") switch e.Commit.Operation { case jmodels.CommitOperationCreate: - return i.ingestRepoCreate(ctx, e) + return i.ingestRepoCreate(ctx, e, l) case jmodels.CommitOperationUpdate: - return i.ingestRepoUpdate(ctx, e) + return i.ingestRepoUpdate(ctx, e, l) case jmodels.CommitOperationDelete: - return i.ingestRepoDelete(ctx, e) + return i.ingestRepoDelete(ctx, e, l) default: - l.Info("unknown repo operation", "op", e.Commit.Operation) + l.Info("unknown repo operation") return nil } } -func (i *Ingester) ingestRepoCreate(ctx context.Context, e *jmodels.Event) error { - l := i.Logger.With("handler", "ingestRepoCreate", "did", e.Did, "rkey", e.Commit.RKey) +func (i *Ingester) ingestRepoCreate(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { + l = l.With("handler", "ingestRepoCreate") record := tangled.Repo{} if err := json.Unmarshal(json.RawMessage(e.Commit.Record), &record); err != nil { @@ -182,8 +182,8 @@ } return i.Enforcer.E.SavePolicy() } -func (i *Ingester) ingestRepoUpdate(ctx context.Context, e *jmodels.Event) error { - l := i.Logger.With("handler", "ingestRepoUpdate", "did", e.Did, "rkey", e.Commit.RKey) +func (i *Ingester) ingestRepoUpdate(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { + l = l.With("handler", "ingestRepoUpdate") record := tangled.Repo{} if err := json.Unmarshal(json.RawMessage(e.Commit.Record), &record); err != nil { @@ -247,8 +247,8 @@ } return tx.Commit() } -func (i *Ingester) ingestRepoDelete(ctx context.Context, e *jmodels.Event) error { - l := i.Logger.With("handler", "ingestRepoDelete", "did", e.Did, "rkey", e.Commit.RKey) +func (i *Ingester) ingestRepoDelete(ctx context.Context, e *jmodels.Event, l *slog.Logger) error { + l = l.With("handler", "ingestRepoDelete") repo, err := db.GetRepo(i.Db, orm.FilterEq("did", e.Did), diff --git a/appview/ingester_repo_test.go b/appview/ingester_repo_test.go --- a/appview/ingester_repo_test.go +++ b/appview/ingester_repo_test.go @@ -5,7 +5,6 @@ "context" "database/sql" "encoding/json" "errors" - "io" "log/slog" "net/url" "path/filepath" @@ -79,7 +78,7 @@ spy := &spyNotifier{} ing := &Ingester{ Db: d, Enforcer: enforcer, - Logger: slog.New(slog.NewTextHandler(io.Discard, nil)), + Logger: slog.New(slog.DiscardHandler), Notifier: spy, } return ing, spy @@ -93,7 +92,7 @@ func ingestAcceptingOwner(t *testing.T, ing *Ingester, e *jmodels.Event) error { t.Helper() ing.Verifier = acceptOwner(t, e) - return ing.ingestRepo(context.Background(), e) + return ing.ingestRepo(context.Background(), e, ing.Logger) } func seedRepoRow(t *testing.T, ing *Ingester, did, knot, name, rkey, repoDid string) *models.Repo { @@ -566,7 +565,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } @@ -596,7 +595,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } @@ -625,7 +624,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } @@ -648,7 +647,7 @@ }) withVerifier(ing, stubVerifier(repoverify.Result{}, errors.New("knot unreachable"))) - err := ing.ingestRepo(context.Background(), e) + err := ing.ingestRepo(context.Background(), e, ing.Logger) if err == nil { t.Fatalf("expected error on transient verifier failure, got nil") } @@ -673,7 +672,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } @@ -697,7 +696,7 @@ verifierCalled = true return repoverify.Result{}, nil }) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } if verifierCalled { @@ -716,7 +715,7 @@ Knot: "knot.example", RepoDid: ptr("did:plc:akshays-repo"), }) - err := ing.ingestRepo(context.Background(), e) + err := ing.ingestRepo(context.Background(), e, ing.Logger) if err == nil { t.Fatalf("expected error when Verifier is nil, got nil") } @@ -739,7 +738,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } if _, err := db.GetRepo(ing.Db, @@ -769,7 +768,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } akshay := loadRepo(t, ing, "did:plc:akshay", "akshayskey") @@ -797,7 +796,7 @@ OwnerDid: "did:plc:akshay", KnotURL: mustKnotURL(t, "https://knot.example"), }, nil)) - if err := ing.ingestRepo(context.Background(), e); err != nil { + if err := ing.ingestRepo(context.Background(), e, ing.Logger); err != nil { t.Fatalf("ingestRepo: %v", err) } akshay := loadRepo(t, ing, "did:plc:akshay", "akshayskey") diff --git a/appview/ingester_string_test.go b/appview/ingester_string_test.go --- a/appview/ingester_string_test.go +++ b/appview/ingester_string_test.go @@ -2,7 +2,6 @@ package appview import ( "encoding/json" - "io" "log/slog" "path/filepath" "strings" @@ -27,7 +26,7 @@ } t.Cleanup(func() { d.Close() }) return &Ingester{ Db: d, - Logger: slog.New(slog.NewTextHandler(io.Discard, nil)), + Logger: slog.New(slog.DiscardHandler), Validator: &validator.Validator{}, } } @@ -79,7 +78,7 @@ Contents: "hello world\n", CreatedAt: created.Format(time.RFC3339), }) - if err := ing.ingestString(e); err != nil { + if err := ing.ingestString(e, ing.Logger); err != nil { t.Fatalf("ingestString: %v", err) } @@ -114,13 +113,13 @@ Contents: "hello world\n", CreatedAt: created.Format(time.RFC3339), } - if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:boltless", "rk1", base)); err != nil { + if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:boltless", "rk1", base), ing.Logger); err != nil { t.Fatalf("ingestString create: %v", err) } updated := base updated.Contents = "hello, world!\n" - if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationUpdate, "did:plc:boltless", "rk1", updated)); err != nil { + if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationUpdate, "did:plc:boltless", "rk1", updated), ing.Logger); err != nil { t.Fatalf("ingestString update: %v", err) } @@ -148,10 +147,10 @@ Contents: "hello world\n", CreatedAt: time.Date(2025, 9, 14, 10, 30, 0, 0, time.UTC).Format(time.RFC3339), } - if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:akshay", "rk2", rec)); err != nil { + if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:akshay", "rk2", rec), ing.Logger); err != nil { t.Fatalf("create: %v", err) } - if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationUpdate, "did:plc:akshay", "rk2", rec)); err != nil { + if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationUpdate, "did:plc:akshay", "rk2", rec), ing.Logger); err != nil { t.Fatalf("update: %v", err) } @@ -168,7 +167,7 @@ Filename: "hello.txt", Contents: "x", CreatedAt: time.Now().UTC().Format(time.RFC3339), } - if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:boltless", "rk1", rec)); err != nil { + if err := ing.ingestString(makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:boltless", "rk1", rec), ing.Logger); err != nil { t.Fatalf("create: %v", err) } @@ -181,7 +180,7 @@ Collection: tangled.StringNSID, RKey: "rk1", }, } - if err := ing.ingestString(del); err != nil { + if err := ing.ingestString(del, ing.Logger); err != nil { t.Fatalf("delete: %v", err) } @@ -206,7 +205,7 @@ for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { e := makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:akshay", "bad", tc.rec) - if err := ing.ingestString(e); err == nil { + if err := ing.ingestString(e, ing.Logger); err == nil { t.Fatal("expected validator error, got nil") } if _, ok := loadString(t, ing, "did:plc:akshay", "bad"); ok { @@ -227,13 +226,13 @@ } event := makeStringEvent(t, jmodels.CommitOperationCreate, "did:plc:boltless", "rkcold", rec) first := newStringIngester(t) - if err := first.ingestString(event); err != nil { + if err := first.ingestString(event, first.Logger); err != nil { t.Fatalf("first ingest: %v", err) } live, _ := loadString(t, first, "did:plc:boltless", "rkcold") second := newStringIngester(t) - if err := second.ingestString(event); err != nil { + if err := second.ingestString(event, second.Logger); err != nil { t.Fatalf("replay ingest: %v", err) } replayed, _ := loadString(t, second, "did:plc:boltless", "rkcold") -- tangled.sh