summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-04-24 09:59:10 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-04-24 09:59:10 +0200
commit5421892d9729da6702ead9fbe2f672338d8f7108 (patch)
treef0c5f66ec830628d9649b1ada3b626b0355041b8
parentec430a6f6767e7ce0fd3459d43b4fdf2b40279d7 (diff)
Log when diff too large
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/FilterTableLineEditor.java19
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java10
2 files changed, 10 insertions, 19 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/FilterTableLineEditor.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/FilterTableLineEditor.java
index a8e0c64f4e1..4e5906d3c34 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/FilterTableLineEditor.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/FilterTableLineEditor.java
@@ -5,8 +5,8 @@ import com.yahoo.vespa.hosted.node.admin.task.util.file.LineEdit;
import com.yahoo.vespa.hosted.node.admin.task.util.file.LineEditor;
import com.yahoo.vespa.hosted.node.admin.task.util.network.IPVersion;
-import java.util.ArrayList;
import java.util.Arrays;
+import java.util.LinkedList;
import java.util.List;
/**
@@ -14,11 +14,10 @@ import java.util.List;
*/
class FilterTableLineEditor implements LineEditor {
- private final List<String> wantedRules;
- private boolean removeRemaining = false;
+ private final LinkedList<String> wantedRules;
FilterTableLineEditor(List<String> wantedRules) {
- this.wantedRules = new ArrayList<>(wantedRules);
+ this.wantedRules = new LinkedList<>(wantedRules);
}
static FilterTableLineEditor from(Acl acl, IPVersion ipVersion) {
@@ -28,16 +27,8 @@ class FilterTableLineEditor implements LineEditor {
@Override
public LineEdit edit(String line) {
- if (removeRemaining) {
- return LineEdit.remove();
- }
- if (wantedRules.indexOf(line) == 0) {
- wantedRules.remove(line);
- return LineEdit.none();
- } else {
- removeRemaining = true;
- return LineEdit.remove();
- }
+ String wantedRule = wantedRules.pop();
+ return wantedRule.equals(line) ? LineEdit.none() : LineEdit.replaceWith(wantedRule);
}
@Override
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
index 9f5557e5940..3cb7bc68059 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/file/Editor.java
@@ -7,7 +7,7 @@ import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.util.ArrayList;
+import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -24,7 +24,7 @@ public class Editor {
private static final Logger logger = Logger.getLogger(Editor.class.getName());
private static final Charset ENCODING = StandardCharsets.UTF_8;
- private static int maxLength = 300;
+ private static final int MAX_LENGTH = 300;
private final Supplier<List<String>> supplier;
private final Consumer<List<String>> consumer;
@@ -60,7 +60,7 @@ public class Editor {
public boolean edit(Consumer<String> logConsumer) {
List<String> lines = supplier.get();
- List<String> newLines = new ArrayList<>();
+ List<String> newLines = new LinkedList<>();
StringBuilder diff = new StringBuilder();
boolean modified = false;
@@ -102,7 +102,7 @@ public class Editor {
return false;
}
- String diffDescription = diffTooLarge(diff) ? "" : ":\n" + diff.toString();
+ String diffDescription = diffTooLarge(diff) ? ": Diff too large" : ":\n" + diff.toString();
logConsumer.accept("Patching file " + name + diffDescription);
consumer.accept(newLines);
return true;
@@ -127,6 +127,6 @@ public class Editor {
}
private static boolean diffTooLarge(StringBuilder diff) {
- return diff.length() > maxLength;
+ return diff.length() > MAX_LENGTH;
}
}