From 86497a5969b4b49929d1beaafaa27d5b61364830 Mon Sep 17 00:00:00 2001 From: Gabriele Date: Fri, 28 Jul 2023 18:01:21 +0200 Subject: [PATCH] fix: use same API to pull Consumer Groups from Konnect and Kong (#984) --- CHANGELOG.md | 9 +++++++-- dump/dump.go | 34 +--------------------------------- tests/integration/sync_test.go | 18 +++++++++--------- 3 files changed, 17 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 838d096e6..2e751f5c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Table of Contents +- [v1.25.0](#v1250) - [v1.24.0](#v1240) - [v1.23.0](#v1230) - [v1.22.1](#v1221) @@ -61,9 +62,9 @@ - [v0.2.0](#v020) - [v0.1.0](#v010) -## Unreleased +## [v1.25.0] -> Release date: TBD +> Release date: 2023/07/28 ### Added @@ -75,6 +76,9 @@ ### Fixes +- Use same interface to pull Consumer Groups with Kong Gateway and Konnect. + This will help solving the issue of using tags with Consumer Groups when running against Konnect. + [#984](https://github.com/Kong/deck/pull/984) - Fix Consumers handling when a consumer's `custom_id` is equal to the `username` of another consumer. [#986](https://github.com/Kong/deck/pull/986) - Avoid misleading diffs when configuration file has empty tags. @@ -1323,6 +1327,7 @@ No breaking changes have been introduced in this release. Debut release of decK +[v1.25.0]: https://github.com/kong/deck/compare/v1.24.0...v1.25.0 [v1.24.0]: https://github.com/kong/deck/compare/v1.23.0...v1.24.0 [v1.23.0]: https://github.com/kong/deck/compare/v1.22.1...v1.23.0 [v1.22.1]: https://github.com/kong/deck/compare/v1.22.0...v1.22.1 diff --git a/dump/dump.go b/dump/dump.go index 51fa2e7d7..402ce0d0d 100644 --- a/dump/dump.go +++ b/dump/dump.go @@ -6,7 +6,6 @@ import ( "fmt" "net/http" - "github.com/kong/deck/konnect" "github.com/kong/deck/utils" "github.com/kong/go-kong/kong" "golang.org/x/sync/errgroup" @@ -71,15 +70,7 @@ func getConsumerGroupsConfiguration(ctx context.Context, group *errgroup.Group, client *kong.Client, config Config, state *utils.KongRawState, ) { group.Go(func() error { - var ( - err error - consumerGroups []*kong.ConsumerGroupObject - ) - if config.KonnectRuntimeGroup != "" { - consumerGroups, err = GetAllKonnectConsumerGroups(ctx, client, config.SelectorTags) - } else { - consumerGroups, err = GetAllConsumerGroups(ctx, client, config.SelectorTags) - } + consumerGroups, err := GetAllConsumerGroups(ctx, client, config.SelectorTags) if err != nil { if kong.IsNotFoundErr(err) || kong.IsForbiddenErr(err) { return nil @@ -528,29 +519,6 @@ func GetAllUpstreams(ctx context.Context, return upstreams, nil } -// GetAllConsumerGroups queries Konnect for all the ConsumerGroups using client. -func GetAllKonnectConsumerGroups(ctx context.Context, - client *kong.Client, tags []string, -) ([]*kong.ConsumerGroupObject, error) { - var consumerGroupObjects []*kong.ConsumerGroupObject - opt := newOpt(tags) - cgs, err := konnect.ListAllConsumerGroups(ctx, client, opt.Tags) - if err != nil { - return nil, err - } - if err := ctx.Err(); err != nil { - return nil, err - } - for _, cg := range cgs { - r, err := konnect.GetConsumerGroupObject(ctx, client, cg.ID) - if err != nil { - return nil, err - } - consumerGroupObjects = append(consumerGroupObjects, r) - } - return consumerGroupObjects, nil -} - // GetAllConsumerGroups queries Kong for all the ConsumerGroups using client. func GetAllConsumerGroups(ctx context.Context, client *kong.Client, tags []string, diff --git a/tests/integration/sync_test.go b/tests/integration/sync_test.go index 68fadc172..348964f4c 100644 --- a/tests/integration/sync_test.go +++ b/tests/integration/sync_test.go @@ -627,10 +627,10 @@ var ( { Name: kong.String("rate-limiting-advanced"), Config: kong.Configuration{ - "limit": []*int32{int32p(7)}, - "retry_after_jitter_max": int32p(1), - "window_size": []*int32{int32p(60)}, - "window_type": kong.String("sliding"), + "limit": []any{float64(7)}, + "retry_after_jitter_max": float64(1), + "window_size": []any{float64(60)}, + "window_type": "sliding", }, ConsumerGroup: &kong.ConsumerGroup{ ID: kong.String("521a90ad-36cb-4e31-a5db-1d979aee40d1"), @@ -652,10 +652,10 @@ var ( { Name: kong.String("rate-limiting-advanced"), Config: kong.Configuration{ - "limit": []*int32{int32p(10)}, - "retry_after_jitter_max": int32p(1), - "window_size": []*int32{int32p(60)}, - "window_type": kong.String("sliding"), + "limit": []any{float64(10)}, + "retry_after_jitter_max": float64(1), + "window_size": []any{float64(60)}, + "window_type": "sliding", }, ConsumerGroup: &kong.ConsumerGroup{ ID: kong.String("92177268-b134-42f9-909a-36f9d2d3d5e7"), @@ -2894,7 +2894,7 @@ func Test_Sync_ConsumerGroups_31(t *testing.T) { } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - runWhen(t, "enterprise", ">=3.1.0") + runWhen(t, "enterprise", "==3.1.0") teardown := setup(t) defer teardown(t)