Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions cmd/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,12 @@ func syncMain(ctx context.Context, filenames []string, dry bool, parallelism,
if err != nil {
return err
}

err = validateSkipConsumersWithLookupTags(targetContent)
if err != nil {
return err
}

if dumpConfig.SkipConsumers {
targetContent.Consumers = []file.FConsumer{}
targetContent.ConsumerGroups = []file.FConsumerGroupObject{}
Expand Down Expand Up @@ -451,6 +457,15 @@ func syncMain(ctx context.Context, filenames []string, dry bool, parallelism,
return nil
}

func validateSkipConsumersWithLookupTags(targetContent *file.Content) error {
if dumpConfig.SkipConsumers && targetContent.Info != nil && targetContent.Info.LookUpSelectorTags != nil &&
(targetContent.Info.LookUpSelectorTags.Consumers != nil ||
targetContent.Info.LookUpSelectorTags.ConsumerGroups != nil) {
return errors.New("cannot use --skip-consumers with default lookup tags for consumers or consumer groups")
}
return nil
}

func addUniqueConsumersInTargetContent(targetContent *file.Content, consumers []*kong.Consumer,
consumerGroupObject *file.FConsumerGroupObject,
consumersExistInTargetContent bool,
Expand Down
19 changes: 19 additions & 0 deletions tests/integration/sync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8597,6 +8597,25 @@ func Test_Sync_SkipConsumersWithConsumerGroups_Konnect(t *testing.T) {
})
}

func Test_Sync_SkipConsumersWithDefaultLookUp_ConsumersAndConsumerGroup_Tag(t *testing.T) {
runWhenEnterpriseOrKonnect(t, ">=3.0.0")
setup(t)

ctx := context.Background()

t.Run("--skip-consumers-with-default-lookup-consumer flag set", func(t *testing.T) {
err := sync(ctx, "testdata/sync/049-skip-consumers-default-lookup-tags/consumers.yaml", "--skip-consumers")
require.Error(t, err)
assert.ErrorContains(t, err, "cannot use --skip-consumers with default lookup tags for consumers or consumer groups")
})

t.Run("--skip-consumers-with-default-lookup-consumer-group flag set", func(t *testing.T) {
err := sync(ctx, "testdata/sync/049-skip-consumers-default-lookup-tags/consumer-groups.yaml", "--skip-consumers")
require.Error(t, err)
assert.ErrorContains(t, err, "cannot use --skip-consumers with default lookup tags for consumers or consumer groups")
})
}

func Test_Sync_Partials_Plugins(t *testing.T) {
runWhen(t, "enterprise", ">=3.10.0")

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
_format_version: "3.0"
_info:
select_tags:
- my-service
default_lookup_tags:
consumer_groups:
- my-consumer-group
services:
- name: my-service
host: example.com
port: 443
protocol: https
path: /api
tags:
- my-service
plugins:
- name: rate-limiting-advanced
consumer: my-consumer-username
service: my-service
config:
limit:
- 30000
window_size:
- 60
strategy: local
window_type: fixed
namespace: my-namespace
tags:
- my-service
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
_format_version: "3.0"
_info:
select_tags:
- my-service
default_lookup_tags:
consumers:
- MyConsumerTag
services:
- name: my-service
host: example.com
port: 443
protocol: https
path: /api
tags:
- my-service
plugins:
- name: rate-limiting-advanced
consumer: my-consumer-username
service: my-service
config:
limit:
- 30000
window_size:
- 60
strategy: local
window_type: fixed
namespace: my-namespace
tags:
- my-service
Loading