aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-04-21 13:50:20 +0200
committerJon Bratseth <bratseth@gmail.com>2020-04-21 13:50:20 +0200
commiteec77fa0e5b00cb88f248346d19f9dedb4d295ae (patch)
tree26404ede0627c9a4897d0b92aba88f2b17ff8dae /node-repository
parentf23cf8b3afd927f5c99e475d3eb9d043360483d4 (diff)
Cleanup
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java92
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java (renamed from node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java)2
2 files changed, 40 insertions, 54 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
index b516e360238..8cd431f8d8b 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java
@@ -62,10 +62,16 @@ public class CuratorDatabaseClient {
private static final Logger log = Logger.getLogger(CuratorDatabaseClient.class.getName());
private static final Path root = Path.fromString("/provision/v1");
- private static final Path lockRoot = root.append("locks");
- private static final Path configLockRoot = Path.fromString("/config/v2/locks/");
- private static final Path loadBalancersRoot = root.append("loadBalancers");
- private static final Path applicationsRoot = root.append("applications");
+ private static final Path lockPath = root.append("locks");
+ private static final Path configLockPath = Path.fromString("/config/v2/locks/");
+ private static final Path loadBalancersPath = root.append("loadBalancers");
+ private static final Path applicationsPath = root.append("applications");
+ private static final Path inactiveJobsPath = root.append("inactiveJobs");
+ private static final Path infrastructureVersionsPath = root.append("infrastructureVersions");
+ private static final Path osVersionsPath = root.append("osVersions");
+ private static final Path dockerImagesPath = root.append("dockerImages");
+ private static final Path firmwareCheckPath = root.append("firmwareCheck");
+
private static final Duration defaultLockTimeout = Duration.ofMinutes(2);
private final NodeSerializer nodeSerializer;
@@ -92,13 +98,13 @@ public class CuratorDatabaseClient {
curatorDatabase.create(root);
for (Node.State state : Node.State.values())
curatorDatabase.create(toPath(state));
- curatorDatabase.create(applicationsRoot);
- curatorDatabase.create(inactiveJobsPath());
- curatorDatabase.create(infrastructureVersionsPath());
- curatorDatabase.create(osVersionsPath());
- curatorDatabase.create(dockerImagesPath());
- curatorDatabase.create(firmwareCheckPath());
- curatorDatabase.create(loadBalancersRoot);
+ curatorDatabase.create(applicationsPath);
+ curatorDatabase.create(inactiveJobsPath);
+ curatorDatabase.create(infrastructureVersionsPath);
+ curatorDatabase.create(osVersionsPath);
+ curatorDatabase.create(dockerImagesPath);
+ curatorDatabase.create(firmwareCheckPath);
+ curatorDatabase.create(loadBalancersPath);
provisionIndexCounter.initialize(100);
}
@@ -319,7 +325,7 @@ public class CuratorDatabaseClient {
/** Creates and returns the path to the lock for this application */
private Path lockPath(ApplicationId application) {
Path lockPath =
- lockRoot
+ CuratorDatabaseClient.lockPath
.append(application.tenant().value())
.append(application.application().value())
.append(application.instance().value());
@@ -330,7 +336,7 @@ public class CuratorDatabaseClient {
/** Creates and returns the path to the config server lock for this application */
private Path configLockPath(ApplicationId application) {
// This must match the lock path used by com.yahoo.vespa.config.server.application.TenantApplications
- Path lockPath = configLockRoot.append(application.tenant().value()).append(application.serializedForm());
+ Path lockPath = configLockPath.append(application.tenant().value()).append(application.serializedForm());
curatorDatabase.create(lockPath);
return lockPath;
}
@@ -352,7 +358,7 @@ public class CuratorDatabaseClient {
/** Acquires the single cluster-global, reentrant lock for all non-active nodes */
public Lock lockInactive() {
- return lock(lockRoot.append("unallocatedLock"), defaultLockTimeout);
+ return lock(lockPath.append("unallocatedLock"), defaultLockTimeout);
}
/** Acquires the single cluster-global, reentrant lock for active nodes of this application */
@@ -407,18 +413,18 @@ public class CuratorDatabaseClient {
}
private Path applicationPath(ApplicationId id) {
- return applicationsRoot.append(id.serializedForm());
+ return applicationsPath.append(id.serializedForm());
}
// Maintenance jobs -----------------------------------------------------------
public Lock lockMaintenanceJob(String jobName) {
- return lock(lockRoot.append("maintenanceJobLocks").append(jobName), defaultLockTimeout);
+ return lock(lockPath.append("maintenanceJobLocks").append(jobName), defaultLockTimeout);
}
public Set<String> readInactiveJobs() {
try {
- return read(inactiveJobsPath(), stringSetSerializer::fromJson).orElseGet(HashSet::new);
+ return read(inactiveJobsPath, stringSetSerializer::fromJson).orElseGet(HashSet::new);
}
catch (RuntimeException e) {
log.log(Level.WARNING, "Error reading inactive jobs, deleting inactive state");
@@ -430,83 +436,67 @@ public class CuratorDatabaseClient {
public void writeInactiveJobs(Set<String> inactiveJobs) {
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction);
- curatorTransaction.add(CuratorOperations.setData(inactiveJobsPath().getAbsolute(),
+ curatorTransaction.add(CuratorOperations.setData(inactiveJobsPath.getAbsolute(),
stringSetSerializer.toJson(inactiveJobs)));
transaction.commit();
}
public Lock lockInactiveJobs() {
- return lock(lockRoot.append("inactiveJobsLock"), defaultLockTimeout);
- }
-
- private Path inactiveJobsPath() {
- return root.append("inactiveJobs");
+ return lock(lockPath.append("inactiveJobsLock"), defaultLockTimeout);
}
// Infrastructure versions -----------------------------------------------------------
public Map<NodeType, Version> readInfrastructureVersions() {
- return read(infrastructureVersionsPath(), NodeTypeVersionsSerializer::fromJson).orElseGet(TreeMap::new);
+ return read(infrastructureVersionsPath, NodeTypeVersionsSerializer::fromJson).orElseGet(TreeMap::new);
}
public void writeInfrastructureVersions(Map<NodeType, Version> infrastructureVersions) {
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction);
- curatorTransaction.add(CuratorOperations.setData(infrastructureVersionsPath().getAbsolute(),
+ curatorTransaction.add(CuratorOperations.setData(infrastructureVersionsPath.getAbsolute(),
NodeTypeVersionsSerializer.toJson(infrastructureVersions)));
transaction.commit();
}
public Lock lockInfrastructureVersions() {
- return lock(lockRoot.append("infrastructureVersionsLock"), defaultLockTimeout);
- }
-
- private Path infrastructureVersionsPath() {
- return root.append("infrastructureVersions");
+ return lock(lockPath.append("infrastructureVersionsLock"), defaultLockTimeout);
}
// OS versions -----------------------------------------------------------
public Map<NodeType, Version> readOsVersions() {
- return read(osVersionsPath(), OsVersionsSerializer::fromJson).orElseGet(TreeMap::new);
+ return read(osVersionsPath, OsVersionsSerializer::fromJson).orElseGet(TreeMap::new);
}
public void writeOsVersions(Map<NodeType, Version> versions) {
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction);
- curatorTransaction.add(CuratorOperations.setData(osVersionsPath().getAbsolute(),
+ curatorTransaction.add(CuratorOperations.setData(osVersionsPath.getAbsolute(),
OsVersionsSerializer.toJson(versions)));
transaction.commit();
}
public Lock lockOsVersions() {
- return lock(lockRoot.append("osVersionsLock"), defaultLockTimeout);
- }
-
- private Path osVersionsPath() {
- return root.append("osVersions");
+ return lock(lockPath.append("osVersionsLock"), defaultLockTimeout);
}
// Docker images -----------------------------------------------------------
public Map<NodeType, DockerImage> readDockerImages() {
- return read(dockerImagesPath(), NodeTypeDockerImagesSerializer::fromJson).orElseGet(TreeMap::new);
+ return read(dockerImagesPath, NodeTypeDockerImagesSerializer::fromJson).orElseGet(TreeMap::new);
}
public void writeDockerImages(Map<NodeType, DockerImage> dockerImages) {
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction);
- curatorTransaction.add(CuratorOperations.setData(dockerImagesPath().getAbsolute(),
+ curatorTransaction.add(CuratorOperations.setData(dockerImagesPath.getAbsolute(),
NodeTypeDockerImagesSerializer.toJson(dockerImages)));
transaction.commit();
}
public Lock lockDockerImages() {
- return lock(lockRoot.append("dockerImagesLock"), defaultLockTimeout);
- }
-
- private Path dockerImagesPath() {
- return root.append("dockerImages");
+ return lock(lockPath.append("dockerImagesLock"), defaultLockTimeout);
}
// Firmware checks -----------------------------------------------------------
@@ -517,17 +507,13 @@ public class CuratorDatabaseClient {
.orElse(new byte[0]);
NestedTransaction transaction = new NestedTransaction();
CuratorTransaction curatorTransaction = curatorDatabase.newCuratorTransactionIn(transaction);
- curatorTransaction.add(CuratorOperations.setData(firmwareCheckPath().getAbsolute(), data));
+ curatorTransaction.add(CuratorOperations.setData(firmwareCheckPath.getAbsolute(), data));
transaction.commit();
}
/** Returns the instant after which a firmware check is required, if any. */
public Optional<Instant> readFirmwareCheck() {
- return read(firmwareCheckPath(), data -> Instant.ofEpochMilli(Long.parseLong(new String(data))));
- }
-
- private Path firmwareCheckPath() {
- return root.append("firmwareCheck");
+ return read(firmwareCheckPath, data -> Instant.ofEpochMilli(Long.parseLong(new String(data))));
}
// Load balancers -----------------------------------------------------------
@@ -572,15 +558,15 @@ public class CuratorDatabaseClient {
// TODO(mpolden): Remove this and usages after April 2020
public Lock lockLoadBalancers(ApplicationId application) {
- return lock(lockRoot.append("loadBalancersLock2").append(application.serializedForm()), defaultLockTimeout);
+ return lock(lockPath.append("loadBalancersLock2").append(application.serializedForm()), defaultLockTimeout);
}
private Path loadBalancerPath(LoadBalancerId id) {
- return loadBalancersRoot.append(id.serializedForm());
+ return loadBalancersPath.append(id.serializedForm());
}
private List<LoadBalancerId> readLoadBalancerIds(Predicate<LoadBalancerId> predicate) {
- return curatorDatabase.getChildren(loadBalancersRoot).stream()
+ return curatorDatabase.getChildren(loadBalancersPath).stream()
.map(LoadBalancerId::fromSerializedForm)
.filter(predicate)
.collect(Collectors.toUnmodifiableList());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
index 58ebfa555d6..15c73d15e8a 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
@@ -50,7 +50,7 @@ import static org.junit.Assert.assertTrue;
* @author bratseth
* @author mpolden
*/
-public class SerializationTest {
+public class NodeSerializerTest {
private final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default", "large", "ugccloud-container");
private final NodeSerializer nodeSerializer = new NodeSerializer(nodeFlavors);