From f5ee8419d0eb7ea0db7a0ef2bf2a6cb12027ef6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Fri, 20 Nov 2020 11:11:47 +0100 Subject: [PATCH] Define NextInverted on the graph --- pkg/envoy/builder.go | 4 +--- pkg/envoy/encoder.go | 2 +- pkg/envoy/graph.go | 9 +++++++++ pkg/envoy/store/encoder.go | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pkg/envoy/builder.go b/pkg/envoy/builder.go index e78c704bb..3a125aa65 100644 --- a/pkg/envoy/builder.go +++ b/pkg/envoy/builder.go @@ -78,15 +78,13 @@ func (b *graphBuilder) Build(ctx context.Context, rr ...resource.Interface) (*gr } } - g.invert() - // Do any dep. related preprocessing var state *ResourceState var err error err = func() error { for { - state, err = g.Next(ctx) + state, err = g.NextInverted(ctx) if err != nil { return err } else if state == nil { diff --git a/pkg/envoy/encoder.go b/pkg/envoy/encoder.go index c1ffdc364..9cae1d01b 100644 --- a/pkg/envoy/encoder.go +++ b/pkg/envoy/encoder.go @@ -6,7 +6,7 @@ import ( type ( Provider interface { - Next(ctx context.Context) (*ResourceState, error) + NextInverted(ctx context.Context) (*ResourceState, error) } ) diff --git a/pkg/envoy/graph.go b/pkg/envoy/graph.go index 97ad3d1bc..82a3c3e3d 100644 --- a/pkg/envoy/graph.go +++ b/pkg/envoy/graph.go @@ -111,6 +111,15 @@ func (g *graph) Relink() { } } +func (g *graph) NextInverted(ctx context.Context) (s *ResourceState, err error) { + g.inverted = true + defer func() { + g.inverted = false + }() + + return g.next(ctx, nil) +} + func (g *graph) Next(ctx context.Context) (s *ResourceState, err error) { return g.next(ctx, nil) } diff --git a/pkg/envoy/store/encoder.go b/pkg/envoy/store/encoder.go index 3bcc8b3b7..39613682d 100644 --- a/pkg/envoy/store/encoder.go +++ b/pkg/envoy/store/encoder.go @@ -128,7 +128,7 @@ func (se *storeEncoder) Encode(ctx context.Context, p envoy.Provider) error { var e *envoy.ResourceState return store.Tx(ctx, se.s, func(ctx context.Context, s store.Storer) (err error) { for { - e, err = p.Next(ctx) + e, err = p.NextInverted(ctx) if err != nil { return err }