Skip to content

Commit 52f1815

Browse files
committed
chore: fix regression from #2912 - tracing in SchemaText()
1 parent 2166493 commit 52f1815

File tree

5 files changed

+15
-9
lines changed

5 files changed

+15
-9
lines changed

internal/services/shared/schema_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@ func TestApplySchemaChangesOverExisting(t *testing.T) {
778778

779779
sr, err := rwt.ReadSchema()
780780
require.NoError(err)
781-
schemaText, err := sr.SchemaText()
781+
schemaText, err := sr.SchemaText(t.Context())
782782
require.NoError(err)
783783
require.Equal(tc.expectedSchema, schemaText)
784784
return nil

internal/services/v1/schema.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func (ss *schemaServer) ReadSchema(ctx context.Context, _ *v1.ReadSchemaRequest)
9696
return nil, ss.rewriteError(ctx, err)
9797
}
9898

99-
schemaText, err := sr.SchemaText()
99+
schemaText, err := sr.SchemaText(ctx)
100100
if err != nil {
101101
return nil, ss.rewriteError(ctx, err)
102102
}

pkg/datalayer/datalayer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type DataLayer interface {
5151
// SchemaReader groups schema read methods, accessed via RevisionedReader.ReadSchema().
5252
type SchemaReader interface {
5353
// SchemaText returns the full schema text.
54-
SchemaText() (string, error)
54+
SchemaText(ctx context.Context) (string, error)
5555

5656
// LookupTypeDefByName looks up a type definition by name.
5757
LookupTypeDefByName(ctx context.Context, name string) (datastore.RevisionedTypeDefinition, bool, error)

pkg/datalayer/schema_adapter.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ type legacySchemaReaderAdapter struct {
3030

3131
// SchemaText returns the schema text at the current revision by reading all namespaces and caveats
3232
// and generating the schema text from them.
33-
func (l *legacySchemaReaderAdapter) SchemaText() (string, error) {
34-
ctx := context.Background()
35-
33+
func (l *legacySchemaReaderAdapter) SchemaText(ctx context.Context) (string, error) {
3634
// Read all namespaces
3735
namespaces, err := l.ListAllTypeDefinitions(ctx)
3836
if err != nil {
@@ -61,7 +59,7 @@ func (l *legacySchemaReaderAdapter) SchemaText() (string, error) {
6159
}
6260

6361
// Generate schema text with proper use directives
64-
schemaText, _, err := generator.GenerateSchemaWithCaveatTypeSet(definitions, caveatTypeSet)
62+
schemaText, _, err := generator.GenerateSchemaWithCaveatTypeSet(ctx, definitions, caveatTypeSet)
6563
if err != nil {
6664
return "", fmt.Errorf("failed to generate schema: %w", err)
6765
}

pkg/schemadsl/generator/generator.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ package generator
22

33
import (
44
"bufio"
5+
"context"
56
"fmt"
67
"maps"
78
"slices"
89
"sort"
910
"strings"
1011

12+
"go.opentelemetry.io/otel"
13+
1114
"github.com/authzed/spicedb/pkg/caveats"
1215
caveattypes "github.com/authzed/spicedb/pkg/caveats/types"
1316
"github.com/authzed/spicedb/pkg/genutil/mapz"
@@ -18,18 +21,23 @@ import (
1821
"github.com/authzed/spicedb/pkg/spiceerrors"
1922
)
2023

24+
var tracer = otel.Tracer("spicedb/pkg/schemadsl/generator")
25+
2126
// Ellipsis is the relation name for terminal subjects.
2227
const Ellipsis = "..."
2328

2429
// MaxSingleLineCommentLength sets the maximum length for a comment to made single line.
2530
const MaxSingleLineCommentLength = 70 // 80 - the comment parts and some padding
2631

2732
func GenerateSchema(definitions []compiler.SchemaDefinition) (string, bool, error) {
28-
return GenerateSchemaWithCaveatTypeSet(definitions, caveattypes.Default.TypeSet)
33+
return GenerateSchemaWithCaveatTypeSet(context.TODO(), definitions, caveattypes.Default.TypeSet)
2934
}
3035

3136
// GenerateSchemaWithCaveatTypeSet generates a DSL view of the given schema.
32-
func GenerateSchemaWithCaveatTypeSet(definitions []compiler.SchemaDefinition, caveatTypeSet *caveattypes.TypeSet) (string, bool, error) {
37+
func GenerateSchemaWithCaveatTypeSet(ctx context.Context, definitions []compiler.SchemaDefinition, caveatTypeSet *caveattypes.TypeSet) (string, bool, error) {
38+
ctx, span := tracer.Start(ctx, "GenerateSchemaWithCaveatTypeSet")
39+
defer span.End()
40+
3341
generated := make([]string, 0, len(definitions))
3442
flags := mapz.NewSet[string]()
3543

0 commit comments

Comments
 (0)