diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2018-04-24 11:55:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-24 11:55:05 +0200 |
commit | ac3744f95a1f9cbca71ba315c512abbe8ec16abe (patch) | |
tree | 2e9b3f7c5f3b51d51c4e61cd6bdbe2e10a3f54c2 | |
parent | dbe55af3a7cb92f3c4ff353a09a88dad2dec2ad4 (diff) |
Revert "Log when diff too large"
3 files changed, 27 insertions, 23 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 4e5906d3c34..a8e0c64f4e1 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,10 +14,11 @@ import java.util.List; */ class FilterTableLineEditor implements LineEditor { - private final LinkedList<String> wantedRules; + private final List<String> wantedRules; + private boolean removeRemaining = false; FilterTableLineEditor(List<String> wantedRules) { - this.wantedRules = new LinkedList<>(wantedRules); + this.wantedRules = new ArrayList<>(wantedRules); } static FilterTableLineEditor from(Acl acl, IPVersion ipVersion) { @@ -27,8 +28,16 @@ class FilterTableLineEditor implements LineEditor { @Override public LineEdit edit(String line) { - String wantedRule = wantedRules.pop(); - return wantedRule.equals(line) ? LineEdit.none() : LineEdit.replaceWith(wantedRule); + if (removeRemaining) { + return LineEdit.remove(); + } + if (wantedRules.indexOf(line) == 0) { + wantedRules.remove(line); + return LineEdit.none(); + } else { + removeRemaining = true; + return LineEdit.remove(); + } } @Override diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/IPTablesEditor.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/IPTablesEditor.java index 7b33939398a..af92aa670f7 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/IPTablesEditor.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/acl/IPTablesEditor.java @@ -22,9 +22,10 @@ import java.util.stream.Collectors; /** * Edit the iptables for docker containers. */ -class IPTablesEditor { +public class IPTablesEditor { + + private static final PrefixLogger log = PrefixLogger.getNodeAdminLogger(AclMaintainer.class); - private final PrefixLogger log; private final DockerOperations dockerOperations; private final ContainerName containerName; private final Consumer<String> testInterceptor; @@ -37,7 +38,6 @@ class IPTablesEditor { this.dockerOperations = dockerOperations; this.containerName = containerName; this.testInterceptor = testInterceptor; - this.log = PrefixLogger.getNodeAgentLogger(AclMaintainer.class, containerName); } public static boolean editFlushOnError(DockerOperations dockerOperations, ContainerName containerName, IPVersion ipVersion, String table, LineEditor lineEditor) { 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 7dcae199858..9f5557e5940 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.LinkedList; +import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import java.util.function.Supplier; @@ -24,13 +24,12 @@ public class Editor { private static final Logger logger = Logger.getLogger(Editor.class.getName()); private static final Charset ENCODING = StandardCharsets.UTF_8; - private static final int MAX_LENGTH = 500; + private static int maxLength = 300; private final Supplier<List<String>> supplier; private final Consumer<List<String>> consumer; private final String name; private final LineEditor editor; - private int diffSize = 0; /** * Read the file which must be encoded in UTF-8, use the LineEditor to edit it, @@ -61,7 +60,7 @@ public class Editor { public boolean edit(Consumer<String> logConsumer) { List<String> lines = supplier.get(); - List<String> newLines = new LinkedList<>(); + List<String> newLines = new ArrayList<>(); StringBuilder diff = new StringBuilder(); boolean modified = false; @@ -103,7 +102,7 @@ public class Editor { return false; } - String diffDescription = diffTooLarge() ? ": Diff too large (" + diffSize + ")" : ":\n" + diff.toString(); + String diffDescription = diffTooLarge(diff) ? "" : ":\n" + diff.toString(); logConsumer.accept("Patching file " + name + diffDescription); consumer.accept(newLines); return true; @@ -113,25 +112,21 @@ public class Editor { return this.edit(line -> context.recordSystemModification(logger, line)); } - private void maybeAdd(StringBuilder diff, List<String> lines) { + private static void maybeAdd(StringBuilder diff, List<String> lines) { for (String line : lines) { - // 2 for '+' and '\n' - diffSize += 2 + line.length(); - if (!diffTooLarge()) { + if (!diffTooLarge(diff)) { diff.append('+').append(line).append('\n'); } } } - private void maybeRemove(StringBuilder diff, String line) { - // 2 for '-' and '\n' - diffSize += 2 + line.length(); - if (!diffTooLarge()) { + private static void maybeRemove(StringBuilder diff, String line) { + if (!diffTooLarge(diff)) { diff.append('-').append(line).append('\n'); } } - private boolean diffTooLarge() { - return diffSize > MAX_LENGTH; + private static boolean diffTooLarge(StringBuilder diff) { + return diff.length() > maxLength; } } |