From 62f89e36f16c4d3a903e02fd8d4f4d8e8244313d Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Wed, 13 Jul 2022 10:33:31 +0200 Subject: Do not log DNS warnings to application package in hosted context --- .../src/main/java/com/yahoo/config/model/test/MockRoot.java | 2 +- .../src/main/java/com/yahoo/vespa/model/HostSystem.java | 13 +++++++++---- .../yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java | 4 +++- 3 files changed, 13 insertions(+), 6 deletions(-) (limited to 'config-model/src/main/java/com/yahoo') diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java index 7e2953e6606..74a5e92d2ba 100644 --- a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java +++ b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java @@ -61,7 +61,7 @@ public class MockRoot extends AbstractConfigProducerRoot { public MockRoot(String rootConfigId, DeployState deployState) { super(rootConfigId); - hostSystem = new HostSystem(this, "hostsystem", deployState.getProvisioner(), deployState.getDeployLogger()); + hostSystem = new HostSystem(this, "hostsystem", deployState.getProvisioner(), deployState.getDeployLogger(), deployState.isHosted()); this.deployState = deployState; fileReferencesRepository = new FileReferencesRepository(deployState.getFileRegistry()); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java index 1042400442b..fcad1e20c16 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java @@ -18,6 +18,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.function.BiConsumer; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -39,30 +40,34 @@ public class HostSystem extends AbstractConfigProducer { private final Map hostname2host = new LinkedHashMap<>(); private final HostProvisioner provisioner; private final DeployLogger deployLogger; + private final boolean isHosted; static { String checkIpProperty = System.getProperty("config_model.ip_check", "true"); doCheckIp = ! checkIpProperty.equalsIgnoreCase("false"); } - public HostSystem(AbstractConfigProducer parent, String name, HostProvisioner provisioner, DeployLogger deployLogger) { + public HostSystem(AbstractConfigProducer parent, String name, HostProvisioner provisioner, DeployLogger deployLogger, boolean isHosted) { super(parent, name); this.provisioner = provisioner; this.deployLogger = deployLogger; + this.isHosted = isHosted; } void checkName(String hostname) { if (doCheckIp) { + // Bad DNS config in a hosted system isn't actionable by the tenant, so we log any warnings internally + BiConsumer logFunction = isHosted ? deployLogger::log : deployLogger::logApplicationPackage; // Give a warning if the host does not exist try { var inetAddr = java.net.InetAddress.getByName(hostname); String canonical = inetAddr.getCanonicalHostName(); if (!hostname.equals(canonical)) { - deployLogger.logApplicationPackage(Level.WARNING, "Host named '" + hostname + "' may not receive any config " + - "since it differs from its canonical hostname '" + canonical + "' (check DNS and /etc/hosts)."); + logFunction.accept(Level.WARNING, "Host named '" + hostname + "' may not receive any config " + + "since it differs from its canonical hostname '" + canonical + "' (check DNS and /etc/hosts)."); } } catch (UnknownHostException e) { - deployLogger.logApplicationPackage(Level.WARNING, "Unable to lookup IP address of host: " + hostname); + logFunction.accept(Level.WARNING, "Unable to lookup IP address of host: " + hostname); } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java index e2bfcb66f37..96e2e1d5ebd 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java @@ -230,7 +230,9 @@ public class VespaDomBuilder extends VespaModelBuilder { deployState.getDocumentModel(), deployState.getVespaVersion(), deployState.getProperties().applicationId()); - root.setHostSystem(new HostSystem(root, "hosts", deployState.getProvisioner(), deployState.getDeployLogger())); + root.setHostSystem(new HostSystem(root, "hosts", deployState.getProvisioner(), + deployState.getDeployLogger(), + deployState.isHosted())); new Client(root); return root; } -- cgit v1.2.3