diff --git a/pkg/discovery/oci_dbbacked.go b/pkg/discovery/oci_dbbacked.go index bd785291a..03d1a9df3 100644 --- a/pkg/discovery/oci_dbbacked.go +++ b/pkg/discovery/oci_dbbacked.go @@ -254,7 +254,6 @@ func (od *DBBackedOCIDiscovery) checkImageCache() (string, string, error) { _, hashHexValInventoryImage, err := carvelhelpers.GetImageDigest(od.image) if err != nil { // This will happen when the user has configured an invalid image discovery URI - log.Warningf("Unable to resolve the plugin discovery image: %v", err) return "", "", fmt.Errorf("plugins discovery image resolution failed. Please check that the repository image URL %q is correct ", od.image) } diff --git a/pkg/pluginmanager/manager.go b/pkg/pluginmanager/manager.go index 42fc7e733..7edbf7264 100644 --- a/pkg/pluginmanager/manager.go +++ b/pkg/pluginmanager/manager.go @@ -723,16 +723,19 @@ func installPlugin(pluginName, version string, target configtypes.Target, contex OS: runtime.GOOS, Arch: runtime.GOARCH, } + errorList := make([]error, 0) availablePlugins, err := discoverSpecificPlugins(discoveries, criteria) if err != nil { - log.Warningf("There was an error while discovering plugins. Error information: '%v'", err.Error()) + errorList = append(errorList, err) } if len(availablePlugins) == 0 { if target != configtypes.TargetUnknown { - return errors.Errorf("unable to find plugin '%v' with version '%v' for target '%s'", pluginName, version, string(target)) + errorList = append(errorList, errors.Errorf("unable to find plugin '%v' with version '%v' for target '%s'", pluginName, version, string(target))) + return kerrors.NewAggregate(errorList) } - return errors.Errorf("unable to find plugin '%v' with version '%v'", pluginName, version) + errorList = append(errorList, errors.Errorf("unable to find plugin '%v' with version '%v'", pluginName, version)) + return kerrors.NewAggregate(errorList) } // Deal with duplicates from different plugin discovery sources @@ -751,9 +754,11 @@ func installPlugin(pluginName, version string, target configtypes.Target, contex } if len(matchedPlugins) == 0 { if target != configtypes.TargetUnknown { - return errors.Errorf("unable to find plugin '%v' with version '%v' for target '%s'", pluginName, version, string(target)) + errorList = append(errorList, errors.Errorf("unable to find plugin '%v' with version '%v' for target '%s'", pluginName, version, string(target))) + return kerrors.NewAggregate(errorList) } - return errors.Errorf("unable to find plugin '%v' with version '%v'", pluginName, version) + errorList = append(errorList, errors.Errorf("unable to find plugin '%v' with version '%v'", pluginName, version)) + return kerrors.NewAggregate(errorList) } if len(matchedPlugins) == 1 { @@ -774,8 +779,8 @@ func installPlugin(pluginName, version string, target configtypes.Target, contex return installOrUpgradePlugin(&matchedPlugins[i], version, false) } } - - return errors.Errorf(missingTargetStr, pluginName) + errorList = append(errorList, errors.Errorf(missingTargetStr, pluginName)) + return kerrors.NewAggregate(errorList) } // legacyInstallPlugin installs a plugin by name, version and target.