summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2019-08-05 17:24:29 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-08-05 17:24:32 +0200
commit4882c6c886c7d6a78e6d3a381619de82e5d32e33 (patch)
treef139a96377fb3e28027fbfe21ac9b3d5b27b1cf8 /node-admin
parentb4ae9b9a122ab0e9d625eef3fd3b426059fd4175 (diff)
Misc changes
- Move to parent package - Use Exceptions.uncheck() - Write changes atomically
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvRewriter.java (renamed from node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/DefaultEnvRewriter.java)15
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/package-info.java8
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvRewriterTest.java (renamed from node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/env/DefaultEnvRewriterTest.java)2
3 files changed, 11 insertions, 14 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/DefaultEnvRewriter.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvRewriter.java
index 7a6c5d23bc1..8bfaec3abf3 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/DefaultEnvRewriter.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvRewriter.java
@@ -1,9 +1,9 @@
// 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.env;
+package com.yahoo.vespa.hosted.node.admin.task.util;
-import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -11,6 +11,9 @@ import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
+import static com.yahoo.yolean.Exceptions.uncheck;
+import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
+
/**
* Rewrites default-env.txt files.
*
@@ -45,8 +48,8 @@ public class DefaultEnvRewriter {
return this;
}
- public boolean converge() throws IOException {
- List<String> defaultEnvLines = Files.readAllLines(defaultEnvFile);
+ public boolean converge() {
+ List<String> defaultEnvLines = uncheck(() -> Files.readAllLines(defaultEnvFile));
List<String> newDefaultEnvLines = new ArrayList<>();
Set<String> seenNames = new TreeSet<>();
for (String line : defaultEnvLines) {
@@ -73,7 +76,9 @@ public class DefaultEnvRewriter {
if (defaultEnvLines.equals(newDefaultEnvLines)) {
return false;
} else {
- Files.write(defaultEnvFile, newDefaultEnvLines);
+ Path tempFile = Paths.get(defaultEnvFile.toString() + ".tmp");
+ uncheck(() -> Files.write(tempFile, newDefaultEnvLines));
+ uncheck(() -> Files.move(tempFile, defaultEnvFile, ATOMIC_MOVE));
return true;
}
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/package-info.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/package-info.java
deleted file mode 100644
index cd42fbed899..00000000000
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/env/package-info.java
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-/**
- * @author bjorncs
- */
-@ExportPackage
-package com.yahoo.vespa.hosted.node.admin.task.util.env;
-
-import com.yahoo.osgi.annotation.ExportPackage; \ No newline at end of file
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/env/DefaultEnvRewriterTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvRewriterTest.java
index 2f24af37b71..7b8ece2c6c2 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/env/DefaultEnvRewriterTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/DefaultEnvRewriterTest.java
@@ -1,5 +1,5 @@
// 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.env;
+package com.yahoo.vespa.hosted.node.admin.task.util;
import org.junit.Rule;
import org.junit.Test;