|
@@ -21,6 +21,7 @@ package org.apache.hadoop.ozone.om.ha;
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
import org.apache.hadoop.conf.Configuration;
|
|
import org.apache.hadoop.conf.Configuration;
|
|
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
|
|
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
|
|
|
|
+import org.apache.hadoop.io.Text;
|
|
import org.apache.hadoop.io.retry.FailoverProxyProvider;
|
|
import org.apache.hadoop.io.retry.FailoverProxyProvider;
|
|
import org.apache.hadoop.ipc.Client;
|
|
import org.apache.hadoop.ipc.Client;
|
|
import org.apache.hadoop.ipc.ProtobufRpcEngine;
|
|
import org.apache.hadoop.ipc.ProtobufRpcEngine;
|
|
@@ -29,6 +30,7 @@ import org.apache.hadoop.net.NetUtils;
|
|
import org.apache.hadoop.ozone.OmUtils;
|
|
import org.apache.hadoop.ozone.OmUtils;
|
|
import org.apache.hadoop.ozone.OzoneConsts;
|
|
import org.apache.hadoop.ozone.OzoneConsts;
|
|
import org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolPB;
|
|
import org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolPB;
|
|
|
|
+import org.apache.hadoop.security.SecurityUtil;
|
|
import org.apache.hadoop.security.UserGroupInformation;
|
|
import org.apache.hadoop.security.UserGroupInformation;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -84,16 +86,23 @@ public class OMFailoverProxyProvider implements
|
|
public final class OMProxyInfo
|
|
public final class OMProxyInfo
|
|
extends FailoverProxyProvider.ProxyInfo<OzoneManagerProtocolPB> {
|
|
extends FailoverProxyProvider.ProxyInfo<OzoneManagerProtocolPB> {
|
|
private InetSocketAddress address;
|
|
private InetSocketAddress address;
|
|
|
|
+ private Text dtService;
|
|
|
|
|
|
OMProxyInfo(OzoneManagerProtocolPB proxy, String proxyInfoStr,
|
|
OMProxyInfo(OzoneManagerProtocolPB proxy, String proxyInfoStr,
|
|
|
|
+ Text dtService,
|
|
InetSocketAddress addr) {
|
|
InetSocketAddress addr) {
|
|
super(proxy, proxyInfoStr);
|
|
super(proxy, proxyInfoStr);
|
|
this.address = addr;
|
|
this.address = addr;
|
|
|
|
+ this.dtService = dtService;
|
|
}
|
|
}
|
|
|
|
|
|
public InetSocketAddress getAddress() {
|
|
public InetSocketAddress getAddress() {
|
|
return address;
|
|
return address;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public Text getDelegationTokenService() {
|
|
|
|
+ return dtService;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
private void loadOMClientConfigs(Configuration config) throws IOException {
|
|
private void loadOMClientConfigs(Configuration config) throws IOException {
|
|
@@ -125,11 +134,12 @@ public class OMFailoverProxyProvider implements
|
|
|
|
|
|
// Add the OM client proxy info to list of proxies
|
|
// Add the OM client proxy info to list of proxies
|
|
if (addr != null) {
|
|
if (addr != null) {
|
|
|
|
+ Text dtService = SecurityUtil.buildTokenService(addr);
|
|
StringBuilder proxyInfo = new StringBuilder()
|
|
StringBuilder proxyInfo = new StringBuilder()
|
|
.append(nodeId).append("(")
|
|
.append(nodeId).append("(")
|
|
.append(NetUtils.getHostPortString(addr)).append(")");
|
|
.append(NetUtils.getHostPortString(addr)).append(")");
|
|
OMProxyInfo omProxyInfo = new OMProxyInfo(null,
|
|
OMProxyInfo omProxyInfo = new OMProxyInfo(null,
|
|
- proxyInfo.toString(), addr);
|
|
|
|
|
|
+ proxyInfo.toString(), dtService, addr);
|
|
|
|
|
|
// For a non-HA OM setup, nodeId might be null. If so, we assign it
|
|
// For a non-HA OM setup, nodeId might be null. If so, we assign it
|
|
// a dummy value
|
|
// a dummy value
|