From ec15cb18463a5efb0bc8997c9325670db2f455bb Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Tue, 12 Feb 2019 08:55:42 +0100 Subject: More code reuse in CuratorDb locks --- .../hosted/controller/persistence/CuratorDb.java | 36 +++++----------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java index 2ec5873ef58..0f43aaece7f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/CuratorDb.java @@ -120,6 +120,7 @@ public class CuratorDb { /** Creates a reentrant lock */ private Lock lock(Path path, Duration timeout) { + curator.create(path); Lock lock = locks.computeIfAbsent(path, (pathArg) -> new Lock(pathArg.getAbsolute(), curator)); lock.acquire(timeout); return lock; @@ -502,59 +503,36 @@ public class CuratorDb { // -------------- Paths --------------------------------------------------- private Path lockPath(TenantName tenant) { - Path lockPath = lockRoot + return lockRoot .append(tenant.value()); - curator.create(lockPath); - return lockPath; } private Path lockPath(ApplicationId application) { - Path lockPath = lockRoot - .append(application.tenant().value()) + return lockPath(application.tenant()) .append(application.application().value()) .append(application.instance().value()); - curator.create(lockPath); - return lockPath; } private Path lockPath(ApplicationId application, ZoneId zone) { - Path lockPath = lockRoot - .append(application.tenant().value()) - .append(application.application().value()) - .append(application.instance().value()) + return lockPath(application) .append(zone.environment().value()) .append(zone.region().value()); - curator.create(lockPath); - return lockPath; } private Path lockPath(ApplicationId application, JobType type) { - Path lockPath = lockRoot - .append(application.tenant().value()) - .append(application.application().value()) - .append(application.instance().value()) + return lockPath(application) .append(type.jobName()); - curator.create(lockPath); - return lockPath; } private Path lockPath(ApplicationId application, JobType type, Step step) { - Path lockPath = lockRoot - .append(application.tenant().value()) - .append(application.application().value()) - .append(application.instance().value()) - .append(type.jobName()) + return lockPath(application, type) .append(step.name()); - curator.create(lockPath); - return lockPath; } private Path lockPath(String provisionId) { - Path lockPath = lockRoot + return lockRoot .append(provisionStatePath()) .append(provisionId); - curator.create(lockPath); - return lockPath; } private static Path inactiveJobsPath() { -- cgit v1.2.3