diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-07-08 10:01:45 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-07-08 10:01:45 +0200 |
commit | 08afd426d391fa66f51be424b1f6b2f593b8e116 (patch) | |
tree | 6740d5d653876d48a1b610fbe8200039b454843a /configserver | |
parent | 679ed0d71e2548d4984989f9828dc71c66267ccf (diff) |
Support recursivetransactional delete in zk
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java | 10 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java index 5510829af23..67735c35262 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java @@ -178,6 +178,8 @@ public class LocalSession extends Session implements Comparable<LocalSession> { } } + // The rest of this class should be moved elsewhere ... + private static class FileTransaction extends AbstractTransaction { public static FileTransaction from(FileOperation operation) { @@ -212,7 +214,11 @@ public class LocalSession extends Session implements Comparable<LocalSession> { void commit(); } - + + /** + * Recursively deletes this path and everything below. + * Succeeds with no action if the path does not exist. + */ private static class DeleteOperation implements FileOperation { private final String pathToDelete; @@ -223,7 +229,7 @@ public class LocalSession extends Session implements Comparable<LocalSession> { @Override public void commit() { - // TODO: Consider checking path existence first and throwing exception if it exists but the call returns false + // TODO: Check delete access in prepare() IOUtils.recursiveDeleteDir(new File(pathToDelete)); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java index 15df0373ac6..da1fda43f9f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java @@ -126,7 +126,7 @@ public class SessionZooKeeperClient { /** Returns a transaction deleting this session on commit */ public CuratorTransaction deleteTransaction() { - return CuratorTransaction.from(CuratorOperations.delete(rootPath.getAbsolute()), curator); + return CuratorTransaction.from(CuratorOperations.deleteAll(rootPath.getAbsolute(), curator), curator); } public ApplicationPackage loadApplicationPackage() { |