Skip to content

Commit dab3308

Browse files
Merge branch 'main' into docs/changelog-v1.55.2
2 parents d0e3dda + 9f67d92 commit dab3308

File tree

4 files changed

+92
-0
lines changed

4 files changed

+92
-0
lines changed

cmd/common.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,12 @@ func syncMain(ctx context.Context, filenames []string, dry bool, parallelism,
155155
if err != nil {
156156
return err
157157
}
158+
159+
err = validateSkipConsumersWithLookupTags(targetContent)
160+
if err != nil {
161+
return err
162+
}
163+
158164
if dumpConfig.SkipConsumers {
159165
targetContent.Consumers = []file.FConsumer{}
160166
targetContent.ConsumerGroups = []file.FConsumerGroupObject{}
@@ -451,6 +457,15 @@ func syncMain(ctx context.Context, filenames []string, dry bool, parallelism,
451457
return nil
452458
}
453459

460+
func validateSkipConsumersWithLookupTags(targetContent *file.Content) error {
461+
if dumpConfig.SkipConsumers && targetContent.Info != nil && targetContent.Info.LookUpSelectorTags != nil &&
462+
(targetContent.Info.LookUpSelectorTags.Consumers != nil ||
463+
targetContent.Info.LookUpSelectorTags.ConsumerGroups != nil) {
464+
return errors.New("cannot use --skip-consumers with default lookup tags for consumers or consumer groups")
465+
}
466+
return nil
467+
}
468+
454469
func addUniqueConsumersInTargetContent(targetContent *file.Content, consumers []*kong.Consumer,
455470
consumerGroupObject *file.FConsumerGroupObject,
456471
consumersExistInTargetContent bool,

tests/integration/sync_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8597,6 +8597,25 @@ func Test_Sync_SkipConsumersWithConsumerGroups_Konnect(t *testing.T) {
85978597
})
85988598
}
85998599

8600+
func Test_Sync_SkipConsumersWithDefaultLookUp_ConsumersAndConsumerGroup_Tag(t *testing.T) {
8601+
runWhenEnterpriseOrKonnect(t, ">=3.0.0")
8602+
setup(t)
8603+
8604+
ctx := context.Background()
8605+
8606+
t.Run("--skip-consumers-with-default-lookup-consumer flag set", func(t *testing.T) {
8607+
err := sync(ctx, "testdata/sync/049-skip-consumers-default-lookup-tags/consumers.yaml", "--skip-consumers")
8608+
require.Error(t, err)
8609+
assert.ErrorContains(t, err, "cannot use --skip-consumers with default lookup tags for consumers or consumer groups")
8610+
})
8611+
8612+
t.Run("--skip-consumers-with-default-lookup-consumer-group flag set", func(t *testing.T) {
8613+
err := sync(ctx, "testdata/sync/049-skip-consumers-default-lookup-tags/consumer-groups.yaml", "--skip-consumers")
8614+
require.Error(t, err)
8615+
assert.ErrorContains(t, err, "cannot use --skip-consumers with default lookup tags for consumers or consumer groups")
8616+
})
8617+
}
8618+
86008619
func Test_Sync_Partials_Plugins(t *testing.T) {
86018620
runWhen(t, "enterprise", ">=3.10.0")
86028621

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
_format_version: "3.0"
2+
_info:
3+
select_tags:
4+
- my-service
5+
default_lookup_tags:
6+
consumer_groups:
7+
- my-consumer-group
8+
services:
9+
- name: my-service
10+
host: example.com
11+
port: 443
12+
protocol: https
13+
path: /api
14+
tags:
15+
- my-service
16+
plugins:
17+
- name: rate-limiting-advanced
18+
consumer: my-consumer-username
19+
service: my-service
20+
config:
21+
limit:
22+
- 30000
23+
window_size:
24+
- 60
25+
strategy: local
26+
window_type: fixed
27+
namespace: my-namespace
28+
tags:
29+
- my-service
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
_format_version: "3.0"
2+
_info:
3+
select_tags:
4+
- my-service
5+
default_lookup_tags:
6+
consumers:
7+
- MyConsumerTag
8+
services:
9+
- name: my-service
10+
host: example.com
11+
port: 443
12+
protocol: https
13+
path: /api
14+
tags:
15+
- my-service
16+
plugins:
17+
- name: rate-limiting-advanced
18+
consumer: my-consumer-username
19+
service: my-service
20+
config:
21+
limit:
22+
- 30000
23+
window_size:
24+
- 60
25+
strategy: local
26+
window_type: fixed
27+
namespace: my-namespace
28+
tags:
29+
- my-service

0 commit comments

Comments
 (0)