diff options
2 files changed, 19 insertions, 3 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriter.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriter.java index 83ac3eeeaf4..22cabdc8ed9 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriter.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriter.java @@ -1,6 +1,8 @@ // Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.node.admin.task.util; +import com.yahoo.vespa.hosted.node.admin.component.TaskContext; + import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -10,6 +12,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; +import java.util.logging.Logger; import static com.yahoo.vespa.hosted.node.admin.task.util.file.IOExceptionUtil.ifExists; import static com.yahoo.yolean.Exceptions.uncheck; @@ -23,6 +26,8 @@ import static java.util.stream.Collectors.joining; */ public class DefaultEnvWriter { + private static final Logger logger = Logger.getLogger(DefaultEnvWriter.class.getName()); + private final Map<String, Operation> operations = new LinkedHashMap<>(); public DefaultEnvWriter addOverride(String name, String value) { @@ -50,12 +55,13 @@ public class DefaultEnvWriter { * * @return true if the file was modified */ - public boolean updateFile(Path defaultEnvFile) { + public boolean updateFile(TaskContext context, Path defaultEnvFile) { List<String> currentDefaultEnvLines = ifExists(() -> Files.readAllLines(defaultEnvFile)).orElse(List.of()); List<String> newDefaultEnvLines = generateContent(currentDefaultEnvLines); if (currentDefaultEnvLines.equals(newDefaultEnvLines)) { return false; } else { + context.log(logger, "Updating " + defaultEnvFile.toString()); Path tempFile = Paths.get(defaultEnvFile.toString() + ".tmp"); uncheck(() -> Files.write(tempFile, newDefaultEnvLines)); uncheck(() -> Files.move(tempFile, defaultEnvFile, ATOMIC_MOVE)); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriterTest.java index a81ad8ff2eb..a2457266560 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriterTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvWriterTest.java @@ -1,6 +1,7 @@ // Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.node.admin.task.util; +import com.yahoo.vespa.hosted.node.admin.component.TaskContext; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -9,11 +10,16 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.logging.Logger; import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; /** * @author bjorncs @@ -26,6 +32,8 @@ public class DefaultEnvWriterTest { private static final Path EXAMPLE_FILE = Paths.get("src/test/resources/default-env-example.txt"); private static final Path EXPECTED_RESULT_FILE = Paths.get("src/test/resources/default-env-rewritten.txt"); + private final TaskContext context = mock(TaskContext.class); + @Test public void default_env_is_correctly_rewritten() throws IOException { Path tempFile = temporaryFolder.newFile().toPath(); @@ -36,14 +44,16 @@ public class DefaultEnvWriterTest { writer.addFallback("VESPA_CONFIGSERVER", "new-fallback-configserver"); writer.addOverride("VESPA_TLS_CONFIG_FILE", "/override/path/to/config.file"); - boolean modified = writer.updateFile(tempFile); + boolean modified = writer.updateFile(context, tempFile); assertTrue(modified); assertEquals(Files.readString(EXPECTED_RESULT_FILE), Files.readString(tempFile)); + verify(context, times(1)).log(any(Logger.class), any(String.class)); - modified = writer.updateFile(tempFile); + modified = writer.updateFile(context, tempFile); assertFalse(modified); assertEquals(Files.readString(EXPECTED_RESULT_FILE), Files.readString(tempFile)); + verify(context, times(1)).log(any(Logger.class), any(String.class)); } @Test |