This is an automated email from the ASF dual-hosted git repository.
umamahesh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new b563669 HDDS-5350 : Add allocate block support in MockOmTransport
(#2341). Contributed by Uma Maheswara Rao G.
b563669 is described below
commit b563669ad287665c2fac870be71327feea2c5899
Author: Uma Maheswara Rao G <[email protected]>
AuthorDate: Wed Jun 23 07:42:39 2021 -0700
HDDS-5350 : Add allocate block support in MockOmTransport (#2341).
Contributed by Uma Maheswara Rao G.
---
.../hadoop/ozone/client/MockOmTransport.java | 12 ++++++++
.../hadoop/ozone/client/TestOzoneClient.java | 34 +++++++++++++++++-----
2 files changed, 39 insertions(+), 7 deletions(-)
diff --git
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
index 36ab47a..17a7f6b 100644
---
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
+++
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.ozone.client;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.ozone.om.protocolPB.OmTransport;
+import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
import
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.BucketInfo;
import
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CommitKeyRequest;
import
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CommitKeyResponse;
@@ -116,6 +117,9 @@ public class MockOmTransport implements OmTransport {
return response(payload,
r -> r.setServiceListResponse(
serviceList(payload.getServiceListRequest())));
+ case AllocateBlock:
+ return response(payload, r -> r.setAllocateBlockResponse(
+ allocateBlock(payload.getAllocateBlockRequest())));
default:
throw new IllegalArgumentException(
"Mock version of om call " + payload.getCmdType()
@@ -123,6 +127,14 @@ public class MockOmTransport implements OmTransport {
}
}
+ private OzoneManagerProtocolProtos.AllocateBlockResponse allocateBlock(
+ OzoneManagerProtocolProtos.AllocateBlockRequest allocateBlockRequest) {
+ return OzoneManagerProtocolProtos.AllocateBlockResponse.newBuilder()
+ .setKeyLocation(
+ blockAllocator.allocateBlock(allocateBlockRequest.getKeyArgs())
+ .iterator().next()).build();
+ }
+
private DeleteVolumeResponse deleteVolume(
DeleteVolumeRequest deleteVolumeRequest) {
volumes.remove(deleteVolumeRequest.getVolumeName());
diff --git
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneClient.java
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneClient.java
index ccc5898..2f4ebcf 100644
---
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneClient.java
+++
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneClient.java
@@ -142,15 +142,9 @@ public class TestOzoneClient {
@Test
public void testPutKeyRatisOneNode() throws IOException {
- String volumeName = UUID.randomUUID().toString();
- String bucketName = UUID.randomUUID().toString();
Instant testStartTime = Instant.now();
-
String value = "sample value";
- store.createVolume(volumeName);
- OzoneVolume volume = store.getVolume(volumeName);
- volume.createBucket(bucketName);
- OzoneBucket bucket = volume.getBucket(bucketName);
+ OzoneBucket bucket = getOzoneBucket();
for (int i = 0; i < 10; i++) {
String keyName = UUID.randomUUID().toString();
@@ -171,4 +165,30 @@ public class TestOzoneClient {
Assert.assertFalse(key.getModificationTime().isBefore(testStartTime));
}
}
+
+ @Test
+ public void testPutKeyAllocateBlock() throws IOException {
+ String value = new String(new byte[1024], UTF_8);
+ OzoneBucket bucket = getOzoneBucket();
+
+ for (int i = 0; i < 10; i++) {
+ String keyName = UUID.randomUUID().toString();
+
+ try (OzoneOutputStream out = bucket
+ .createKey(keyName, value.getBytes(UTF_8).length,
+ ReplicationType.RATIS, ONE, new HashMap<>())) {
+ out.write(value.getBytes(UTF_8));
+ out.write(value.getBytes(UTF_8));
+ }
+ }
+ }
+
+ private OzoneBucket getOzoneBucket() throws IOException {
+ String volumeName = UUID.randomUUID().toString();
+ String bucketName = UUID.randomUUID().toString();
+ store.createVolume(volumeName);
+ OzoneVolume volume = store.getVolume(volumeName);
+ volume.createBucket(bucketName);
+ return volume.getBucket(bucketName);
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]