This is an automated email from the ASF dual-hosted git repository. heneveld pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
commit 0c7f314eb7a9b6f3a0cb0438f160ea0e45c3b28b Author: Alex Heneveld <[email protected]> AuthorDate: Tue Oct 5 10:42:53 2021 +0100 logging when a non-preferred resolver is activated --- .../core/typereg/BrooklynCatalogBundleResolvers.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java b/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java index 5632bca..6e9843a 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java @@ -141,7 +141,9 @@ public class BrooklynCatalogBundleResolvers { Map<BrooklynCatalogBundleResolver, Double> resolvers = forBundleWithScore(mgmt, input, options); Collection<String> resolversWhoDontSupport = new ArrayList<String>(); Map<BrooklynCatalogBundleResolver, Exception> failuresFromResolvers = MutableMap.of(); - for (BrooklynCatalogBundleResolver t : resolvers.keySet()) { + Double highestFailedScore = null; + for (Entry<BrooklynCatalogBundleResolver,Double> ti : resolvers.entrySet()) { + BrooklynCatalogBundleResolver t = ti.getKey(); try { ReferenceWithError<OsgiBundleInstallationResult> result = t.install(input, options); if (result == null) { @@ -154,6 +156,17 @@ public class BrooklynCatalogBundleResolvers { } result.get(); // assert there is no error LOG.debug("Installed bundle {} / {} for {}: {}: {}", input, (options==null ? null : options.knownBundleMetadata), Entitlements.getEntitlementContextUser(), result.get().getCode(), result.get().getMessage()); + if (highestFailedScore!=null) { + if (highestFailedScore > 0.9 && (ti.getValue() == null || highestFailedScore > ti.getValue() + 0.1)) { + // if there was an error from a high scoring resolver and a lower-scoring resolver accepted it, log a warning + LOG.warn("Bundle {} was installed by fallback resolver {} because preferred resolver(s) reported issues: {} / {} (scores {})", + t, result.get().getMetadata(), resolversWhoDontSupport, failuresFromResolvers, resolvers); + } else { + // if there was an error from a high scoring resolver and a lower-scoring resolver accepted it, log a warning + LOG.debug("Bundle {} was installed by resolver {} after other resolver(s) reported issues: {} / {} (scores {})", + t, result.get().getMetadata(), resolversWhoDontSupport, failuresFromResolvers, resolvers); + } + } return result; } catch (@SuppressWarnings("deprecation") UnsupportedCatalogBundleException e) { resolversWhoDontSupport.add(t.getFormatCode() + @@ -167,6 +180,7 @@ public class BrooklynCatalogBundleResolvers { (t.getFormatCode() + " bundle installation error") + ": " + Exceptions.collapseText(e), e)); } + if (highestFailedScore==null) highestFailedScore = ti.getValue(); } if (LOG.isDebugEnabled()) {
