diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java index 0bc6c3ae223a..c313477e376f 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java @@ -260,6 +260,7 @@ public ContainerDataProto getProtoBufMessage() { builder.setContainerID(this.getContainerID()); builder.setContainerPath(this.getContainerPath()); builder.setState(this.getState()); + builder.setBlockCount(this.getBlockCount()); for (Map.Entry entry : getMetadata().entrySet()) { ContainerProtos.KeyValue.Builder keyValBuilder = diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainer.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainer.java index 4f9e45ce6755..422da011059c 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainer.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainer.java @@ -596,4 +596,31 @@ public void testDBProfileAffectsDBOptions() throws Exception { Assert.assertNotEquals(outProfile1.getDBOptions().compactionReadaheadSize(), outProfile2.getDBOptions().compactionReadaheadSize()); } + + @Test + public void testKeyValueDataProtoBufMsg() throws Exception { + createContainer(); + populate(10); + closeContainer(); + ContainerProtos.ContainerDataProto proto = + keyValueContainerData.getProtoBufMessage(); + + assertEquals(keyValueContainerData.getContainerID(), + proto.getContainerID()); + assertEquals(keyValueContainerData.getContainerType(), + proto.getContainerType()); + assertEquals(keyValueContainerData.getContainerPath(), + proto.getContainerPath()); + assertEquals(keyValueContainerData.getBlockCount(), + proto.getBlockCount()); + assertEquals(keyValueContainerData.getBytesUsed(), + proto.getBytesUsed()); + assertEquals(keyValueContainerData.getState(), + proto.getState()); + + for (ContainerProtos.KeyValue kv : proto.getMetadataList()) { + assertEquals(keyValueContainerData.getMetadata().get(kv.getKey()), + kv.getValue()); + } + } }