Explorar o código

HDFS-5871. Use PBHelper to serialize CacheDirectiveInfoExpirationProto. Contributed by Haohui Mai.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-5698@1564418 13f79535-47bb-0310-9956-ffa450edef68
Jing Zhao %!s(int64=11) %!d(string=hai) anos
pai
achega
87e6c89429

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES_HDFS-5698.txt

@@ -31,3 +31,6 @@ HDFS-5698 subtasks
     HDFS-5797. Implement offline image viewer. (Haohui Mai via jing9)
 
     HDFS-5771. Track progress when loading fsimage. (Haohui Mai via cnauroth)
+
+    HDFS-5871. Use PBHelper to serialize CacheDirectiveInfoExpirationProto.
+    (Haohui Mai via jing9)

+ 12 - 6
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/CacheManager.java

@@ -67,6 +67,7 @@ import org.apache.hadoop.hdfs.protocol.LocatedBlock;
 import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.CacheDirectiveInfoExpirationProto;
 import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.CacheDirectiveInfoProto;
 import org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.CachePoolInfoProto;
+import org.apache.hadoop.hdfs.protocolPB.PBHelper;
 import org.apache.hadoop.hdfs.server.blockmanagement.BlockManager;
 import org.apache.hadoop.hdfs.server.blockmanagement.CacheReplicationMonitor;
 import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor;
@@ -993,18 +994,23 @@ public final class CacheManager {
       CacheDirectiveInfo info = directive.toInfo();
       CacheDirectiveInfoProto.Builder b = CacheDirectiveInfoProto.newBuilder();
 
-      if (info.getPath() != null)
+      if (info.getPath() != null) {
         b.setPath(info.getPath().toUri().getPath());
+      }
 
-      if (info.getReplication() != null)
+      if (info.getReplication() != null) {
         b.setReplication(info.getReplication());
+      }
 
-      if (info.getPool() != null)
+      if (info.getPool() != null) {
         b.setPool(info.getPool());
+      }
 
-      if (info.getExpiration() != null)
-        b.setExpiration(CacheDirectiveInfoExpirationProto.newBuilder()
-            .setMillis(info.getExpiration().getMillis()));
+      Expiration expiry = info.getExpiration();
+      if (expiry != null) {
+        assert (!expiry.isRelative());
+        b.setExpiration(PBHelper.convert(expiry));
+      }
 
       directives.add(b.build());
     }