diff options
Diffstat (limited to 'zkfacade/src')
-rw-r--r-- | zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java | 16 |
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; |