|
@@ -21,6 +21,7 @@ import java.io.Closeable;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
import java.util.EnumSet;
|
|
import java.util.EnumSet;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
@@ -176,8 +177,11 @@ import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodin
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingPoliciesResponseProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingPoliciesResponseProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingPolicyRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingPolicyRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingPolicyResponseProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingPolicyResponseProto;
|
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingCodecsRequestProto;
|
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.GetErasureCodingCodecsResponseProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.SetErasureCodingPolicyRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.SetErasureCodingPolicyRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.UnsetErasureCodingPolicyRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.UnsetErasureCodingPolicyRequestProto;
|
|
|
|
+import org.apache.hadoop.hdfs.protocol.proto.ErasureCodingProtos.CodecProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.ErasureCodingPolicyProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.ErasureCodingPolicyProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.XAttrProtos.GetXAttrsRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.XAttrProtos.GetXAttrsRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.XAttrProtos.ListXAttrsRequestProto;
|
|
import org.apache.hadoop.hdfs.protocol.proto.XAttrProtos.ListXAttrsRequestProto;
|
|
@@ -246,6 +250,10 @@ public class ClientNamenodeProtocolTranslatorPB implements
|
|
VOID_GET_EC_POLICIES_REQUEST = GetErasureCodingPoliciesRequestProto
|
|
VOID_GET_EC_POLICIES_REQUEST = GetErasureCodingPoliciesRequestProto
|
|
.newBuilder().build();
|
|
.newBuilder().build();
|
|
|
|
|
|
|
|
+ private final static GetErasureCodingCodecsRequestProto
|
|
|
|
+ VOID_GET_EC_CODEC_REQUEST = GetErasureCodingCodecsRequestProto
|
|
|
|
+ .newBuilder().build();
|
|
|
|
+
|
|
public ClientNamenodeProtocolTranslatorPB(ClientNamenodeProtocolPB proxy) {
|
|
public ClientNamenodeProtocolTranslatorPB(ClientNamenodeProtocolPB proxy) {
|
|
rpcProxy = proxy;
|
|
rpcProxy = proxy;
|
|
}
|
|
}
|
|
@@ -1668,6 +1676,21 @@ public class ClientNamenodeProtocolTranslatorPB implements
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HashMap<String, String> getErasureCodingCodecs() throws IOException {
|
|
|
|
+ try {
|
|
|
|
+ GetErasureCodingCodecsResponseProto response = rpcProxy
|
|
|
|
+ .getErasureCodingCodecs(null, VOID_GET_EC_CODEC_REQUEST);
|
|
|
|
+ HashMap<String, String> ecCodecs = new HashMap<String, String>();
|
|
|
|
+ for (CodecProto codec : response.getCodecList()) {
|
|
|
|
+ ecCodecs.put(codec.getCodec(), codec.getCoders());
|
|
|
|
+ }
|
|
|
|
+ return ecCodecs;
|
|
|
|
+ } catch (ServiceException e) {
|
|
|
|
+ throw ProtobufHelper.getRemoteException(e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public ErasureCodingPolicy getErasureCodingPolicy(String src)
|
|
public ErasureCodingPolicy getErasureCodingPolicy(String src)
|
|
throws IOException {
|
|
throws IOException {
|