You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mm...@apache.org on 2022/02/07 13:04:16 UTC
[accumulo] branch main updated: Create InstanceId to replace use of String (#2451)
This is an automated email from the ASF dual-hosted git repository.
mmiller pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push:
new a4189d3 Create InstanceId to replace use of String (#2451)
a4189d3 is described below
commit a4189d309bad73b17a53853700b14af5f0e097a7
Author: Mike Miller <mm...@apache.org>
AuthorDate: Mon Feb 7 08:04:04 2022 -0500
Create InstanceId to replace use of String (#2451)
---
.../accumulo/core/client/ZooKeeperInstance.java | 12 +++----
.../core/client/admin/InstanceOperations.java | 12 +++++++
.../clientImpl/AuthenticationTokenIdentifier.java | 15 ++++++---
.../accumulo/core/clientImpl/ClientContext.java | 18 +++++-----
.../accumulo/core/clientImpl/Credentials.java | 6 ++--
.../core/clientImpl/InstanceOperationsImpl.java | 12 +++++--
.../apache/accumulo/core/clientImpl/Tables.java | 3 +-
.../accumulo/core/clientImpl/TabletLocator.java | 7 ++--
.../org/apache/accumulo/core/data/AbstractId.java | 2 +-
.../core/data/{TableId.java => InstanceId.java} | 38 ++++++++++++++--------
.../org/apache/accumulo/core/data/NamespaceId.java | 2 +-
.../org/apache/accumulo/core/data/TableId.java | 2 +-
.../apache/accumulo/fate/zookeeper/ZooUtil.java | 3 +-
.../core/clientImpl/TabletLocatorImplTest.java | 7 ++--
.../AuthenticationTokenIdentifierTest.java | 3 +-
.../accumulo/core/security/CredentialsTest.java | 8 ++++-
.../miniclusterImpl/MiniAccumuloClusterImpl.java | 6 ++--
.../org/apache/accumulo/server/ServerContext.java | 5 +--
.../org/apache/accumulo/server/ServerDirs.java | 5 +--
.../org/apache/accumulo/server/ServerInfo.java | 12 +++----
.../server/client/ClientServiceHandler.java | 2 +-
.../server/conf/ServerConfigurationFactory.java | 12 ++++---
.../server/conf/ZooCachePropertyAccessor.java | 5 +--
.../server/conf/ZooConfigurationFactory.java | 3 +-
.../apache/accumulo/server/fs/VolumeManager.java | 5 +--
.../server/init/FileSystemInitializer.java | 4 +--
.../apache/accumulo/server/init/Initialize.java | 21 ++++++------
.../accumulo/server/init/ZooKeeperInitializer.java | 18 +++++-----
.../server/security/SecurityOperation.java | 2 +-
.../server/security/SystemCredentials.java | 15 +++++----
.../AuthenticationTokenSecretManager.java | 10 +++---
.../server/security/handler/ZKPermHandler.java | 3 +-
.../server/security/handler/ZKSecurityTool.java | 3 +-
.../accumulo/server/tables/TableManager.java | 11 ++++---
.../apache/accumulo/server/util/ChangeSecret.java | 14 ++++----
.../accumulo/server/util/CleanZookeeper.java | 4 +--
.../org/apache/accumulo/server/util/ZooZap.java | 3 +-
.../apache/accumulo/server/MockServerContext.java | 3 +-
.../server/conf/NamespaceConfigurationTest.java | 5 +--
.../conf/ServerConfigurationFactoryTest.java | 3 +-
.../server/conf/TableConfigurationTest.java | 5 +--
.../server/conf/ZooConfigurationFactoryTest.java | 3 +-
.../BaseHostRegexTableLoadBalancerTest.java | 3 +-
.../master/balancer/TableLoadBalancerTest.java | 5 +--
.../server/problems/ProblemReportTest.java | 12 ++++---
.../server/rpc/SaslDigestCallbackHandlerTest.java | 10 +++---
.../server/security/SystemCredentialsTest.java | 5 +--
.../AuthenticationTokenSecretManagerTest.java | 5 +--
.../ZooAuthenticationKeyWatcherTest.java | 5 +--
.../security/handler/ZKAuthenticatorTest.java | 5 +--
.../accumulo/server/util/TServerUtilsTest.java | 3 +-
.../accumulo/gc/SimpleGarbageCollectorTest.java | 5 +--
.../java/org/apache/accumulo/manager/Manager.java | 3 +-
.../DistributedWorkQueueWorkAssigner.java | 2 +-
.../replication/SequentialWorkAssigner.java | 3 +-
.../manager/replication/UnorderedWorkAssigner.java | 3 +-
.../apache/accumulo/manager/state/MergeStats.java | 2 +-
.../manager/tableOps/compact/CompactionDriver.java | 3 +-
.../manager/tableOps/delete/PreDeleteTable.java | 3 +-
.../ManagerReplicationCoordinatorTest.java | 13 ++++----
.../replication/SequentialWorkAssignerTest.java | 8 +++--
.../replication/UnorderedWorkAssignerTest.java | 2 ++
.../tableOps/compact/CompactionDriverTest.java | 5 +--
.../org/apache/accumulo/monitor/it/WebViewsIT.java | 3 +-
.../org/apache/accumulo/tserver/TabletServer.java | 3 +-
.../main/java/org/apache/accumulo/shell/Shell.java | 2 +-
.../accumulo/test/BadDeleteMarkersCreatedIT.java | 2 +-
.../org/apache/accumulo/test/ExistingMacIT.java | 2 +-
.../ThriftServerBindsBeforeZooKeeperLockIT.java | 5 +--
.../java/org/apache/accumulo/test/VolumeIT.java | 13 ++++----
.../accumulo/test/functional/AccumuloClientIT.java | 2 +-
.../accumulo/test/functional/BackupManagerIT.java | 2 +-
.../BalanceInPresenceOfOfflineTableIT.java | 2 +-
.../test/functional/FateConcurrencyIT.java | 5 +--
.../test/functional/GarbageCollectorIT.java | 2 +-
.../accumulo/test/functional/ReadWriteIT.java | 2 +-
.../apache/accumulo/test/functional/RestartIT.java | 4 +--
.../test/functional/SimpleBalancerFairnessIT.java | 2 +-
.../functional/TabletStateChangeIteratorIT.java | 2 +-
.../CloseWriteAheadLogReferencesIT.java | 3 +-
.../replication/MultiTserverReplicationIT.java | 6 ++--
.../accumulo/test/replication/ReplicationIT.java | 2 +-
.../test/server/security/SystemCredentialsIT.java | 3 +-
83 files changed, 304 insertions(+), 200 deletions(-)
diff --git a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
index 16b3ad2..0b74a4d 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
@@ -22,9 +22,9 @@ import static com.google.common.base.Preconditions.checkArgument;
import java.util.List;
import java.util.Properties;
-import java.util.UUID;
import java.util.concurrent.TimeUnit;
+import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
import org.apache.accumulo.core.clientImpl.ClientConfConverter;
import org.apache.accumulo.core.clientImpl.ClientContext;
@@ -34,6 +34,7 @@ import org.apache.accumulo.core.clientImpl.InstanceOperationsImpl;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.ClientProperty;
import org.apache.accumulo.core.conf.ConfigurationTypeHelper;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.metadata.schema.TabletMetadata.Location;
import org.apache.accumulo.core.metadata.schema.TabletMetadata.LocationType;
import org.apache.accumulo.core.metadata.schema.TabletsMetadata;
@@ -43,7 +44,6 @@ import org.apache.accumulo.core.singletons.SingletonReservation;
import org.apache.accumulo.core.util.OpTimer;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
-import org.apache.accumulo.fate.zookeeper.ZooUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -127,7 +127,7 @@ public class ZooKeeperInstance implements Instance {
@Override
public String getInstanceID() {
if (instanceId == null) {
- instanceId = ClientContext.getInstanceID(zooCache, instanceName);
+ instanceId = ClientContext.getInstanceID(zooCache, instanceName).canonical();
}
ClientContext.verifyInstanceId(zooCache, instanceId, instanceName);
return instanceId;
@@ -148,8 +148,8 @@ public class ZooKeeperInstance implements Instance {
timer = new OpTimer().start();
}
- Location loc =
- TabletsMetadata.getRootMetadata(ZooUtil.getRoot(getInstanceID()), zooCache).getLocation();
+ Location loc = TabletsMetadata
+ .getRootMetadata(Constants.ZROOT + "/" + getInstanceID(), zooCache).getLocation();
if (timer != null) {
timer.stop();
@@ -168,7 +168,7 @@ public class ZooKeeperInstance implements Instance {
public String getInstanceName() {
if (instanceName == null)
instanceName =
- InstanceOperationsImpl.lookupInstanceName(zooCache, UUID.fromString(getInstanceID()));
+ InstanceOperationsImpl.lookupInstanceName(zooCache, InstanceId.of(getInstanceID()));
return instanceName;
}
diff --git a/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperations.java b/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperations.java
index f4b6dbd..46a309d 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperations.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperations.java
@@ -23,6 +23,7 @@ import java.util.Map;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.data.InstanceId;
public interface InstanceOperations {
@@ -154,6 +155,17 @@ public interface InstanceOperations {
*
* @return a String
* @since 2.0.0
+ *
+ * @deprecated in 2.1.0 Use {@link #getInstanceId()}
*/
+ @Deprecated(since = "2.1.0")
String getInstanceID();
+
+ /**
+ * Returns a unique ID object that identifies this instance of accumulo.
+ *
+ * @return an InstanceId
+ * @since 2.1.0
+ */
+ InstanceId getInstanceId();
}
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/AuthenticationTokenIdentifier.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/AuthenticationTokenIdentifier.java
index e04a71f..a982e83 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/AuthenticationTokenIdentifier.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/AuthenticationTokenIdentifier.java
@@ -25,6 +25,7 @@ import java.io.DataOutput;
import java.io.IOException;
import java.nio.ByteBuffer;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.securityImpl.thrift.TAuthenticationTokenIdentifier;
import org.apache.accumulo.core.util.ByteBufferUtil;
import org.apache.accumulo.core.util.ThriftMessageUtil;
@@ -77,12 +78,15 @@ public class AuthenticationTokenIdentifier extends TokenIdentifier {
return impl.getExpirationDate();
}
- public void setInstanceId(String instanceId) {
- impl.setInstanceId(instanceId);
+ public void setInstanceId(InstanceId instanceId) {
+ impl.setInstanceId(instanceId.canonical());
}
- public String getInstanceId() {
- return impl.getInstanceId();
+ public InstanceId getInstanceId() {
+ if (impl.getInstanceId() == null)
+ return InstanceId.of("");
+ else
+ return InstanceId.of(impl.getInstanceId());
}
public TAuthenticationTokenIdentifier getThriftIdentifier() {
@@ -113,7 +117,8 @@ public class AuthenticationTokenIdentifier extends TokenIdentifier {
impl.principal = tAuthTokenId.getPrincipal();
setExpirationDate(tAuthTokenId.getExpirationDate());
setIssueDate(tAuthTokenId.getIssueDate());
- setInstanceId(tAuthTokenId.getInstanceId());
+ if (tAuthTokenId.getInstanceId() != null)
+ setInstanceId(InstanceId.of(tAuthTokenId.getInstanceId()));
setKeyId(tAuthTokenId.getKeyId());
}
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
index 039194e..d1d8e2d 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
@@ -58,6 +58,7 @@ import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.ClientProperty;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.manager.state.tables.TableState;
import org.apache.accumulo.core.metadata.RootTable;
@@ -97,7 +98,7 @@ public class ClientContext implements AccumuloClient {
private static final Logger log = LoggerFactory.getLogger(ClientContext.class);
private final ClientInfo info;
- private String instanceId;
+ private InstanceId instanceId;
private final ZooCache zooCache;
private Credentials creds;
@@ -179,7 +180,7 @@ public class ClientContext implements AccumuloClient {
@Override
public String getInstanceID() {
- return context.getInstanceID();
+ return context.getInstanceID().canonical();
}
@Override
@@ -402,12 +403,13 @@ public class ClientContext implements AccumuloClient {
*/
public List<String> getManagerLocations() {
ensureOpen();
- return getManagerLocations(zooCache, getInstanceID());
+ return getManagerLocations(zooCache, getInstanceID().canonical());
}
// available only for sharing code with old ZooKeeperInstance
public static List<String> getManagerLocations(ZooCache zooCache, String instanceId) {
- var zLockManagerPath = ServiceLock.path(ZooUtil.getRoot(instanceId) + Constants.ZMANAGER_LOCK);
+ var zLockManagerPath =
+ ServiceLock.path(Constants.ZROOT + "/" + instanceId + Constants.ZMANAGER_LOCK);
OpTimer timer = null;
@@ -437,18 +439,18 @@ public class ClientContext implements AccumuloClient {
*
* @return a UUID
*/
- public String getInstanceID() {
+ public InstanceId getInstanceID() {
ensureOpen();
if (instanceId == null) {
final String instanceName = info.getInstanceName();
instanceId = getInstanceID(zooCache, instanceName);
- verifyInstanceId(zooCache, instanceId, instanceName);
+ verifyInstanceId(zooCache, instanceId.canonical(), instanceName);
}
return instanceId;
}
// available only for sharing code with old ZooKeeperInstance
- public static String getInstanceID(ZooCache zooCache, String instanceName) {
+ public static InstanceId getInstanceID(ZooCache zooCache, String instanceName) {
requireNonNull(zooCache, "zooCache cannot be null");
requireNonNull(instanceName, "instanceName cannot be null");
String instanceNamePath = Constants.ZROOT + Constants.ZINSTANCES + "/" + instanceName;
@@ -457,7 +459,7 @@ public class ClientContext implements AccumuloClient {
throw new RuntimeException("Instance name " + instanceName + " does not exist in zookeeper. "
+ "Run \"accumulo org.apache.accumulo.server.util.ListInstances\" to see a list.");
}
- return new String(data, UTF_8);
+ return InstanceId.of(new String(data, UTF_8));
}
// available only for sharing code with old ZooKeeperInstance
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/Credentials.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/Credentials.java
index 5958353..a3cc682 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/Credentials.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/Credentials.java
@@ -28,6 +28,7 @@ import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.AuthenticationTokenSerializer;
import org.apache.accumulo.core.clientImpl.thrift.SecurityErrorCode;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.securityImpl.thrift.TCredentials;
/**
@@ -91,9 +92,10 @@ public class Credentials {
* @throws RuntimeException
* if the authentication token has been destroyed (expired)
*/
- public TCredentials toThrift(String instanceID) {
+ public TCredentials toThrift(InstanceId instanceID) {
TCredentials tCreds = new TCredentials(getPrincipal(), getToken().getClass().getName(),
- ByteBuffer.wrap(AuthenticationTokenSerializer.serialize(getToken())), instanceID);
+ ByteBuffer.wrap(AuthenticationTokenSerializer.serialize(getToken())),
+ instanceID.canonical());
if (getToken().isDestroyed())
throw new RuntimeException("Token has been destroyed",
new AccumuloSecurityException(getPrincipal(), SecurityErrorCode.TOKEN_EXPIRED));
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/InstanceOperationsImpl.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/InstanceOperationsImpl.java
index 5075ad7..61740f0 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/InstanceOperationsImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/InstanceOperationsImpl.java
@@ -30,7 +30,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@@ -46,6 +45,7 @@ import org.apache.accumulo.core.client.admin.InstanceOperations;
import org.apache.accumulo.core.clientImpl.thrift.ConfigurationType;
import org.apache.accumulo.core.clientImpl.thrift.ThriftSecurityException;
import org.apache.accumulo.core.conf.DeprecatedPropertyUtil;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.tabletserver.thrift.TabletClientService.Client;
import org.apache.accumulo.core.trace.TraceUtil;
import org.apache.accumulo.core.util.AddressUtil;
@@ -285,12 +285,12 @@ public class InstanceOperationsImpl implements InstanceOperations {
/**
* Given a zooCache and instanceId, look up the instance name.
*/
- public static String lookupInstanceName(ZooCache zooCache, UUID instanceId) {
+ public static String lookupInstanceName(ZooCache zooCache, InstanceId instanceId) {
checkArgument(zooCache != null, "zooCache is null");
checkArgument(instanceId != null, "instanceId is null");
for (String name : zooCache.getChildren(Constants.ZROOT + Constants.ZINSTANCES)) {
var bytes = zooCache.get(Constants.ZROOT + Constants.ZINSTANCES + "/" + name);
- var iid = UUID.fromString(new String(bytes, UTF_8));
+ InstanceId iid = InstanceId.of(new String(bytes, UTF_8));
if (iid.equals(instanceId)) {
return name;
}
@@ -299,7 +299,13 @@ public class InstanceOperationsImpl implements InstanceOperations {
}
@Override
+ @Deprecated(since = "2.1.0")
public String getInstanceID() {
+ return getInstanceId().canonical();
+ }
+
+ @Override
+ public InstanceId getInstanceId() {
return context.getInstanceID();
}
}
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/Tables.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/Tables.java
index ae35b69..7ec8e40 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/Tables.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/Tables.java
@@ -31,6 +31,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.NamespaceNotFoundException;
import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.manager.state.tables.TableState;
@@ -50,7 +51,7 @@ public class Tables {
// Per instance cache will expire after 10 minutes in case we
// encounter an instance not used frequently
- private static Cache<String,TableMap> instanceToMapCache =
+ private static final Cache<InstanceId,TableMap> instanceToMapCache =
CacheBuilder.newBuilder().expireAfterAccess(10, TimeUnit.MINUTES).build();
static {
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/TabletLocator.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/TabletLocator.java
index 8468157..7161b67 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/TabletLocator.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/TabletLocator.java
@@ -29,6 +29,7 @@ import java.util.Map;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.data.TableId;
@@ -81,10 +82,10 @@ public abstract class TabletLocator {
public abstract void invalidateCache(ClientContext context, String server);
private static class LocatorKey {
- String instanceId;
+ InstanceId instanceId;
TableId tableId;
- LocatorKey(String instanceId, TableId table) {
+ LocatorKey(InstanceId instanceId, TableId table) {
this.instanceId = instanceId;
this.tableId = table;
}
@@ -107,7 +108,7 @@ public abstract class TabletLocator {
}
- private static HashMap<LocatorKey,TabletLocator> locators = new HashMap<>();
+ private static final HashMap<LocatorKey,TabletLocator> locators = new HashMap<>();
private static boolean enabled = true;
public static synchronized void clearLocators() {
diff --git a/core/src/main/java/org/apache/accumulo/core/data/AbstractId.java b/core/src/main/java/org/apache/accumulo/core/data/AbstractId.java
index 2cf275f..8f72ff4 100644
--- a/core/src/main/java/org/apache/accumulo/core/data/AbstractId.java
+++ b/core/src/main/java/org/apache/accumulo/core/data/AbstractId.java
@@ -61,7 +61,7 @@ public abstract class AbstractId<T extends AbstractId<T>> implements Comparable<
* Returns a string of the canonical ID. This is guaranteed to be non-null.
*/
@Override
- public String toString() {
+ public final String toString() {
return canonical();
}
diff --git a/core/src/main/java/org/apache/accumulo/core/data/TableId.java b/core/src/main/java/org/apache/accumulo/core/data/InstanceId.java
similarity index 57%
copy from core/src/main/java/org/apache/accumulo/core/data/TableId.java
copy to core/src/main/java/org/apache/accumulo/core/data/InstanceId.java
index 84203c3..8768b9a 100644
--- a/core/src/main/java/org/apache/accumulo/core/data/TableId.java
+++ b/core/src/main/java/org/apache/accumulo/core/data/InstanceId.java
@@ -18,42 +18,54 @@
*/
package org.apache.accumulo.core.data;
+import java.util.Objects;
+import java.util.UUID;
import java.util.concurrent.ExecutionException;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
/**
- * A strongly typed representation of a table ID. This class cannot be used to get a table ID from a
- * table name, but does provide the table ID string wrapped with a stronger type. The constructor
- * for this class will throw an error if the canonical parameter is null.
+ * A strongly typed representation of an Accumulo instance ID. The constructor for this class will
+ * throw an error if the canonical parameter is null.
*
- * @since 2.0.0
+ * @since 2.1.0
*/
-public class TableId extends AbstractId<TableId> {
+public class InstanceId extends AbstractId<InstanceId> {
private static final long serialVersionUID = 1L;
// cache is for canonicalization/deduplication of created objects,
- // to limit the number of TableId objects in the JVM at any given moment
+ // to limit the number of InstanceId objects in the JVM at any given moment
// WeakReferences are used because we don't need them to stick around any longer than they need to
- static final Cache<String,TableId> cache = CacheBuilder.newBuilder().weakValues().build();
+ static final Cache<String,InstanceId> cache = CacheBuilder.newBuilder().weakValues().build();
- private TableId(final String canonical) {
+ private InstanceId(String canonical) {
super(canonical);
}
/**
- * Get a TableId object for the provided canonical string. This is guaranteed to be non-null.
+ * Get a InstanceId object for the provided canonical string. This is guaranteed to be non-null
*
* @param canonical
- * table ID string
- * @return Table.ID object
+ * Instance ID string
+ * @return InstanceId object
*/
- public static TableId of(final String canonical) {
+ public static InstanceId of(final String canonical) {
try {
- return cache.get(canonical, () -> new TableId(canonical));
+ return cache.get(canonical, () -> new InstanceId(canonical));
} catch (ExecutionException e) {
throw new AssertionError(
"This should never happen: ID constructor should never return null.");
}
}
+
+ /**
+ * Get a InstanceId object for the provided uuid. This is guaranteed to be non-null
+ *
+ * @param uuid
+ * UUID object
+ * @return InstanceId object
+ */
+ public static InstanceId of(final UUID uuid) {
+ return of(Objects.requireNonNull(uuid, "uuid cannot be null").toString());
+ }
}
diff --git a/core/src/main/java/org/apache/accumulo/core/data/NamespaceId.java b/core/src/main/java/org/apache/accumulo/core/data/NamespaceId.java
index e700f7b..cc6ec46 100644
--- a/core/src/main/java/org/apache/accumulo/core/data/NamespaceId.java
+++ b/core/src/main/java/org/apache/accumulo/core/data/NamespaceId.java
@@ -46,7 +46,7 @@ public class NamespaceId extends AbstractId<NamespaceId> {
*
* @param canonical
* Namespace ID string
- * @return Namespace.ID object
+ * @return NamespaceId object
*/
public static NamespaceId of(final String canonical) {
try {
diff --git a/core/src/main/java/org/apache/accumulo/core/data/TableId.java b/core/src/main/java/org/apache/accumulo/core/data/TableId.java
index 84203c3..581ba1a 100644
--- a/core/src/main/java/org/apache/accumulo/core/data/TableId.java
+++ b/core/src/main/java/org/apache/accumulo/core/data/TableId.java
@@ -46,7 +46,7 @@ public class TableId extends AbstractId<TableId> {
*
* @param canonical
* table ID string
- * @return Table.ID object
+ * @return TableId object
*/
public static TableId of(final String canonical) {
try {
diff --git a/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooUtil.java b/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooUtil.java
index 269cd63..82c3a16 100644
--- a/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooUtil.java
+++ b/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooUtil.java
@@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.Code;
import org.apache.zookeeper.ZooDefs.Ids;
@@ -91,7 +92,7 @@ public class ZooUtil {
PUBLIC.add(new ACL(Perms.READ, Ids.ANYONE_ID_UNSAFE));
}
- public static String getRoot(final String instanceId) {
+ public static String getRoot(final InstanceId instanceId) {
return Constants.ZROOT + "/" + instanceId;
}
diff --git a/core/src/test/java/org/apache/accumulo/core/clientImpl/TabletLocatorImplTest.java b/core/src/test/java/org/apache/accumulo/core/clientImpl/TabletLocatorImplTest.java
index 228ea71..5cc65c9 100644
--- a/core/src/test/java/org/apache/accumulo/core/clientImpl/TabletLocatorImplTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/clientImpl/TabletLocatorImplTest.java
@@ -41,6 +41,7 @@ import org.apache.accumulo.core.clientImpl.TabletLocator.TabletLocations;
import org.apache.accumulo.core.clientImpl.TabletLocator.TabletServerMutations;
import org.apache.accumulo.core.clientImpl.TabletLocatorImpl.TabletLocationObtainer;
import org.apache.accumulo.core.clientImpl.TabletLocatorImpl.TabletServerLockChecker;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.PartialKey;
@@ -169,12 +170,14 @@ public class TabletLocatorImplTest {
}
private ClientContext context;
+ private InstanceId iid;
@Before
public void setUp() {
context = EasyMock.createMock(ClientContext.class);
+ iid = InstanceId.of("instance1");
EasyMock.expect(context.getRootTabletLocation()).andReturn("tserver1").anyTimes();
- EasyMock.expect(context.getInstanceID()).andReturn("instance1").anyTimes();
+ EasyMock.expect(context.getInstanceID()).andReturn(iid).anyTimes();
replay(context);
}
@@ -669,7 +672,7 @@ public class TabletLocatorImplTest {
EasyMock.verify(context);
context = EasyMock.createMock(ClientContext.class);
- EasyMock.expect(context.getInstanceID()).andReturn("instance1").anyTimes();
+ EasyMock.expect(context.getInstanceID()).andReturn(iid).anyTimes();
EasyMock.expect(context.getRootTabletLocation()).andReturn("tserver4").anyTimes();
replay(context);
diff --git a/core/src/test/java/org/apache/accumulo/core/security/AuthenticationTokenIdentifierTest.java b/core/src/test/java/org/apache/accumulo/core/security/AuthenticationTokenIdentifierTest.java
index 12d0adf..0f950ae 100644
--- a/core/src/test/java/org/apache/accumulo/core/security/AuthenticationTokenIdentifierTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/security/AuthenticationTokenIdentifierTest.java
@@ -30,6 +30,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import org.apache.accumulo.core.clientImpl.AuthenticationTokenIdentifier;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.securityImpl.thrift.TAuthenticationTokenIdentifier;
import org.apache.hadoop.security.UserGroupInformation;
import org.junit.Test;
@@ -70,7 +71,7 @@ public class AuthenticationTokenIdentifierTest {
dblNewToken.setKeyId(1);
dblNewToken.setIssueDate(5L);
dblNewToken.setExpirationDate(10L);
- dblNewToken.setInstanceId("uuid");
+ dblNewToken.setInstanceId(InstanceId.of("uuid"));
}
@Test
diff --git a/core/src/test/java/org/apache/accumulo/core/security/CredentialsTest.java b/core/src/test/java/org/apache/accumulo/core/security/CredentialsTest.java
index 7467433..da311e7 100644
--- a/core/src/test/java/org/apache/accumulo/core/security/CredentialsTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/security/CredentialsTest.java
@@ -34,6 +34,7 @@ import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.Authe
import org.apache.accumulo.core.client.security.tokens.NullToken;
import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.clientImpl.Credentials;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.securityImpl.thrift.TCredentials;
import org.junit.Rule;
import org.junit.Test;
@@ -44,10 +45,11 @@ public class CredentialsTest {
@Rule
public TestName test = new TestName();
- private String instanceID = test.getMethodName();
+ private InstanceId instanceID;
@Test
public void testToThrift() throws DestroyFailedException {
+ instanceID = InstanceId.of(test.getMethodName());
// verify thrift serialization
Credentials creds = new Credentials("test", new PasswordToken("testing"));
TCredentials tCreds = creds.toThrift(instanceID);
@@ -71,6 +73,7 @@ public class CredentialsTest {
@Test
public void roundtripThrift() {
+ instanceID = InstanceId.of(test.getMethodName());
Credentials creds = new Credentials("test", new PasswordToken("testing"));
TCredentials tCreds = creds.toThrift(instanceID);
Credentials roundtrip = Credentials.fromThrift(tCreds);
@@ -79,6 +82,7 @@ public class CredentialsTest {
@Test
public void testEqualsAndHashCode() {
+ instanceID = InstanceId.of(test.getMethodName());
Credentials nullNullCreds = new Credentials(null, null);
Credentials abcNullCreds = new Credentials("abc", new NullToken());
Credentials cbaNullCreds = new Credentials("cba", new NullToken());
@@ -104,6 +108,7 @@ public class CredentialsTest {
@Test
public void testCredentialsSerialization() {
+ instanceID = InstanceId.of(test.getMethodName());
Credentials creds = new Credentials("a:b-c", new PasswordToken("d-e-f".getBytes(UTF_8)));
String serialized = creds.serialize();
Credentials result = Credentials.deserialize(serialized);
@@ -120,6 +125,7 @@ public class CredentialsTest {
@Test
public void testToString() {
+ instanceID = InstanceId.of(test.getMethodName());
Credentials creds = new Credentials(null, null);
assertEquals(Credentials.class.getName() + ":null:null:<hidden>", creds.toString());
creds = new Credentials("", new NullToken());
diff --git a/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java b/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
index c096e20..c5782d2 100644
--- a/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
+++ b/minicluster/src/main/java/org/apache/accumulo/miniclusterImpl/MiniAccumuloClusterImpl.java
@@ -70,6 +70,7 @@ import org.apache.accumulo.core.conf.ConfigurationCopy;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.manager.thrift.ManagerClientService;
import org.apache.accumulo.core.manager.thrift.ManagerGoalState;
import org.apache.accumulo.core.manager.thrift.ManagerMonitorInfo;
@@ -490,7 +491,8 @@ public class MiniAccumuloClusterImpl implements AccumuloCluster {
throw new RuntimeException(e);
}
- String instanceIdFromFile = VolumeManager.getInstanceIDFromHdfs(instanceIdPath, hadoopConf);
+ InstanceId instanceIdFromFile =
+ VolumeManager.getInstanceIDFromHdfs(instanceIdPath, hadoopConf);
ZooReaderWriter zrw = new ZooReaderWriter(cc.get(Property.INSTANCE_ZK_HOST),
(int) cc.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT), cc.get(Property.INSTANCE_SECRET));
@@ -501,7 +503,7 @@ public class MiniAccumuloClusterImpl implements AccumuloCluster {
for (String name : zrw.getChildren(Constants.ZROOT + Constants.ZINSTANCES)) {
String instanceNamePath = Constants.ZROOT + Constants.ZINSTANCES + "/" + name;
byte[] bytes = zrw.getData(instanceNamePath);
- String iid = new String(bytes, UTF_8);
+ InstanceId iid = InstanceId.of(new String(bytes, UTF_8));
if (iid.equals(instanceIdFromFile)) {
instanceName = name;
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java b/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
index 925930e..a7ebfae 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/ServerContext.java
@@ -43,6 +43,7 @@ import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
import org.apache.accumulo.core.crypto.CryptoServiceFactory;
import org.apache.accumulo.core.crypto.CryptoServiceFactory.ClassloaderType;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.metadata.schema.Ample;
@@ -107,7 +108,7 @@ public class ServerContext extends ClientContext {
* Used during initialization to set the instance name and ID.
*/
public static ServerContext initialize(SiteConfiguration siteConfig, String instanceName,
- String instanceID) {
+ InstanceId instanceID) {
return new ServerContext(new ServerInfo(siteConfig, instanceName, instanceID));
}
@@ -121,7 +122,7 @@ public class ServerContext extends ClientContext {
}
@Override
- public String getInstanceID() {
+ public InstanceId getInstanceID() {
return info.getInstanceID();
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/ServerDirs.java b/server/base/src/main/java/org/apache/accumulo/server/ServerDirs.java
index 57a5671..c67e198 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/ServerDirs.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/ServerDirs.java
@@ -33,6 +33,7 @@ import java.util.stream.Collectors;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.util.Pair;
import org.apache.accumulo.core.volume.Volume;
import org.apache.accumulo.core.volume.VolumeConfiguration;
@@ -76,14 +77,14 @@ public class ServerDirs {
// all base dirs must have same instance id and data version, any dirs that have neither should
// be ignored
String firstDir = null;
- String firstIid = null;
+ InstanceId firstIid = null;
Integer firstVersion = null;
// preserve order from configuration (to match user expectations a bit when volumes get sent to
// user-implemented VolumeChoosers)
LinkedHashSet<String> baseDirsList = new LinkedHashSet<>();
for (String baseDir : configuredBaseDirs) {
Path path = new Path(baseDir, Constants.INSTANCE_ID_DIR);
- String currentIid;
+ InstanceId currentIid;
int currentVersion;
try {
currentIid = VolumeManager.getInstanceIDFromHdfs(path, hadoopConf);
diff --git a/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java b/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java
index 2de8477..3006550 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/ServerInfo.java
@@ -22,7 +22,6 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.IOException;
import java.util.Properties;
-import java.util.UUID;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
@@ -33,6 +32,7 @@ import org.apache.accumulo.core.clientImpl.InstanceOperationsImpl;
import org.apache.accumulo.core.conf.ClientProperty;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.singletons.SingletonManager;
import org.apache.accumulo.core.singletons.SingletonManager.Mode;
import org.apache.accumulo.fate.zookeeper.ZooCache;
@@ -47,7 +47,7 @@ public class ServerInfo implements ClientInfo {
private final SiteConfiguration siteConfig;
private final Configuration hadoopConf;
- private final String instanceID;
+ private final InstanceId instanceID;
private final String instanceName;
private final String zooKeepers;
private final int zooKeepersSessionTimeOut;
@@ -76,7 +76,7 @@ public class ServerInfo implements ClientInfo {
throw new RuntimeException("Instance name " + instanceName + " does not exist in zookeeper. "
+ "Run \"accumulo org.apache.accumulo.server.util.ListInstances\" to see a list.");
}
- instanceID = new String(iidb, UTF_8);
+ instanceID = InstanceId.of(new String(iidb, UTF_8));
if (zooCache.get(Constants.ZROOT + "/" + instanceID) == null) {
if (instanceName == null) {
throw new RuntimeException("Instance id " + instanceID + " does not exist in zookeeper");
@@ -103,11 +103,11 @@ public class ServerInfo implements ClientInfo {
zooKeepers = config.get(Property.INSTANCE_ZK_HOST);
zooKeepersSessionTimeOut = (int) config.getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT);
zooCache = new ZooCacheFactory().getZooCache(zooKeepers, zooKeepersSessionTimeOut);
- instanceName = InstanceOperationsImpl.lookupInstanceName(zooCache, UUID.fromString(instanceID));
+ instanceName = InstanceOperationsImpl.lookupInstanceName(zooCache, instanceID);
credentials = SystemCredentials.get(instanceID, siteConfig);
}
- ServerInfo(SiteConfiguration config, String instanceName, String instanceID) {
+ ServerInfo(SiteConfiguration config, String instanceName, InstanceId instanceID) {
SingletonManager.setMode(Mode.SERVER);
siteConfig = config;
hadoopConf = new Configuration();
@@ -133,7 +133,7 @@ public class ServerInfo implements ClientInfo {
return volumeManager;
}
- public String getInstanceID() {
+ public InstanceId getInstanceID() {
return instanceID;
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java b/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
index ad5a584..55861c2 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/client/ClientServiceHandler.java
@@ -113,7 +113,7 @@ public class ClientServiceHandler implements ClientService.Iface {
@Override
public String getInstanceId() {
- return context.getInstanceID();
+ return context.getInstanceID().canonical();
}
@Override
diff --git a/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java b/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
index 9fde55c..ef01718 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/conf/ServerConfigurationFactory.java
@@ -27,6 +27,7 @@ import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.ConfigCheckUtil;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
@@ -37,13 +38,14 @@ import org.apache.accumulo.server.ServerContext;
*/
public class ServerConfigurationFactory extends ServerConfiguration {
- private static final Map<String,Map<TableId,TableConfiguration>> tableConfigs = new HashMap<>(1);
- private static final Map<String,Map<NamespaceId,NamespaceConfiguration>> namespaceConfigs =
+ private static final Map<InstanceId,Map<TableId,TableConfiguration>> tableConfigs =
new HashMap<>(1);
- private static final Map<String,Map<TableId,NamespaceConfiguration>> tableParentConfigs =
+ private static final Map<InstanceId,Map<NamespaceId,NamespaceConfiguration>> namespaceConfigs =
+ new HashMap<>(1);
+ private static final Map<InstanceId,Map<TableId,NamespaceConfiguration>> tableParentConfigs =
new HashMap<>(1);
- private static void addInstanceToCaches(String iid) {
+ private static void addInstanceToCaches(InstanceId iid) {
synchronized (tableConfigs) {
tableConfigs.computeIfAbsent(iid, k -> new HashMap<>());
}
@@ -69,7 +71,7 @@ public class ServerConfigurationFactory extends ServerConfiguration {
private final ServerContext context;
private final SiteConfiguration siteConfig;
- private final String instanceID;
+ private final InstanceId instanceID;
private ZooCacheFactory zcf = new ZooCacheFactory();
public ServerConfigurationFactory(ServerContext context, SiteConfiguration siteConfig) {
diff --git a/server/base/src/main/java/org/apache/accumulo/server/conf/ZooCachePropertyAccessor.java b/server/base/src/main/java/org/apache/accumulo/server/conf/ZooCachePropertyAccessor.java
index 33a118f..9e6799b 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/conf/ZooCachePropertyAccessor.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/conf/ZooCachePropertyAccessor.java
@@ -26,6 +26,7 @@ import java.util.function.Predicate;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,10 +38,10 @@ public class ZooCachePropertyAccessor {
private static final Logger log = LoggerFactory.getLogger(ZooCachePropertyAccessor.class);
static class PropCacheKey {
- final String instanceId;
+ final InstanceId instanceId;
final String scope;
- PropCacheKey(String iid, String s) {
+ PropCacheKey(InstanceId iid, String s) {
instanceId = iid;
scope = s;
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfigurationFactory.java b/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfigurationFactory.java
index 0bf4b06..e3c5e40 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfigurationFactory.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/conf/ZooConfigurationFactory.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
import org.apache.accumulo.server.ServerContext;
@@ -32,7 +33,7 @@ import org.apache.zookeeper.Watcher;
* A factory for {@link ZooConfiguration} objects.
*/
class ZooConfigurationFactory {
- private static final Map<String,ZooConfiguration> instances = new HashMap<>();
+ private static final Map<InstanceId,ZooConfiguration> instances = new HashMap<>();
/**
* Gets a configuration object for the given instance with the given parent. Repeated calls will
diff --git a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManager.java b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManager.java
index 7fb212b..fccc281 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManager.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManager.java
@@ -26,6 +26,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.volume.Volume;
import org.apache.accumulo.core.volume.VolumeConfiguration;
import org.apache.hadoop.conf.Configuration;
@@ -201,7 +202,7 @@ public interface VolumeManager extends AutoCloseable {
Logger log = LoggerFactory.getLogger(VolumeManager.class);
- static String getInstanceIDFromHdfs(Path instanceDirectory, Configuration hadoopConf) {
+ static InstanceId getInstanceIDFromHdfs(Path instanceDirectory, Configuration hadoopConf) {
try {
FileSystem fs =
VolumeConfiguration.fileSystemForPath(instanceDirectory.toString(), hadoopConf);
@@ -221,7 +222,7 @@ public interface VolumeManager extends AutoCloseable {
throw new RuntimeException(
"Accumulo found multiple possible instance ids in " + instanceDirectory);
} else {
- return files[0].getPath().getName();
+ return InstanceId.of(files[0].getPath().getName());
}
} catch (IOException e) {
log.error("Problem reading instance id out of hdfs at " + instanceDirectory, e);
diff --git a/server/base/src/main/java/org/apache/accumulo/server/init/FileSystemInitializer.java b/server/base/src/main/java/org/apache/accumulo/server/init/FileSystemInitializer.java
index 4827f64..5ebc189 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/init/FileSystemInitializer.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/init/FileSystemInitializer.java
@@ -28,7 +28,6 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
-import java.util.UUID;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.admin.TimeType;
@@ -36,6 +35,7 @@ import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.SiteConfiguration;
import org.apache.accumulo.core.crypto.CryptoServiceFactory;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.data.Value;
@@ -71,7 +71,7 @@ class FileSystemInitializer {
private final ZooReaderWriter zoo;
private final String zkRoot;
- FileSystemInitializer(InitialConfiguration initConfig, ZooReaderWriter zoo, UUID uuid) {
+ FileSystemInitializer(InitialConfiguration initConfig, ZooReaderWriter zoo, InstanceId uuid) {
this.initConfig = initConfig;
this.zoo = zoo;
this.zkRoot = Constants.ZROOT + "/" + uuid;
diff --git a/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java b/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
index 42b0f83..c1df596 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/init/Initialize.java
@@ -38,6 +38,7 @@ import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.file.FileOperations;
import org.apache.accumulo.core.metadata.RootTable;
@@ -158,9 +159,9 @@ public class Initialize implements KeywordExecutable {
return false;
}
- UUID uuid = UUID.randomUUID();
+ InstanceId iid = InstanceId.of(UUID.randomUUID());
try (ServerContext context =
- ServerContext.initialize(initConfig.getSiteConf(), instanceName, uuid.toString())) {
+ ServerContext.initialize(initConfig.getSiteConf(), instanceName, iid)) {
var chooserEnv = new VolumeChooserEnvironmentImpl(Scope.INIT, RootTable.ID, null, context);
String rootTabletDirName = RootTable.ROOT_TABLET_DIR_NAME;
String ext = FileOperations.getNewFileExtension(DefaultConfiguration.getInstance());
@@ -170,12 +171,12 @@ public class Initialize implements KeywordExecutable {
.toString();
ZooKeeperInitializer zki = new ZooKeeperInitializer();
- zki.initialize(zoo, opts.clearInstanceName, uuid.toString(), instanceNamePath,
- rootTabletDirName, rootTabletFileUri);
- if (!createDirs(fs, uuid, initConfig.getVolumeUris())) {
+ zki.initialize(zoo, opts.clearInstanceName, iid, instanceNamePath, rootTabletDirName,
+ rootTabletFileUri);
+ if (!createDirs(fs, iid, initConfig.getVolumeUris())) {
throw new IOException("Problem creating directories on " + fs.getVolumes());
}
- var fileSystemInitializer = new FileSystemInitializer(initConfig, zoo, uuid);
+ var fileSystemInitializer = new FileSystemInitializer(initConfig, zoo, iid);
var rootVol = fs.choose(chooserEnv, initConfig.getVolumeUris());
var rootPath =
new Path(rootVol + SEPARATOR + TABLE_DIR + SEPARATOR + RootTable.ID + rootTabletDirName);
@@ -249,7 +250,7 @@ public class Initialize implements KeywordExecutable {
}
}
- private static boolean createDirs(VolumeManager fs, UUID uuid, Set<String> baseDirs) {
+ private static boolean createDirs(VolumeManager fs, InstanceId iid, Set<String> baseDirs) {
try {
for (String baseDir : baseDirs) {
fs.mkdirs(
@@ -257,7 +258,7 @@ public class Initialize implements KeywordExecutable {
new FsPermission("700"));
Path iidLocation = new Path(baseDir, Constants.INSTANCE_ID_DIR);
fs.mkdirs(iidLocation);
- fs.createNewFile(new Path(iidLocation, uuid.toString()));
+ fs.createNewFile(new Path(iidLocation, iid.canonical()));
log.info("Created directory {}", baseDir);
}
return true;
@@ -417,7 +418,7 @@ public class Initialize implements KeywordExecutable {
Path iidPath = new Path(aBasePath, Constants.INSTANCE_ID_DIR);
Path versionPath = new Path(aBasePath, Constants.VERSION_DIR);
- UUID uuid = UUID.fromString(VolumeManager.getInstanceIDFromHdfs(iidPath, hadoopConf));
+ InstanceId iid = VolumeManager.getInstanceIDFromHdfs(iidPath, hadoopConf);
for (Pair<Path,Path> replacementVolume : serverDirs.getVolumeReplacements()) {
if (aBasePath.equals(replacementVolume.getFirst())) {
log.error(
@@ -439,7 +440,7 @@ public class Initialize implements KeywordExecutable {
log.error("Problem getting accumulo data version", e);
return false;
}
- return createDirs(fs, uuid, uinitializedDirs);
+ return createDirs(fs, iid, uinitializedDirs);
}
private static class Opts extends Help {
diff --git a/server/base/src/main/java/org/apache/accumulo/server/init/ZooKeeperInitializer.java b/server/base/src/main/java/org/apache/accumulo/server/init/ZooKeeperInitializer.java
index 515302d..822f4c4 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/init/ZooKeeperInitializer.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/init/ZooKeeperInitializer.java
@@ -23,6 +23,7 @@ import static org.apache.accumulo.server.init.Initialize.REPL_TABLE_ID;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.clientImpl.Namespace;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.manager.state.tables.TableState;
import org.apache.accumulo.core.manager.thrift.ManagerGoalState;
import org.apache.accumulo.core.metadata.MetadataTable;
@@ -38,7 +39,7 @@ import org.apache.zookeeper.ZooDefs;
class ZooKeeperInitializer {
- void initialize(ZooReaderWriter zoo, boolean clearInstanceName, String uuid,
+ void initialize(ZooReaderWriter zoo, boolean clearInstanceName, InstanceId iid,
String instanceNamePath, String rootTabletDirName, String rootTabletFileUri)
throws KeeperException, InterruptedException {
// setup basic data in zookeeper
@@ -51,29 +52,30 @@ class ZooKeeperInitializer {
if (clearInstanceName) {
zoo.recursiveDelete(instanceNamePath, ZooUtil.NodeMissingPolicy.SKIP);
}
- zoo.putPersistentData(instanceNamePath, uuid.getBytes(UTF_8), ZooUtil.NodeExistsPolicy.FAIL);
+ zoo.putPersistentData(instanceNamePath, iid.canonical().getBytes(UTF_8),
+ ZooUtil.NodeExistsPolicy.FAIL);
final byte[] EMPTY_BYTE_ARRAY = new byte[0];
final byte[] ZERO_CHAR_ARRAY = {'0'};
// setup the instance
- String zkInstanceRoot = Constants.ZROOT + "/" + uuid;
+ String zkInstanceRoot = Constants.ZROOT + "/" + iid;
zoo.putPersistentData(zkInstanceRoot, EMPTY_BYTE_ARRAY, ZooUtil.NodeExistsPolicy.FAIL);
zoo.putPersistentData(zkInstanceRoot + Constants.ZTABLES, Constants.ZTABLES_INITIAL_ID,
ZooUtil.NodeExistsPolicy.FAIL);
zoo.putPersistentData(zkInstanceRoot + Constants.ZNAMESPACES, new byte[0],
ZooUtil.NodeExistsPolicy.FAIL);
- TableManager.prepareNewNamespaceState(zoo, uuid, Namespace.DEFAULT.id(),
+ TableManager.prepareNewNamespaceState(zoo, iid, Namespace.DEFAULT.id(),
Namespace.DEFAULT.name(), ZooUtil.NodeExistsPolicy.FAIL);
- TableManager.prepareNewNamespaceState(zoo, uuid, Namespace.ACCUMULO.id(),
+ TableManager.prepareNewNamespaceState(zoo, iid, Namespace.ACCUMULO.id(),
Namespace.ACCUMULO.name(), ZooUtil.NodeExistsPolicy.FAIL);
- TableManager.prepareNewTableState(zoo, uuid, RootTable.ID, Namespace.ACCUMULO.id(),
+ TableManager.prepareNewTableState(zoo, iid, RootTable.ID, Namespace.ACCUMULO.id(),
RootTable.NAME, TableState.ONLINE, ZooUtil.NodeExistsPolicy.FAIL);
- TableManager.prepareNewTableState(zoo, uuid, MetadataTable.ID, Namespace.ACCUMULO.id(),
+ TableManager.prepareNewTableState(zoo, iid, MetadataTable.ID, Namespace.ACCUMULO.id(),
MetadataTable.NAME, TableState.ONLINE, ZooUtil.NodeExistsPolicy.FAIL);
@SuppressWarnings("deprecation")
String replicationTableName = org.apache.accumulo.core.replication.ReplicationTable.NAME;
- TableManager.prepareNewTableState(zoo, uuid, REPL_TABLE_ID, Namespace.ACCUMULO.id(),
+ TableManager.prepareNewTableState(zoo, iid, REPL_TABLE_ID, Namespace.ACCUMULO.id(),
replicationTableName, TableState.OFFLINE, ZooUtil.NodeExistsPolicy.FAIL);
zoo.putPersistentData(zkInstanceRoot + Constants.ZTSERVERS, EMPTY_BYTE_ARRAY,
ZooUtil.NodeExistsPolicy.FAIL);
diff --git a/server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java b/server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
index b7e8b43..343ab22 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java
@@ -163,7 +163,7 @@ public class SecurityOperation {
}
protected void authenticate(TCredentials credentials) throws ThriftSecurityException {
- if (!credentials.getInstanceId().equals(context.getInstanceID()))
+ if (!credentials.getInstanceId().equals(context.getInstanceID().canonical()))
throw new ThriftSecurityException(credentials.getPrincipal(),
SecurityErrorCode.INVALID_INSTANCEID);
diff --git a/server/base/src/main/java/org/apache/accumulo/server/security/SystemCredentials.java b/server/base/src/main/java/org/apache/accumulo/server/security/SystemCredentials.java
index 4d25e9e..b746ca0 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/security/SystemCredentials.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/security/SystemCredentials.java
@@ -30,6 +30,7 @@ import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.clientImpl.Credentials;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.securityImpl.thrift.TCredentials;
import org.apache.commons.codec.digest.Crypt;
import org.apache.hadoop.io.Writable;
@@ -45,12 +46,12 @@ public final class SystemCredentials extends Credentials {
private final TCredentials AS_THRIFT;
- public SystemCredentials(String instanceID, String principal, AuthenticationToken token) {
+ public SystemCredentials(InstanceId instanceID, String principal, AuthenticationToken token) {
super(principal, token);
AS_THRIFT = super.toThrift(instanceID);
}
- public static SystemCredentials get(String instanceID, SiteConfiguration siteConfig) {
+ public static SystemCredentials get(InstanceId instanceID, SiteConfiguration siteConfig) {
String principal = SYSTEM_PRINCIPAL;
if (siteConfig.getBoolean(Property.INSTANCE_RPC_SASL_ENABLED)) {
// Use the server's kerberos principal as the Accumulo principal. We could also unwrap the
@@ -67,8 +68,8 @@ public final class SystemCredentials extends Credentials {
}
@Override
- public TCredentials toThrift(String instanceID) {
- if (!AS_THRIFT.getInstanceId().equals(instanceID))
+ public TCredentials toThrift(InstanceId instanceID) {
+ if (!AS_THRIFT.getInstanceId().equals(instanceID.canonical()))
throw new IllegalArgumentException("Unexpected instance used for "
+ SystemCredentials.class.getSimpleName() + ": " + instanceID);
return AS_THRIFT;
@@ -105,7 +106,7 @@ public final class SystemCredentials extends Credentials {
super(systemPassword);
}
- private static String hashInstanceConfigs(String instanceID, SiteConfiguration siteConfig) {
+ private static String hashInstanceConfigs(InstanceId instanceID, SiteConfiguration siteConfig) {
String wireVersion = Integer.toString(INTERNAL_WIRE_VERSION);
// seed the config with the version and instance id, so at least it's not empty
var sb = new StringBuilder(wireVersion).append("\t").append(instanceID).append("\t");
@@ -120,8 +121,8 @@ public final class SystemCredentials extends Credentials {
return Crypt.crypt(sb.toString(), SALT_PREFIX + wireVersion + SALT_SUFFIX);
}
- private static SystemToken generate(String instanceID, SiteConfiguration siteConfig) {
- byte[] instanceIdBytes = instanceID.getBytes(UTF_8);
+ private static SystemToken generate(InstanceId instanceID, SiteConfiguration siteConfig) {
+ byte[] instanceIdBytes = instanceID.canonical().getBytes(UTF_8);
byte[] configHash = hashInstanceConfigs(instanceID, siteConfig).getBytes(UTF_8);
// the actual token is a base64-encoded composition of:
diff --git a/server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManager.java b/server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManager.java
index 5abadb6..85ba23d 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManager.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManager.java
@@ -33,6 +33,7 @@ import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.admin.DelegationTokenConfig;
import org.apache.accumulo.core.clientImpl.AuthenticationTokenIdentifier;
import org.apache.accumulo.core.clientImpl.DelegationTokenImpl;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.securityImpl.thrift.TAuthenticationTokenIdentifier;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.security.token.SecretManager;
@@ -58,7 +59,7 @@ public class AuthenticationTokenSecretManager extends SecretManager<Authenticati
private static final Logger log = LoggerFactory.getLogger(AuthenticationTokenSecretManager.class);
- private final String instanceID;
+ private final InstanceId instanceID;
private final long tokenMaxLifetime;
private final ConcurrentHashMap<Integer,AuthenticationKey> allKeys = new ConcurrentHashMap<>();
private AuthenticationKey currentKey;
@@ -71,7 +72,7 @@ public class AuthenticationTokenSecretManager extends SecretManager<Authenticati
* @param tokenMaxLifetime
* Maximum age (in milliseconds) before a token expires and is no longer valid
*/
- public AuthenticationTokenSecretManager(String instanceID, long tokenMaxLifetime) {
+ public AuthenticationTokenSecretManager(InstanceId instanceID, long tokenMaxLifetime) {
requireNonNull(instanceID);
checkArgument(tokenMaxLifetime > 0, "Max lifetime must be positive");
this.instanceID = instanceID;
@@ -170,8 +171,9 @@ public class AuthenticationTokenSecretManager extends SecretManager<Authenticati
var id = new AuthenticationTokenIdentifier(new TAuthenticationTokenIdentifier(username));
final StringBuilder svcName = new StringBuilder(DelegationTokenImpl.SERVICE_NAME);
- svcName.append("-").append(id.getInstanceId());
-
+ if (id.getInstanceId() != null) {
+ svcName.append("-").append(id.getInstanceId());
+ }
// Create password will update the state on the identifier given currentKey. Need to call this
// before serializing the identifier
byte[] password;
diff --git a/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java b/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java
index efea6e9..2a3007b 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKPermHandler.java
@@ -32,6 +32,7 @@ import org.apache.accumulo.core.client.NamespaceNotFoundException;
import org.apache.accumulo.core.client.TableNotFoundException;
import org.apache.accumulo.core.clientImpl.Namespace;
import org.apache.accumulo.core.clientImpl.thrift.SecurityErrorCode;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.metadata.MetadataTable;
@@ -66,7 +67,7 @@ public class ZKPermHandler implements PermissionHandler {
public void initialize(ServerContext context) {
zooCache = new ZooCache(context.getZooReaderWriter(), null);
zoo = context.getZooReaderWriter();
- String instanceId = context.getInstanceID();
+ InstanceId instanceId = context.getInstanceID();
ZKUserPath = ZKSecurityTool.getInstancePath(instanceId) + "/users";
ZKTablePath = ZKSecurityTool.getInstancePath(instanceId) + "/tables";
ZKNamespacePath = ZKSecurityTool.getInstancePath(instanceId) + "/namespaces";
diff --git a/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java b/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java
index 312e440..f97c7b5 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/security/handler/ZKSecurityTool.java
@@ -33,6 +33,7 @@ import java.util.Set;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.AccumuloException;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.security.NamespacePermission;
import org.apache.accumulo.core.security.SystemPermission;
@@ -203,7 +204,7 @@ class ZKSecurityTool {
return toReturn;
}
- public static String getInstancePath(String instanceId) {
+ public static String getInstancePath(InstanceId instanceId) {
return Constants.ZROOT + "/" + instanceId;
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java b/server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
index 6aeabab..fe0f558 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
@@ -30,6 +30,7 @@ import java.util.Set;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.NamespaceNotFoundException;
import org.apache.accumulo.core.clientImpl.Tables;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.manager.state.tables.TableState;
@@ -59,11 +60,11 @@ public class TableManager {
private final ServerContext context;
private final String zkRoot;
- private final String instanceID;
+ private final InstanceId instanceID;
private final ZooReaderWriter zoo;
private ZooCache zooStateCache;
- public static void prepareNewNamespaceState(ZooReaderWriter zoo, String instanceId,
+ public static void prepareNewNamespaceState(ZooReaderWriter zoo, InstanceId instanceId,
NamespaceId namespaceId, String namespace, NodeExistsPolicy existsPolicy)
throws KeeperException, InterruptedException {
log.debug("Creating ZooKeeper entries for new namespace {} (ID: {})", namespace, namespaceId);
@@ -75,9 +76,9 @@ public class TableManager {
zoo.putPersistentData(zPath + Constants.ZNAMESPACE_CONF, new byte[0], existsPolicy);
}
- public static void prepareNewTableState(ZooReaderWriter zoo, String instanceId, TableId tableId,
- NamespaceId namespaceId, String tableName, TableState state, NodeExistsPolicy existsPolicy)
- throws KeeperException, InterruptedException {
+ public static void prepareNewTableState(ZooReaderWriter zoo, InstanceId instanceId,
+ TableId tableId, NamespaceId namespaceId, String tableName, TableState state,
+ NodeExistsPolicy existsPolicy) throws KeeperException, InterruptedException {
// state gets created last
log.debug("Creating ZooKeeper entries for new table {} (ID: {}) in namespace (ID: {})",
tableName, tableId, namespaceId);
diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java b/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java
index 60ca03f..1d9cf45 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/util/ChangeSecret.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.UUID;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.trace.TraceUtil;
import org.apache.accumulo.core.volume.Volume;
import org.apache.accumulo.fate.zookeeper.ZooReader;
@@ -84,7 +85,7 @@ public class ChangeSecret {
verifyAccumuloIsDown(context, opts.oldPass);
- final String newInstanceId = UUID.randomUUID().toString();
+ final InstanceId newInstanceId = InstanceId.of(UUID.randomUUID());
updateHdfs(serverDirs, fs, newInstanceId);
rewriteZooKeeperInstance(context, newInstanceId, opts.oldPass, opts.newPass);
if (opts.oldPass != null) {
@@ -135,7 +136,7 @@ public class ChangeSecret {
}
private static void rewriteZooKeeperInstance(final ServerContext context,
- final String newInstanceId, String oldPass, String newPass) throws Exception {
+ final InstanceId newInstanceId, String oldPass, String newPass) throws Exception {
final ZooReaderWriter orig = new ZooReaderWriter(context.getZooKeepers(),
context.getZooKeepersSessionTimeOut(), oldPass);
final ZooReaderWriter new_ = new ZooReaderWriter(context.getZooKeepers(),
@@ -143,7 +144,7 @@ public class ChangeSecret {
String root = context.getZooKeeperRoot();
recurse(orig, root, (zoo, path) -> {
- String newPath = path.replace(context.getInstanceID(), newInstanceId);
+ String newPath = path.replace(context.getInstanceID().canonical(), newInstanceId.canonical());
byte[] data = zoo.getData(path);
List<ACL> acls = orig.getZooKeeper().getACL(path, new Stat());
if (acls.containsAll(Ids.READ_ACL_UNSAFE)) {
@@ -166,10 +167,11 @@ public class ChangeSecret {
});
String path = "/accumulo/instances/" + context.getInstanceName();
orig.recursiveDelete(path, NodeMissingPolicy.SKIP);
- new_.putPersistentData(path, newInstanceId.getBytes(UTF_8), NodeExistsPolicy.OVERWRITE);
+ new_.putPersistentData(path, newInstanceId.canonical().getBytes(UTF_8),
+ NodeExistsPolicy.OVERWRITE);
}
- private static void updateHdfs(ServerDirs serverDirs, VolumeManager fs, String newInstanceId)
+ private static void updateHdfs(ServerDirs serverDirs, VolumeManager fs, InstanceId newInstanceId)
throws IOException {
// Need to recreate the instanceId on all of them to keep consistency
for (Volume v : fs.getVolumes()) {
@@ -182,7 +184,7 @@ public class ChangeSecret {
throw new IOException("Could not create directory " + instanceId);
}
- v.getFileSystem().create(new Path(instanceId, newInstanceId)).close();
+ v.getFileSystem().create(new Path(instanceId, newInstanceId.canonical())).close();
}
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/CleanZookeeper.java b/server/base/src/main/java/org/apache/accumulo/server/util/CleanZookeeper.java
index 66fe43d..0433bb5 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/util/CleanZookeeper.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/util/CleanZookeeper.java
@@ -66,7 +66,7 @@ public class CleanZookeeper {
for (String instanceName : zk.getChildren(root + Constants.ZINSTANCES)) {
String instanceNamePath = root + Constants.ZINSTANCES + "/" + instanceName;
byte[] id = zk.getData(instanceNamePath);
- if (id != null && !new String(id, UTF_8).equals(context.getInstanceID())) {
+ if (id != null && !new String(id, UTF_8).equals(context.getInstanceID().canonical())) {
try {
zk.recursiveDelete(instanceNamePath, NodeMissingPolicy.SKIP);
} catch (KeeperException.NoAuthException ex) {
@@ -74,7 +74,7 @@ public class CleanZookeeper {
}
}
}
- } else if (!child.equals(context.getInstanceID())) {
+ } else if (!child.equals(context.getInstanceID().canonical())) {
String path = root + "/" + child;
try {
zk.recursiveDelete(path, NodeMissingPolicy.SKIP);
diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
index c2599b8..e931d7a 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java
@@ -24,6 +24,7 @@ import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.cli.Help;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.singletons.SingletonManager;
import org.apache.accumulo.core.singletons.SingletonManager.Mode;
import org.apache.accumulo.core.volume.VolumeConfiguration;
@@ -86,7 +87,7 @@ public class ZooZap {
String volDir = VolumeConfiguration.getVolumeUris(siteConf).iterator().next();
Path instanceDir = new Path(volDir, "instance_id");
- String iid = VolumeManager.getInstanceIDFromHdfs(instanceDir, new Configuration());
+ InstanceId iid = VolumeManager.getInstanceIDFromHdfs(instanceDir, new Configuration());
ZooReaderWriter zoo = new ZooReaderWriter(siteConf);
if (opts.zapMaster) {
diff --git a/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java b/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java
index 66ef722..f798b5e 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/MockServerContext.java
@@ -26,6 +26,7 @@ import org.apache.accumulo.core.conf.ConfigurationCopy;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.crypto.CryptoServiceFactory;
+import org.apache.accumulo.core.data.InstanceId;
import org.easymock.EasyMock;
/**
@@ -44,7 +45,7 @@ public class MockServerContext {
return context;
}
- public static ServerContext getWithZK(String instanceID, String zk, int zkTimeout) {
+ public static ServerContext getWithZK(InstanceId instanceID, String zk, int zkTimeout) {
var sc = get();
expect(sc.getZooKeeperRoot()).andReturn("/accumulo/" + instanceID).anyTimes();
expect(sc.getInstanceID()).andReturn(instanceID).anyTimes();
diff --git a/server/base/src/test/java/org/apache/accumulo/server/conf/NamespaceConfigurationTest.java b/server/base/src/test/java/org/apache/accumulo/server/conf/NamespaceConfigurationTest.java
index 2b51c95..ce47f11 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/conf/NamespaceConfigurationTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/conf/NamespaceConfigurationTest.java
@@ -36,6 +36,7 @@ import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.clientImpl.Namespace;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
@@ -50,7 +51,7 @@ public class NamespaceConfigurationTest {
private static final String ZOOKEEPERS = "localhost";
private static final int ZK_SESSION_TIMEOUT = 120000;
- private String iid;
+ private InstanceId iid;
private ServerContext context;
private AccumuloConfiguration parent;
private ZooCacheFactory zcf;
@@ -59,7 +60,7 @@ public class NamespaceConfigurationTest {
@Before
public void setUp() {
- iid = UUID.randomUUID().toString();
+ iid = InstanceId.of(UUID.randomUUID());
context = MockServerContext.getWithZK(iid, ZOOKEEPERS, ZK_SESSION_TIMEOUT);
parent = createMock(AccumuloConfiguration.class);
diff --git a/server/base/src/test/java/org/apache/accumulo/server/conf/ServerConfigurationFactoryTest.java b/server/base/src/test/java/org/apache/accumulo/server/conf/ServerConfigurationFactoryTest.java
index 9fe2d97..bad4d07 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/conf/ServerConfigurationFactoryTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/conf/ServerConfigurationFactoryTest.java
@@ -33,6 +33,7 @@ import static org.junit.Assert.assertSame;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
@@ -47,7 +48,7 @@ import org.junit.Test;
public class ServerConfigurationFactoryTest {
private static final String ZK_HOST = "localhost";
private static final int ZK_TIMEOUT = 120000;
- private static final String IID = "iid";
+ private static final InstanceId IID = InstanceId.of("iid");
// use the same mock ZooCacheFactory and ZooCache for all tests
private static ZooCacheFactory zcf;
diff --git a/server/base/src/test/java/org/apache/accumulo/server/conf/TableConfigurationTest.java b/server/base/src/test/java/org/apache/accumulo/server/conf/TableConfigurationTest.java
index 6b20d87..6104417 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/conf/TableConfigurationTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/conf/TableConfigurationTest.java
@@ -33,6 +33,7 @@ import java.util.function.Predicate;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
@@ -47,7 +48,7 @@ public class TableConfigurationTest {
private static final String ZOOKEEPERS = "localhost";
private static final int ZK_SESSION_TIMEOUT = 120000;
- private String iid;
+ private InstanceId iid;
private ServerContext context;
private NamespaceConfiguration parent;
private ZooCacheFactory zcf;
@@ -56,7 +57,7 @@ public class TableConfigurationTest {
@Before
public void setUp() {
- iid = UUID.randomUUID().toString();
+ iid = InstanceId.of(UUID.randomUUID());
context = MockServerContext.getWithZK(iid, ZOOKEEPERS, ZK_SESSION_TIMEOUT);
replay(context);
diff --git a/server/base/src/test/java/org/apache/accumulo/server/conf/ZooConfigurationFactoryTest.java b/server/base/src/test/java/org/apache/accumulo/server/conf/ZooConfigurationFactoryTest.java
index 4b3cac6..db7eb9c 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/conf/ZooConfigurationFactoryTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/conf/ZooConfigurationFactoryTest.java
@@ -28,6 +28,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
import org.apache.accumulo.server.MockServerContext;
@@ -46,7 +47,7 @@ public class ZooConfigurationFactoryTest {
@Before
public void setUp() {
- context = MockServerContext.getWithZK("iid", "localhost", 120000);
+ context = MockServerContext.getWithZK(InstanceId.of("iid"), "localhost", 120000);
zcf = createMock(ZooCacheFactory.class);
zc = createMock(ZooCache.class);
zconff = new ZooConfigurationFactory();
diff --git a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/BaseHostRegexTableLoadBalancerTest.java b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/BaseHostRegexTableLoadBalancerTest.java
index 8627f1f..01ca537 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/BaseHostRegexTableLoadBalancerTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/BaseHostRegexTableLoadBalancerTest.java
@@ -42,6 +42,7 @@ import org.apache.accumulo.core.conf.ConfigurationCopy;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.dataImpl.KeyExtent;
import org.apache.accumulo.core.master.thrift.TableInfo;
@@ -162,7 +163,7 @@ public abstract class BaseHostRegexTableLoadBalancerTest extends HostRegexTableL
expect(mockContext.getZooKeepers()).andReturn("").anyTimes();
expect(mockContext.getInstanceName()).andReturn("test").anyTimes();
expect(mockContext.getZooKeepersSessionTimeOut()).andReturn(30).anyTimes();
- expect(mockContext.getInstanceID()).andReturn("1111").anyTimes();
+ expect(mockContext.getInstanceID()).andReturn(InstanceId.of("1111")).anyTimes();
expect(mockContext.getZooKeeperRoot()).andReturn(Constants.ZROOT + "/1111").anyTimes();
return mockContext;
}
diff --git a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
index c0a9011..aa80bd8 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/master/balancer/TableLoadBalancerTest.java
@@ -35,6 +35,7 @@ import java.util.UUID;
import org.apache.accumulo.core.client.admin.TableOperations;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.dataImpl.KeyExtent;
import org.apache.accumulo.core.master.thrift.TableInfo;
@@ -134,8 +135,8 @@ public class TableLoadBalancerTest {
}
private ServerContext createMockContext() {
- final String instanceId =
- UUID.nameUUIDFromBytes(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}).toString();
+ final InstanceId instanceId =
+ InstanceId.of(UUID.nameUUIDFromBytes(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}));
return MockServerContext.getWithZK(instanceId, "10.0.0.1:1234", 30_000);
}
diff --git a/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportTest.java b/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportTest.java
index 1fe239c..e7c9042 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportTest.java
@@ -34,6 +34,7 @@ import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.metadata.MetadataTable;
import org.apache.accumulo.core.util.Encoding;
@@ -58,7 +59,7 @@ public class ProblemReportTest {
@Before
public void setUp() {
- context = MockServerContext.getWithZK("instance", "", 30_000);
+ context = MockServerContext.getWithZK(InstanceId.of("instance"), "", 30_000);
zoorw = createMock(ZooReaderWriter.class);
expect(context.getZooReaderWriter()).andReturn(zoorw).anyTimes();
replay(context);
@@ -157,7 +158,7 @@ public class ProblemReportTest {
public void testRemoveFromZooKeeper() throws Exception {
r = new ProblemReport(TABLE_ID, ProblemType.FILE_READ, RESOURCE, SERVER, null);
byte[] zpathFileName = makeZPathFileName(TABLE_ID, ProblemType.FILE_READ, RESOURCE);
- String path = ZooUtil.getRoot("instance") + Constants.ZPROBLEMS + "/"
+ String path = ZooUtil.getRoot(InstanceId.of("instance")) + Constants.ZPROBLEMS + "/"
+ Encoding.encodeAsBase64FileName(new Text(zpathFileName));
zoorw.recursiveDelete(path, NodeMissingPolicy.SKIP);
replay(zoorw);
@@ -171,7 +172,7 @@ public class ProblemReportTest {
long now = System.currentTimeMillis();
r = new ProblemReport(TABLE_ID, ProblemType.FILE_READ, RESOURCE, SERVER, null, now);
byte[] zpathFileName = makeZPathFileName(TABLE_ID, ProblemType.FILE_READ, RESOURCE);
- String path = ZooUtil.getRoot("instance") + Constants.ZPROBLEMS + "/"
+ String path = ZooUtil.getRoot(InstanceId.of("instance")) + Constants.ZPROBLEMS + "/"
+ Encoding.encodeAsBase64FileName(new Text(zpathFileName));
byte[] encoded = encodeReportData(now, SERVER, null);
expect(zoorw.putPersistentData(eq(path), aryEq(encoded), eq(NodeExistsPolicy.OVERWRITE)))
@@ -189,8 +190,9 @@ public class ProblemReportTest {
long now = System.currentTimeMillis();
byte[] encoded = encodeReportData(now, SERVER, "excmsg");
- expect(zoorw.getData(ZooUtil.getRoot("instance") + Constants.ZPROBLEMS + "/" + node))
- .andReturn(encoded);
+ expect(zoorw
+ .getData(ZooUtil.getRoot(InstanceId.of("instance")) + Constants.ZPROBLEMS + "/" + node))
+ .andReturn(encoded);
replay(zoorw);
r = ProblemReport.decodeZooKeeperEntry(context, node);
diff --git a/server/base/src/test/java/org/apache/accumulo/server/rpc/SaslDigestCallbackHandlerTest.java b/server/base/src/test/java/org/apache/accumulo/server/rpc/SaslDigestCallbackHandlerTest.java
index 066b07f..ef4b70b 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/rpc/SaslDigestCallbackHandlerTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/rpc/SaslDigestCallbackHandlerTest.java
@@ -25,17 +25,16 @@ import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
-import java.util.Map.Entry;
import javax.crypto.KeyGenerator;
import javax.security.auth.callback.Callback;
import org.apache.accumulo.core.client.admin.DelegationTokenConfig;
import org.apache.accumulo.core.clientImpl.AuthenticationTokenIdentifier;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.rpc.SaslDigestCallbackHandler;
import org.apache.accumulo.server.security.delegation.AuthenticationKey;
import org.apache.accumulo.server.security.delegation.AuthenticationTokenSecretManager;
-import org.apache.hadoop.security.token.Token;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -91,11 +90,10 @@ public class SaslDigestCallbackHandlerTest {
@Test
public void testTokenSerialization() throws Exception {
- var secretManager = new AuthenticationTokenSecretManager("instanceid", 1000L);
+ var secretManager = new AuthenticationTokenSecretManager(InstanceId.of("instanceid"), 1000L);
secretManager.addKey(new AuthenticationKey(1, 0L, 100L, keyGen.generateKey()));
- Entry<Token<AuthenticationTokenIdentifier>,AuthenticationTokenIdentifier> entry =
- secretManager.generateToken("user", cfg);
+ var entry = secretManager.generateToken("user", cfg);
byte[] password = entry.getKey().getPassword();
char[] encodedPassword = handler.encodePassword(password);
@@ -106,7 +104,7 @@ public class SaslDigestCallbackHandlerTest {
@Test
public void testTokenAndIdentifierSerialization() throws Exception {
- var secretManager = new AuthenticationTokenSecretManager("instanceid", 1000L);
+ var secretManager = new AuthenticationTokenSecretManager(InstanceId.of("instanceid"), 1000L);
var key = new AuthenticationKey(1, 0L, 100_000L, keyGen.generateKey());
secretManager.addKey(key);
var entry = secretManager.generateToken("user", cfg);
diff --git a/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java b/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java
index ef22a11..0af31bf 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java
@@ -28,6 +28,7 @@ import java.util.UUID;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.clientImpl.Credentials;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.server.AccumuloDataVersion;
import org.apache.accumulo.server.security.SystemCredentials.SystemToken;
import org.apache.commons.codec.digest.Crypt;
@@ -44,8 +45,8 @@ public class SystemCredentialsTest {
public TestName test = new TestName();
private static SiteConfiguration siteConfig = SiteConfiguration.auto();
- private String instanceId =
- UUID.nameUUIDFromBytes(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}).toString();
+ private InstanceId instanceId =
+ InstanceId.of(UUID.nameUUIDFromBytes(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}));
@SuppressFBWarnings(value = "PATH_TRAVERSAL_IN", justification = "input not from a user")
@BeforeClass
diff --git a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
index 3ac4c1f..422c9d3 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
@@ -42,6 +42,7 @@ import javax.crypto.KeyGenerator;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.admin.DelegationTokenConfig;
import org.apache.accumulo.core.clientImpl.AuthenticationTokenIdentifier;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.hadoop.security.token.SecretManager.InvalidToken;
import org.apache.hadoop.security.token.Token;
import org.junit.Before;
@@ -68,12 +69,12 @@ public class AuthenticationTokenSecretManagerTest {
keyGen.init(KEY_LENGTH);
}
- private String instanceId;
+ private InstanceId instanceId;
private DelegationTokenConfig cfg;
@Before
public void setup() {
- instanceId = UUID.randomUUID().toString();
+ instanceId = InstanceId.of(UUID.randomUUID());
cfg = new DelegationTokenConfig();
}
diff --git a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyWatcherTest.java b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyWatcherTest.java
index 1050a1e..669a0ed 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyWatcherTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyWatcherTest.java
@@ -39,6 +39,7 @@ import java.util.UUID;
import javax.crypto.KeyGenerator;
import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.fate.zookeeper.ZooReader;
import org.apache.zookeeper.KeeperException.NoNodeException;
import org.apache.zookeeper.WatchedEvent;
@@ -63,7 +64,7 @@ public class ZooAuthenticationKeyWatcherTest {
}
private ZooReader zk;
- private String instanceId;
+ private InstanceId instanceId;
private String baseNode;
private long tokenLifetime = 7 * 24 * 60 * 60 * 1000; // 7days
private AuthenticationTokenSecretManager secretManager;
@@ -72,7 +73,7 @@ public class ZooAuthenticationKeyWatcherTest {
@Before
public void setupMocks() {
zk = createMock(ZooReader.class);
- instanceId = UUID.randomUUID().toString();
+ instanceId = InstanceId.of(UUID.randomUUID());
baseNode = "/accumulo/" + instanceId + Constants.ZDELEGATION_TOKEN_KEYS;
secretManager = new AuthenticationTokenSecretManager(instanceId, tokenLifetime);
keyWatcher = new ZooAuthenticationKeyWatcher(secretManager, zk, baseNode);
diff --git a/server/base/src/test/java/org/apache/accumulo/server/security/handler/ZKAuthenticatorTest.java b/server/base/src/test/java/org/apache/accumulo/server/security/handler/ZKAuthenticatorTest.java
index be96256..89909f3 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/security/handler/ZKAuthenticatorTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/security/handler/ZKAuthenticatorTest.java
@@ -34,6 +34,7 @@ import java.util.TreeSet;
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.security.tokens.PasswordToken;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.security.SystemPermission;
import org.apache.accumulo.core.security.TablePermission;
@@ -133,7 +134,7 @@ public class ZKAuthenticatorTest {
byte[] newHash = ZKSecurityTool.createPass(rawPass.clone());
// mocking zk interaction
- ServerContext context = MockServerContext.getWithZK("example", "", 30_000);
+ ServerContext context = MockServerContext.getWithZK(InstanceId.of("example"), "", 30_000);
ZooReaderWriter zr = createMock(ZooReaderWriter.class);
expect(context.getZooReaderWriter()).andReturn(zr).anyTimes();
ZooKeeper zk = createMock(ZooKeeper.class);
@@ -166,7 +167,7 @@ public class ZKAuthenticatorTest {
byte[] outdatedHash = ZKSecurityTool.createOutdatedPass(rawPass);
// mocking zk interaction
- ServerContext context = MockServerContext.getWithZK("example", "", 30_000);
+ ServerContext context = MockServerContext.getWithZK(InstanceId.of("example"), "", 30_000);
ZooReaderWriter zr = createMock(ZooReaderWriter.class);
expect(context.getZooReaderWriter()).andReturn(zr).anyTimes();
ZooKeeper zk = createMock(ZooKeeper.class);
diff --git a/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java b/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
index c75c7d2..997370f 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
@@ -39,6 +39,7 @@ import org.apache.accumulo.core.clientImpl.thrift.ClientService.Processor;
import org.apache.accumulo.core.conf.ConfigurationCopy;
import org.apache.accumulo.core.conf.DefaultConfiguration;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.trace.TraceUtil;
import org.apache.accumulo.server.ServerContext;
import org.apache.accumulo.server.client.ClientServiceHandler;
@@ -66,7 +67,7 @@ public class TServerUtilsTest {
expect(context.getZooKeepers()).andReturn("").anyTimes();
expect(context.getInstanceName()).andReturn("instance").anyTimes();
expect(context.getZooKeepersSessionTimeOut()).andReturn(1).anyTimes();
- expect(context.getInstanceID()).andReturn("11111").anyTimes();
+ expect(context.getInstanceID()).andReturn(InstanceId.of("11111")).anyTimes();
expect(context.getConfiguration()).andReturn(conf).anyTimes();
expect(context.getThriftServerType()).andReturn(ThriftServerType.THREADPOOL).anyTimes();
expect(context.getServerSslParams()).andReturn(null).anyTimes();
diff --git a/server/gc/src/test/java/org/apache/accumulo/gc/SimpleGarbageCollectorTest.java b/server/gc/src/test/java/org/apache/accumulo/gc/SimpleGarbageCollectorTest.java
index 2d571e5..dd5b59c 100644
--- a/server/gc/src/test/java/org/apache/accumulo/gc/SimpleGarbageCollectorTest.java
+++ b/server/gc/src/test/java/org/apache/accumulo/gc/SimpleGarbageCollectorTest.java
@@ -43,6 +43,7 @@ import org.apache.accumulo.core.clientImpl.Credentials;
import org.apache.accumulo.core.conf.ConfigurationCopy;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.volume.Volume;
import org.apache.accumulo.server.ServerContext;
@@ -65,7 +66,7 @@ public class SimpleGarbageCollectorTest {
public void setUp() {
volMgr = createMock(VolumeManager.class);
context = createMock(ServerContext.class);
- expect(context.getInstanceID()).andReturn("mock").anyTimes();
+ expect(context.getInstanceID()).andReturn(InstanceId.of("mock")).anyTimes();
expect(context.getZooKeepers()).andReturn("localhost").anyTimes();
expect(context.getZooKeepersSessionTimeOut()).andReturn(30000).anyTimes();
@@ -73,7 +74,7 @@ public class SimpleGarbageCollectorTest {
expect(context.getConfiguration()).andReturn(systemConfig).anyTimes();
expect(context.getVolumeManager()).andReturn(volMgr).anyTimes();
- credentials = SystemCredentials.get("mock", siteConfig);
+ credentials = SystemCredentials.get(InstanceId.of("mock"), siteConfig);
expect(context.getPrincipal()).andReturn(credentials.getPrincipal()).anyTimes();
expect(context.getAuthenticationToken()).andReturn(credentials.getToken()).anyTimes();
expect(context.getCredentials()).andReturn(credentials).anyTimes();
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
index c0b8894..3114277 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
@@ -57,6 +57,7 @@ import org.apache.accumulo.core.clientImpl.thrift.TableOperationExceptionType;
import org.apache.accumulo.core.clientImpl.thrift.ThriftTableOperationException;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.data.Value;
@@ -409,7 +410,7 @@ public class Manager extends AbstractServer
}
}
- public String getInstanceID() {
+ public InstanceId getInstanceID() {
return getContext().getInstanceID();
}
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/replication/DistributedWorkQueueWorkAssigner.java b/server/manager/src/main/java/org/apache/accumulo/manager/replication/DistributedWorkQueueWorkAssigner.java
index 0dfccbb..4bad480 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/replication/DistributedWorkQueueWorkAssigner.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/replication/DistributedWorkQueueWorkAssigner.java
@@ -91,7 +91,7 @@ public abstract class DistributedWorkQueueWorkAssigner implements WorkAssigner {
*/
protected void initializeWorkQueue(AccumuloConfiguration conf) {
workQueue =
- new DistributedWorkQueue(ZooUtil.getRoot(client.instanceOperations().getInstanceID())
+ new DistributedWorkQueue(ZooUtil.getRoot(client.instanceOperations().getInstanceId())
+ ReplicationConstants.ZOO_WORK_QUEUE, conf, this.workQueue.getContext());
}
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/replication/SequentialWorkAssigner.java b/server/manager/src/main/java/org/apache/accumulo/manager/replication/SequentialWorkAssigner.java
index 34f42b1..fd3cd6d 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/replication/SequentialWorkAssigner.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/replication/SequentialWorkAssigner.java
@@ -28,6 +28,7 @@ import java.util.Set;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.replication.ReplicationConstants;
import org.apache.accumulo.core.replication.ReplicationTarget;
@@ -116,7 +117,7 @@ public class SequentialWorkAssigner extends DistributedWorkQueueWorkAssigner {
protected void cleanupFinishedWork() {
final Iterator<Entry<String,Map<TableId,String>>> queuedWork =
queuedWorkByPeerName.entrySet().iterator();
- final String instanceId = client.instanceOperations().getInstanceID();
+ final InstanceId instanceId = client.instanceOperations().getInstanceId();
int elementsRemoved = 0;
// Check the status of all the work we've queued up
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/replication/UnorderedWorkAssigner.java b/server/manager/src/main/java/org/apache/accumulo/manager/replication/UnorderedWorkAssigner.java
index 5baa0d2..7b89c08 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/replication/UnorderedWorkAssigner.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/replication/UnorderedWorkAssigner.java
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.replication.ReplicationConstants;
import org.apache.accumulo.core.replication.ReplicationTarget;
import org.apache.accumulo.fate.zookeeper.ZooUtil;
@@ -140,7 +141,7 @@ public class UnorderedWorkAssigner extends DistributedWorkQueueWorkAssigner {
@Override
protected void cleanupFinishedWork() {
final Iterator<String> work = queuedWork.iterator();
- final String instanceId = client.instanceOperations().getInstanceID();
+ final InstanceId instanceId = client.instanceOperations().getInstanceId();
while (work.hasNext()) {
String filename = work.next();
// Null equates to the work was finished
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/state/MergeStats.java b/server/manager/src/main/java/org/apache/accumulo/manager/state/MergeStats.java
index 12ecbb3..c60be41 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/state/MergeStats.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/state/MergeStats.java
@@ -272,7 +272,7 @@ public class MergeStats {
ZooReaderWriter zooReaderWriter = opts.getServerContext().getZooReaderWriter();
for (Entry<String,String> entry : tableIdMap.entrySet()) {
final String table = entry.getKey(), tableId = entry.getValue();
- String path = ZooUtil.getRoot(client.instanceOperations().getInstanceID())
+ String path = ZooUtil.getRoot(client.instanceOperations().getInstanceId())
+ Constants.ZTABLES + "/" + tableId + "/merge";
MergeInfo info = new MergeInfo();
if (zooReaderWriter.exists(path)) {
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriver.java b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriver.java
index b80494b..5c97ce6 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriver.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriver.java
@@ -28,6 +28,7 @@ import org.apache.accumulo.core.clientImpl.TableOperationsImpl;
import org.apache.accumulo.core.clientImpl.Tables;
import org.apache.accumulo.core.clientImpl.thrift.TableOperation;
import org.apache.accumulo.core.clientImpl.thrift.TableOperationExceptionType;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.manager.state.tables.TableState;
@@ -48,7 +49,7 @@ import org.slf4j.LoggerFactory;
class CompactionDriver extends ManagerRepo {
- public static String createCompactionCancellationPath(String instanceId, TableId tableId) {
+ public static String createCompactionCancellationPath(InstanceId instanceId, TableId tableId) {
return Constants.ZROOT + "/" + instanceId + Constants.ZTABLES + "/" + tableId.canonical()
+ Constants.ZTABLE_COMPACT_CANCEL_ID;
}
diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/delete/PreDeleteTable.java b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/delete/PreDeleteTable.java
index ac39708..98e3cac 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/delete/PreDeleteTable.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/tableOps/delete/PreDeleteTable.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.manager.tableOps.delete;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.clientImpl.thrift.TableOperation;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.fate.Repo;
@@ -33,7 +34,7 @@ import org.apache.zookeeper.KeeperException;
public class PreDeleteTable extends ManagerRepo {
- public static String createDeleteMarkerPath(String instanceId, TableId tableId) {
+ public static String createDeleteMarkerPath(InstanceId instanceId, TableId tableId) {
return Constants.ZROOT + "/" + instanceId + Constants.ZTABLES + "/" + tableId.canonical()
+ Constants.ZTABLE_DELETE_MARKER;
}
diff --git a/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java b/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
index ae55b17..5c5531f 100644
--- a/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
+++ b/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
@@ -26,6 +26,7 @@ import java.util.TreeSet;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.DefaultConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.metadata.TServerInstance;
import org.apache.accumulo.core.util.HostAndPort;
import org.apache.accumulo.fate.zookeeper.ZooReader;
@@ -45,10 +46,10 @@ public class ManagerReplicationCoordinatorTest {
ZooReader reader = EasyMock.createMock(ZooReader.class);
ServerContext context = EasyMock.createMock(ServerContext.class);
EasyMock.expect(context.getConfiguration()).andReturn(config).anyTimes();
- EasyMock.expect(context.getInstanceID()).andReturn("1234").anyTimes();
+ EasyMock.expect(context.getInstanceID()).andReturn(InstanceId.of("1234")).anyTimes();
EasyMock.expect(context.getZooReaderWriter()).andReturn(null).anyTimes();
EasyMock.expect(manager.getContext()).andReturn(context);
- EasyMock.expect(manager.getInstanceID()).andReturn("1234");
+ EasyMock.expect(manager.getInstanceID()).andReturn(InstanceId.of("1234"));
EasyMock.replay(manager, context, reader);
ManagerReplicationCoordinator coordinator = new ManagerReplicationCoordinator(manager, reader);
@@ -62,11 +63,11 @@ public class ManagerReplicationCoordinatorTest {
Manager manager = EasyMock.createMock(Manager.class);
ServerContext context = EasyMock.createMock(ServerContext.class);
EasyMock.expect(context.getConfiguration()).andReturn(config).anyTimes();
- EasyMock.expect(context.getInstanceID()).andReturn("1234").anyTimes();
+ EasyMock.expect(context.getInstanceID()).andReturn(InstanceId.of("1234")).anyTimes();
EasyMock.expect(context.getZooReaderWriter()).andReturn(null).anyTimes();
ZooReader reader = EasyMock.createMock(ZooReader.class);
EasyMock.expect(manager.getContext()).andReturn(context);
- EasyMock.expect(manager.getInstanceID()).andReturn("1234");
+ EasyMock.expect(manager.getInstanceID()).andReturn(InstanceId.of("1234"));
EasyMock.replay(manager, context, reader);
ManagerReplicationCoordinator coordinator = new ManagerReplicationCoordinator(manager, reader);
TServerInstance inst1 = new TServerInstance(HostAndPort.fromParts("host1", 1234), "session");
@@ -80,9 +81,9 @@ public class ManagerReplicationCoordinatorTest {
ZooReader reader = EasyMock.createMock(ZooReader.class);
ServerContext context = EasyMock.createMock(ServerContext.class);
EasyMock.expect(context.getConfiguration()).andReturn(config).anyTimes();
- EasyMock.expect(context.getInstanceID()).andReturn("1234").anyTimes();
+ EasyMock.expect(context.getInstanceID()).andReturn(InstanceId.of("1234")).anyTimes();
EasyMock.expect(context.getZooReaderWriter()).andReturn(null).anyTimes();
- EasyMock.expect(manager.getInstanceID()).andReturn("1234").anyTimes();
+ EasyMock.expect(manager.getInstanceID()).andReturn(InstanceId.of("1234")).anyTimes();
EasyMock.expect(manager.getContext()).andReturn(context).anyTimes();
EasyMock.replay(manager, context, reader);
diff --git a/server/manager/src/test/java/org/apache/accumulo/manager/replication/SequentialWorkAssignerTest.java b/server/manager/src/test/java/org/apache/accumulo/manager/replication/SequentialWorkAssignerTest.java
index ffdad91..3d0b48a 100644
--- a/server/manager/src/test/java/org/apache/accumulo/manager/replication/SequentialWorkAssignerTest.java
+++ b/server/manager/src/test/java/org/apache/accumulo/manager/replication/SequentialWorkAssignerTest.java
@@ -30,6 +30,7 @@ import java.util.TreeMap;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.admin.InstanceOperations;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.replication.ReplicationConstants;
import org.apache.accumulo.core.replication.ReplicationTarget;
@@ -76,17 +77,18 @@ public class SequentialWorkAssignerTest {
assigner.setQueuedWork(queuedWork);
InstanceOperations opts = createMock(InstanceOperations.class);
- expect(opts.getInstanceID()).andReturn("instance");
+ var iid = InstanceId.of("instance");
+ expect(opts.getInstanceId()).andReturn(iid);
expect(client.instanceOperations()).andReturn(opts);
// file1 replicated
- expect(zooCache.get(ZooUtil.getRoot("instance") + ReplicationConstants.ZOO_WORK_QUEUE + "/"
+ expect(zooCache.get(ZooUtil.getRoot(iid) + ReplicationConstants.ZOO_WORK_QUEUE + "/"
+ DistributedWorkQueueWorkAssignerHelper.getQueueKey("file1",
new ReplicationTarget("cluster1", "1", TableId.of("1"))))).andReturn(null);
// file2 still needs to replicate
expect(
zooCache
- .get(ZooUtil.getRoot("instance") + ReplicationConstants.ZOO_WORK_QUEUE + "/"
+ .get(ZooUtil.getRoot(iid) + ReplicationConstants.ZOO_WORK_QUEUE + "/"
+ DistributedWorkQueueWorkAssignerHelper.getQueueKey("file2",
new ReplicationTarget("cluster1", "2", TableId.of("2")))))
.andReturn(new byte[0]);
diff --git a/server/manager/src/test/java/org/apache/accumulo/manager/replication/UnorderedWorkAssignerTest.java b/server/manager/src/test/java/org/apache/accumulo/manager/replication/UnorderedWorkAssignerTest.java
index 63b7a77..4feafcf 100644
--- a/server/manager/src/test/java/org/apache/accumulo/manager/replication/UnorderedWorkAssignerTest.java
+++ b/server/manager/src/test/java/org/apache/accumulo/manager/replication/UnorderedWorkAssignerTest.java
@@ -45,9 +45,11 @@ import org.apache.accumulo.server.replication.DistributedWorkQueueWorkAssignerHe
import org.apache.accumulo.server.zookeeper.DistributedWorkQueue;
import org.apache.hadoop.fs.Path;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
@Deprecated
+@Ignore("Replication Tests are not stable and not currently maintained")
public class UnorderedWorkAssignerTest {
private AccumuloClient client;
diff --git a/server/manager/src/test/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriverTest.java b/server/manager/src/test/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriverTest.java
index a4280ef..5ebddbd 100644
--- a/server/manager/src/test/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriverTest.java
+++ b/server/manager/src/test/java/org/apache/accumulo/manager/tableOps/compact/CompactionDriverTest.java
@@ -26,6 +26,7 @@ import org.apache.accumulo.core.clientImpl.AcceptableThriftTableOperationExcepti
import org.apache.accumulo.core.clientImpl.TableOperationsImpl;
import org.apache.accumulo.core.clientImpl.thrift.TableOperation;
import org.apache.accumulo.core.clientImpl.thrift.TableOperationExceptionType;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.NamespaceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.fate.zookeeper.ZooReaderWriter;
@@ -40,7 +41,7 @@ public class CompactionDriverTest {
@Test
public void testCancelId() throws Exception {
- final String instance = UUID.randomUUID().toString();
+ final InstanceId instance = InstanceId.of(UUID.randomUUID());
final long compactId = 123;
final long cancelId = 124;
final NamespaceId namespaceId = NamespaceId.of("13");
@@ -81,7 +82,7 @@ public class CompactionDriverTest {
@Test
public void testTableBeingDeleted() throws Exception {
- final String instance = UUID.randomUUID().toString();
+ final InstanceId instance = InstanceId.of(UUID.randomUUID());
final long compactId = 123;
final long cancelId = 122;
final NamespaceId namespaceId = NamespaceId.of("14");
diff --git a/server/monitor/src/test/java/org/apache/accumulo/monitor/it/WebViewsIT.java b/server/monitor/src/test/java/org/apache/accumulo/monitor/it/WebViewsIT.java
index 27a6c76..e17fc11 100644
--- a/server/monitor/src/test/java/org/apache/accumulo/monitor/it/WebViewsIT.java
+++ b/server/monitor/src/test/java/org/apache/accumulo/monitor/it/WebViewsIT.java
@@ -39,6 +39,7 @@ import jakarta.ws.rs.ext.MessageBodyWriter;
import org.apache.accumulo.core.clientImpl.Tables;
import org.apache.accumulo.core.conf.DefaultConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.monitor.Monitor;
import org.apache.accumulo.monitor.Monitor.MonitorFactory;
@@ -91,7 +92,7 @@ public class WebViewsIT extends JerseyTest {
public static void createMocks() {
ServerContext contextMock = EasyMock.createMock(ServerContext.class);
expect(contextMock.getConfiguration()).andReturn(DefaultConfiguration.getInstance()).anyTimes();
- expect(contextMock.getInstanceID()).andReturn("foo").atLeastOnce();
+ expect(contextMock.getInstanceID()).andReturn(InstanceId.of("foo")).atLeastOnce();
expect(contextMock.getInstanceName()).andReturn("foo").anyTimes();
expect(contextMock.getZooKeepers()).andReturn("foo:2181").anyTimes();
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index e875360..928ba75 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -62,6 +62,7 @@ import org.apache.accumulo.core.clientImpl.DurabilityImpl;
import org.apache.accumulo.core.clientImpl.TabletLocator;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.dataImpl.KeyExtent;
import org.apache.accumulo.core.manager.thrift.ManagerClientService;
@@ -366,7 +367,7 @@ public class TabletServer extends AbstractServer {
config();
}
- public String getInstanceID() {
+ public InstanceId getInstanceID() {
return getContext().getInstanceID();
}
diff --git a/shell/src/main/java/org/apache/accumulo/shell/Shell.java b/shell/src/main/java/org/apache/accumulo/shell/Shell.java
index 058e09e..049530c 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/Shell.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/Shell.java
@@ -628,7 +628,7 @@ public class Shell extends ShellOptions implements KeywordExecutable {
ClientInfo info = ClientInfo.from(accumuloClient.properties());
writer.print("\n" + SHELL_DESCRIPTION + "\n" + "- \n" + "- version: " + Constants.VERSION + "\n"
+ "- instance name: " + info.getInstanceName() + "\n" + "- instance id: "
- + accumuloClient.instanceOperations().getInstanceID() + "\n" + "- \n"
+ + accumuloClient.instanceOperations().getInstanceId() + "\n" + "- \n"
+ "- type 'help' for a list of available commands\n" + "- \n");
writer.flush();
}
diff --git a/test/src/main/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java b/test/src/main/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
index baecf17..5cc93ca 100644
--- a/test/src/main/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/BadDeleteMarkersCreatedIT.java
@@ -104,7 +104,7 @@ public class BadDeleteMarkersCreatedIT extends AccumuloClusterHarness {
ZooCache zcache = new ZooCache(info.getZooKeepers(), info.getZooKeepersSessionTimeOut());
zcache.clear();
var path = ServiceLock
- .path(ZooUtil.getRoot(client.instanceOperations().getInstanceID()) + Constants.ZGC_LOCK);
+ .path(ZooUtil.getRoot(client.instanceOperations().getInstanceId()) + Constants.ZGC_LOCK);
byte[] gcLockData;
do {
gcLockData = ServiceLock.getLockData(zcache, path, null);
diff --git a/test/src/main/java/org/apache/accumulo/test/ExistingMacIT.java b/test/src/main/java/org/apache/accumulo/test/ExistingMacIT.java
index d26fa0c..5f8b27e 100644
--- a/test/src/main/java/org/apache/accumulo/test/ExistingMacIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ExistingMacIT.java
@@ -120,7 +120,7 @@ public class ExistingMacIT extends ConfigurableMacBase {
ZooReaderWriter zrw = new ZooReaderWriter(getCluster().getZooKeepers(), (int) zkTimeout,
defaultConfig.get(Property.INSTANCE_SECRET));
final String zInstanceRoot =
- Constants.ZROOT + "/" + client.instanceOperations().getInstanceID();
+ Constants.ZROOT + "/" + client.instanceOperations().getInstanceId();
while (!AccumuloStatus.isAccumuloOffline(zrw, zInstanceRoot)) {
log.debug("Accumulo services still have their ZK locks held");
Thread.sleep(1000);
diff --git a/test/src/main/java/org/apache/accumulo/test/ThriftServerBindsBeforeZooKeeperLockIT.java b/test/src/main/java/org/apache/accumulo/test/ThriftServerBindsBeforeZooKeeperLockIT.java
index 36eff22..97ba8b1 100644
--- a/test/src/main/java/org/apache/accumulo/test/ThriftServerBindsBeforeZooKeeperLockIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ThriftServerBindsBeforeZooKeeperLockIT.java
@@ -30,6 +30,7 @@ import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.Accumulo;
import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.util.MonitorUtil;
import org.apache.accumulo.fate.zookeeper.ZooReader;
import org.apache.accumulo.gc.SimpleGarbageCollector;
@@ -134,7 +135,7 @@ public class ThriftServerBindsBeforeZooKeeperLockIT extends AccumuloClusterHarne
public void testManagerService() throws Exception {
final MiniAccumuloClusterImpl cluster = (MiniAccumuloClusterImpl) getCluster();
try (AccumuloClient client = Accumulo.newClient().from(getClientProps()).build()) {
- final String instanceID = client.instanceOperations().getInstanceID();
+ final InstanceId instanceID = client.instanceOperations().getInstanceId();
// Wait for the Manager to grab its lock
while (true) {
@@ -194,7 +195,7 @@ public class ThriftServerBindsBeforeZooKeeperLockIT extends AccumuloClusterHarne
public void testGarbageCollectorPorts() throws Exception {
final MiniAccumuloClusterImpl cluster = (MiniAccumuloClusterImpl) getCluster();
try (AccumuloClient client = Accumulo.newClient().from(getClientProps()).build()) {
- String instanceID = client.instanceOperations().getInstanceID();
+ InstanceId instanceID = client.instanceOperations().getInstanceId();
// Wait for the Manager to grab its lock
while (true) {
diff --git a/test/src/main/java/org/apache/accumulo/test/VolumeIT.java b/test/src/main/java/org/apache/accumulo/test/VolumeIT.java
index 17208b2..a5c9768 100644
--- a/test/src/main/java/org/apache/accumulo/test/VolumeIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/VolumeIT.java
@@ -54,6 +54,7 @@ import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.clientImpl.ClientContext;
import org.apache.accumulo.core.conf.ClientProperty;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Range;
@@ -189,7 +190,7 @@ public class VolumeIT extends ConfigurableMacBase {
try (AccumuloClient client = Accumulo.newClient().from(getClientProperties()).build()) {
String[] tableNames = getUniqueNames(2);
- String uuid = verifyAndShutdownCluster(client, tableNames[0]);
+ InstanceId uuid = verifyAndShutdownCluster(client, tableNames[0]);
updateConfig(config -> config.setProperty(Property.INSTANCE_VOLUMES.getKey(),
v1 + "," + v2 + "," + v3));
@@ -207,8 +208,8 @@ public class VolumeIT extends ConfigurableMacBase {
}
// grab uuid before shutting down cluster
- private String verifyAndShutdownCluster(AccumuloClient c, String tableName) throws Exception {
- String uuid = c.instanceOperations().getInstanceID();
+ private InstanceId verifyAndShutdownCluster(AccumuloClient c, String tableName) throws Exception {
+ InstanceId uuid = c.instanceOperations().getInstanceId();
verifyVolumesUsed(c, tableName, false, v1, v2);
@@ -225,7 +226,7 @@ public class VolumeIT extends ConfigurableMacBase {
try (AccumuloClient client = Accumulo.newClient().from(getClientProperties()).build()) {
- String uuid = verifyAndShutdownCluster(client, tableNames[0]);
+ InstanceId uuid = verifyAndShutdownCluster(client, tableNames[0]);
updateConfig(config -> config.setProperty(Property.INSTANCE_VOLUMES.getKey(), v2 + "," + v3));
@@ -246,13 +247,13 @@ public class VolumeIT extends ConfigurableMacBase {
}
// check that all volumes are initialized
- private void checkVolumesInitialized(List<Path> volumes, String uuid) throws Exception {
+ private void checkVolumesInitialized(List<Path> volumes, InstanceId uuid) throws Exception {
for (Path volumePath : volumes) {
FileSystem fs = volumePath.getFileSystem(cluster.getServerContext().getHadoopConf());
Path vp = new Path(volumePath, Constants.INSTANCE_ID_DIR);
FileStatus[] iids = fs.listStatus(vp);
assertEquals(1, iids.length);
- assertEquals(uuid, iids[0].getPath().getName());
+ assertEquals(uuid.canonical(), iids[0].getPath().getName());
}
}
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java b/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java
index 8de5e2c..546d33e 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java
@@ -235,7 +235,7 @@ public class AccumuloClientIT extends AccumuloClusterHarness {
expectClosed(c::securityOperations);
expectClosed(c::namespaceOperations);
expectClosed(c::properties);
- expectClosed(() -> c.instanceOperations().getInstanceID());
+ expectClosed(() -> c.instanceOperations().getInstanceId());
// check a few table ops to ensure they fail
expectClosed(() -> tops.create("expectFail"));
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/BackupManagerIT.java b/test/src/main/java/org/apache/accumulo/test/functional/BackupManagerIT.java
index e84a492..518f2fa 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/BackupManagerIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/BackupManagerIT.java
@@ -47,7 +47,7 @@ public class BackupManagerIT extends ConfigurableMacBase {
try (AccumuloClient client = Accumulo.newClient().from(getClientProperties()).build()) {
String secret = getCluster().getSiteConfiguration().get(Property.INSTANCE_SECRET);
ZooReaderWriter writer = new ZooReaderWriter(cluster.getZooKeepers(), 30 * 1000, secret);
- String root = "/accumulo/" + client.instanceOperations().getInstanceID();
+ String root = "/accumulo/" + client.instanceOperations().getInstanceId();
List<String> children;
// wait for 2 lock entries
do {
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java b/test/src/main/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
index 12da9a4..01f5d6a 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/BalanceInPresenceOfOfflineTableIT.java
@@ -161,7 +161,7 @@ public class BalanceInPresenceOfOfflineTableIT extends AccumuloClusterHarness {
try {
client = ManagerClient.getConnectionWithRetry((ClientContext) accumuloClient);
stats = client.getManagerStats(TraceUtil.traceInfo(),
- creds.toThrift(accumuloClient.instanceOperations().getInstanceID()));
+ creds.toThrift(accumuloClient.instanceOperations().getInstanceId()));
break;
} catch (ThriftSecurityException exception) {
throw new AccumuloSecurityException(exception);
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/FateConcurrencyIT.java b/test/src/main/java/org/apache/accumulo/test/functional/FateConcurrencyIT.java
index 39bb3d7..5bb9067 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/FateConcurrencyIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/FateConcurrencyIT.java
@@ -41,6 +41,7 @@ import org.apache.accumulo.core.client.TableNotFoundException;
import org.apache.accumulo.core.clientImpl.ClientContext;
import org.apache.accumulo.core.clientImpl.Tables;
import org.apache.accumulo.core.conf.Property;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.manager.state.tables.TableState;
import org.apache.accumulo.fate.AdminUtil;
@@ -252,7 +253,7 @@ public class FateConcurrencyIT extends AccumuloClusterHarness {
try {
- String instanceId = context.getInstanceID();
+ InstanceId instanceId = context.getInstanceID();
ZooReaderWriter zk = new ZooReaderWriter(context.getZooKeepers(),
context.getZooKeepersSessionTimeOut(), secret);
ZooStore<String> zs = new ZooStore<>(ZooUtil.getRoot(instanceId) + Constants.ZFATE, zk);
@@ -344,7 +345,7 @@ public class FateConcurrencyIT extends AccumuloClusterHarness {
log.trace("tid: {}", tableId);
- String instanceId = context.getInstanceID();
+ InstanceId instanceId = context.getInstanceID();
ZooReaderWriter zk = new ZooReaderWriter(context.getZooKeepers(),
context.getZooKeepersSessionTimeOut(), secret);
ZooStore<String> zs = new ZooStore<>(ZooUtil.getRoot(instanceId) + Constants.ZFATE, zk);
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java b/test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
index 6452f20..60b514a 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
@@ -260,7 +260,7 @@ public class GarbageCollectorIT extends ConfigurableMacBase {
ZooReaderWriter zk = new ZooReaderWriter(cluster.getZooKeepers(), 30000, OUR_SECRET);
var path = ServiceLock
- .path(ZooUtil.getRoot(client.instanceOperations().getInstanceID()) + Constants.ZGC_LOCK);
+ .path(ZooUtil.getRoot(client.instanceOperations().getInstanceId()) + Constants.ZGC_LOCK);
for (int i = 0; i < 5; i++) {
List<String> locks;
try {
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java b/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java
index 830bede..9a5bad1 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java
@@ -171,7 +171,7 @@ public class ReadWriteIT extends AccumuloClusterHarness {
ZooReader zreader = new ZooReader(info.getZooKeepers(), info.getZooKeepersSessionTimeOut());
ZooCache zcache = new ZooCache(zreader, null);
var zLockPath =
- ServiceLock.path(ZooUtil.getRoot(accumuloClient.instanceOperations().getInstanceID())
+ ServiceLock.path(ZooUtil.getRoot(accumuloClient.instanceOperations().getInstanceId())
+ Constants.ZMANAGER_LOCK);
byte[] managerLockData;
do {
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/RestartIT.java b/test/src/main/java/org/apache/accumulo/test/functional/RestartIT.java
index def1531..30ac634 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/RestartIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/RestartIT.java
@@ -141,7 +141,7 @@ public class RestartIT extends AccumuloClusterHarness {
ZooReader zreader = new ZooReader(info.getZooKeepers(), info.getZooKeepersSessionTimeOut());
ZooCache zcache = new ZooCache(zreader, null);
var zLockPath = ServiceLock
- .path(ZooUtil.getRoot(c.instanceOperations().getInstanceID()) + Constants.ZMANAGER_LOCK);
+ .path(ZooUtil.getRoot(c.instanceOperations().getInstanceId()) + Constants.ZMANAGER_LOCK);
byte[] managerLockData;
do {
managerLockData = ServiceLock.getLockData(zcache, zLockPath, null);
@@ -194,7 +194,7 @@ public class RestartIT extends AccumuloClusterHarness {
ZooReader zreader = new ZooReader(info.getZooKeepers(), info.getZooKeepersSessionTimeOut());
ZooCache zcache = new ZooCache(zreader, null);
var zLockPath = ServiceLock
- .path(ZooUtil.getRoot(c.instanceOperations().getInstanceID()) + Constants.ZMANAGER_LOCK);
+ .path(ZooUtil.getRoot(c.instanceOperations().getInstanceId()) + Constants.ZMANAGER_LOCK);
byte[] managerLockData;
do {
managerLockData = ServiceLock.getLockData(zcache, zLockPath, null);
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java b/test/src/main/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
index a32ea09..92f5bfd 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/SimpleBalancerFairnessIT.java
@@ -90,7 +90,7 @@ public class SimpleBalancerFairnessIT extends ConfigurableMacBase {
try {
client = ManagerClient.getConnectionWithRetry((ClientContext) c);
stats = client.getManagerStats(TraceUtil.traceInfo(),
- creds.toThrift(c.instanceOperations().getInstanceID()));
+ creds.toThrift(c.instanceOperations().getInstanceId()));
break;
} catch (ThriftNotActiveServiceException e) {
// Let it loop, fetching a new location
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java b/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
index 54dcd77..609414f 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/TabletStateChangeIteratorIT.java
@@ -306,7 +306,7 @@ public class TabletStateChangeIteratorIT extends AccumuloClusterHarness {
HashSet<TServerInstance> tservers = new HashSet<>();
for (String tserver : client.instanceOperations().getTabletServers()) {
try {
- var zPath = ServiceLock.path(ZooUtil.getRoot(client.instanceOperations().getInstanceID())
+ var zPath = ServiceLock.path(ZooUtil.getRoot(client.instanceOperations().getInstanceId())
+ Constants.ZTSERVERS + "/" + tserver);
ClientInfo info = getClientInfo();
long sessionId = ServiceLock.getSessionId(
diff --git a/test/src/main/java/org/apache/accumulo/test/gc/replication/CloseWriteAheadLogReferencesIT.java b/test/src/main/java/org/apache/accumulo/test/gc/replication/CloseWriteAheadLogReferencesIT.java
index 5975006..fc0085a 100644
--- a/test/src/main/java/org/apache/accumulo/test/gc/replication/CloseWriteAheadLogReferencesIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/gc/replication/CloseWriteAheadLogReferencesIT.java
@@ -39,6 +39,7 @@ import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.ConfigurationCopy;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.TableId;
@@ -119,7 +120,7 @@ public class CloseWriteAheadLogReferencesIT extends ConfigurableMacBase {
expect(context.getZooKeepers()).andReturn("localhost").anyTimes();
expect(context.getInstanceName()).andReturn("test").anyTimes();
expect(context.getZooKeepersSessionTimeOut()).andReturn(30000).anyTimes();
- expect(context.getInstanceID()).andReturn("1111").anyTimes();
+ expect(context.getInstanceID()).andReturn(InstanceId.of("1111")).anyTimes();
expect(context.getZooKeeperRoot()).andReturn(Constants.ZROOT + "/1111").anyTimes();
replay(siteConfig, context);
diff --git a/test/src/main/java/org/apache/accumulo/test/replication/MultiTserverReplicationIT.java b/test/src/main/java/org/apache/accumulo/test/replication/MultiTserverReplicationIT.java
index 4304a30..f616e66 100644
--- a/test/src/main/java/org/apache/accumulo/test/replication/MultiTserverReplicationIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/replication/MultiTserverReplicationIT.java
@@ -74,14 +74,14 @@ public class MultiTserverReplicationIT extends ConfigurableMacBase {
new ZooReader(context.getZooKeepers(), context.getZooKeepersSessionTimeOut());
Set<String> tserverHost = new HashSet<>();
tserverHost.addAll(zreader.getChildren(
- ZooUtil.getRoot(client.instanceOperations().getInstanceID()) + Constants.ZTSERVERS));
+ ZooUtil.getRoot(client.instanceOperations().getInstanceId()) + Constants.ZTSERVERS));
Set<HostAndPort> replicationServices = new HashSet<>();
for (String tserver : tserverHost) {
try {
byte[] portData =
- zreader.getData(ZooUtil.getRoot(client.instanceOperations().getInstanceID())
+ zreader.getData(ZooUtil.getRoot(client.instanceOperations().getInstanceId())
+ ReplicationConstants.ZOO_TSERVERS + "/" + tserver);
HostAndPort replAddress = HostAndPort.fromString(new String(portData, UTF_8));
replicationServices.add(replAddress);
@@ -119,7 +119,7 @@ public class MultiTserverReplicationIT extends ConfigurableMacBase {
// Get the manager replication coordinator addr
String replCoordAddr =
- new String(zreader.getData(ZooUtil.getRoot(client.instanceOperations().getInstanceID())
+ new String(zreader.getData(ZooUtil.getRoot(client.instanceOperations().getInstanceId())
+ Constants.ZMANAGER_REPLICATION_COORDINATOR_ADDR), UTF_8);
// They shouldn't be the same
diff --git a/test/src/main/java/org/apache/accumulo/test/replication/ReplicationIT.java b/test/src/main/java/org/apache/accumulo/test/replication/ReplicationIT.java
index 050424f..9c46d06 100644
--- a/test/src/main/java/org/apache/accumulo/test/replication/ReplicationIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/replication/ReplicationIT.java
@@ -209,7 +209,7 @@ public class ReplicationIT extends ConfigurableMacBase {
ClientInfo info = ClientInfo.from(client.properties());
ZooCache zcache = zcf.getZooCache(info.getZooKeepers(), info.getZooKeepersSessionTimeOut());
var zkPath = ServiceLock
- .path(ZooUtil.getRoot(client.instanceOperations().getInstanceID()) + Constants.ZGC_LOCK);
+ .path(ZooUtil.getRoot(client.instanceOperations().getInstanceId()) + Constants.ZGC_LOCK);
log.info("Looking for GC lock at {}", zkPath);
byte[] data = ServiceLock.getLockData(zcache, zkPath, null);
while (data == null) {
diff --git a/test/src/main/java/org/apache/accumulo/test/server/security/SystemCredentialsIT.java b/test/src/main/java/org/apache/accumulo/test/server/security/SystemCredentialsIT.java
index d558b39..834fd0e 100644
--- a/test/src/main/java/org/apache/accumulo/test/server/security/SystemCredentialsIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/server/security/SystemCredentialsIT.java
@@ -31,6 +31,7 @@ import org.apache.accumulo.core.client.TableNotFoundException;
import org.apache.accumulo.core.client.security.tokens.PasswordToken;
import org.apache.accumulo.core.clientImpl.Credentials;
import org.apache.accumulo.core.conf.SiteConfiguration;
+import org.apache.accumulo.core.data.InstanceId;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.metadata.RootTable;
@@ -63,7 +64,7 @@ public class SystemCredentialsIT extends ConfigurableMacBase {
var siteConfig = SiteConfiguration.auto();
try (ServerContext context = new ServerContext(siteConfig)) {
Credentials creds;
- String badInstanceID = SystemCredentials.class.getName();
+ InstanceId badInstanceID = InstanceId.of(SystemCredentials.class.getName());
if (args.length < 2) {
throw new RuntimeException("Incorrect usage; expected to be run by test only");
}