From cbed841a1ef5e5e126ff2d785a52855e26b20c73 Mon Sep 17 00:00:00 2001 From: owlwalks <34752212+owlwalks@users.noreply.github.com> Date: Sat, 18 Jan 2020 15:01:58 +1100 Subject: [PATCH] fix(dump) exclude consumer plugins when --skip-consumers Fix #119 From #120 --- dump/dump.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dump/dump.go b/dump/dump.go index 9c2b61c1e..e9835c3e7 100644 --- a/dump/dump.go +++ b/dump/dump.go @@ -48,7 +48,11 @@ func Get(client *kong.Client, config Config) (*utils.KongRawState, error) { if err != nil { return nil, errors.Wrap(err, "plugins") } - state.Plugins = plugins + if config.SkipConsumers { + state.Plugins = excludeConsumersPlugins(plugins) + } else { + state.Plugins = plugins + } certificates, err := GetAllCertificates(client, config.SelectorTags) if err != nil { @@ -443,3 +447,15 @@ func GetAllACLGroups(client *kong.Client, tags []string) ([]*kong.ACLGroup, erro } return aclGroups, nil } + +// excludeConsumersPlugins filter out consumer plugins +func excludeConsumersPlugins(plugins []*kong.Plugin) []*kong.Plugin { + var filtered []*kong.Plugin + for _, p := range plugins { + if p.Consumer != nil && !utils.Empty(p.Consumer.ID) { + continue + } + filtered = append(filtered, p) + } + return filtered +}