From dacf52b5b3656de9390bb1b41e8dbc25ed249a7d Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Fri, 19 Mar 2021 11:13:43 +0100 Subject: [PATCH] check for pre-existing component definition first --- hcl2template/types.required_plugins.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/hcl2template/types.required_plugins.go b/hcl2template/types.required_plugins.go index 957ef37fe..ef2c3aec1 100644 --- a/hcl2template/types.required_plugins.go +++ b/hcl2template/types.required_plugins.go @@ -99,6 +99,19 @@ func (cfg *PackerConfig) decodeImplicitRequiredPluginsBlock(k ComponentKind, blo // this makes this simple. componentName := block.Labels[0] + store := map[ComponentKind]packer.BasicStore{ + Builder: cfg.parser.PluginConfig.Builders, + PostProcessor: cfg.parser.PluginConfig.PostProcessors, + Provisioner: cfg.parser.PluginConfig.Provisioners, + Datasource: cfg.parser.PluginConfig.DataSources, + }[k] + if store.Has(componentName) { + // If any pre-loaded plugin defines the `happycloud-uploader` pp, skip. + // This happens for manually installed plugins, as they will be listed + // in the PluginConfig before parsing any HCL. + return nil + } + redirect := map[ComponentKind]map[string]string{ Builder: cfg.parser.PluginConfig.BuilderRedirects, PostProcessor: cfg.parser.PluginConfig.PostProcessorRedirects, @@ -129,19 +142,6 @@ func (cfg *PackerConfig) decodeImplicitRequiredPluginsBlock(k ComponentKind, blo } } - store := map[ComponentKind]packer.BasicStore{ - Builder: cfg.parser.PluginConfig.Builders, - PostProcessor: cfg.parser.PluginConfig.PostProcessors, - Provisioner: cfg.parser.PluginConfig.Provisioners, - Datasource: cfg.parser.PluginConfig.DataSources, - }[k] - if store.Has(componentName) { - // If any pre-loaded plugin defines the `happycloud-uploader` pp, skip. - // This happens for manually installed plugins, as they will be listed - // in the PluginConfig before parsing any HCL. - return nil - } - cfg.implicitlyRequirePlugin(redirectAddr) return nil }