aboutsummaryrefslogtreecommitdiffstats
path: root/zkfacade
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-06-04 13:32:15 +0200
committerHarald Musum <musum@oath.com>2018-06-04 13:32:15 +0200
commitba5119380c63568274eb94aa6bcd44e8184457d4 (patch)
treea3053c100268ab3ea58dcb7e9afe389b0fd8e60e /zkfacade
parentd4297ad79053fd359abf6cdf43bb5428461682e5 (diff)
Do not delete unused tenants that have been created last week
* Add support for getting stat info for a zookeeper node * For unused tenants, check when tenant was created and do not delete unless TTL (7 days) has been exceeded
Diffstat (limited to 'zkfacade')
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
index 0e0c7401e0e..6ba394c340d 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
@@ -21,6 +21,7 @@ import org.apache.curator.framework.recipes.locks.InterProcessMutex;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.curator.framework.state.ConnectionStateListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
+import org.apache.zookeeper.data.Stat;
import java.time.Duration;
import java.util.Arrays;
@@ -298,6 +299,21 @@ public class Curator implements AutoCloseable {
}
}
+ /**
+ * Returns the stat data at the given path.
+ * Empty is returned if the path does not exist.
+ */
+ public Optional<Stat> getStat(Path path) {
+ if ( ! exists(path)) return Optional.empty();
+
+ try {
+ return Optional.of(framework().checkExists().forPath(path.getAbsolute()));
+ }
+ catch (Exception e) {
+ throw new RuntimeException("Could not get data at " + path.getAbsolute(), e);
+ }
+ }
+
/** Returns the curator framework API */
public CuratorFramework framework() {
return curatorFramework;