You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by er...@apache.org on 2022/11/22 00:02:49 UTC

[ozone] branch master updated: HDDS-7280. New test addition to TestOMBucketCreateRequestWithFSO (#3794)

This is an automated email from the ASF dual-hosted git repository.

erose 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 0ed0240c66 HDDS-7280. New test addition to TestOMBucketCreateRequestWithFSO (#3794)
0ed0240c66 is described below

commit 0ed0240c66f29c407f03bbcb064939a3d106253a
Author: Christos Bisias <ch...@gmail.com>
AuthorDate: Tue Nov 22 02:02:43 2022 +0200

    HDDS-7280. New test addition to TestOMBucketCreateRequestWithFSO (#3794)
---
 .../ozone/om/request/OMRequestTestUtils.java       |  3 +
 .../ozone/om/request/bucket/TestBucketRequest.java |  1 +
 .../bucket/TestOMBucketCreateRequestWithFSO.java   | 71 ++++++++++++++++++++--
 3 files changed, 69 insertions(+), 6 deletions(-)

diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java
index 2679634f9f..942c3ba0d8 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/OMRequestTestUtils.java
@@ -32,6 +32,7 @@ import org.apache.hadoop.hdds.client.ReplicationConfig;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
 import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
 import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
+import org.apache.hadoop.ozone.ClientVersion;
 import org.apache.hadoop.ozone.OmUtils;
 import org.apache.hadoop.ozone.OzoneAcl;
 import org.apache.hadoop.ozone.OzoneConsts;
@@ -544,6 +545,7 @@ public final class OMRequestTestUtils {
     req.setBucketInfo(bucketInfo);
     return OzoneManagerProtocolProtos.OMRequest.newBuilder()
         .setCreateBucketRequest(req)
+        .setVersion(ClientVersion.CURRENT_VERSION)
         .setCmdType(OzoneManagerProtocolProtos.Type.CreateBucket)
         .setClientId(UUID.randomUUID().toString()).build();
   }
@@ -566,6 +568,7 @@ public final class OMRequestTestUtils {
     req.setBucketInfo(bucketInfo);
     return OzoneManagerProtocolProtos.OMRequest.newBuilder()
             .setCreateBucketRequest(req)
+            .setVersion(ClientVersion.CURRENT_VERSION)
             .setCmdType(OzoneManagerProtocolProtos.Type.CreateBucket)
             .setClientId(UUID.randomUUID().toString()).build();
   }
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestBucketRequest.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestBucketRequest.java
index c4b1923b11..95c96107b8 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestBucketRequest.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestBucketRequest.java
@@ -69,6 +69,7 @@ public class TestBucketRequest {
     OzoneConfiguration ozoneConfiguration = new OzoneConfiguration();
     ozoneConfiguration.set(OMConfigKeys.OZONE_OM_DB_DIRS,
         folder.newFolder().getAbsolutePath());
+    when(ozoneManager.getConfiguration()).thenReturn(ozoneConfiguration);
     omMetadataManager = new OmMetadataManagerImpl(ozoneConfiguration);
     when(ozoneManager.getMetrics()).thenReturn(omMetrics);
     when(ozoneManager.getMetadataManager()).thenReturn(omMetadataManager);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketCreateRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketCreateRequestWithFSO.java
index 44efbe9ebf..d83d72b1aa 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketCreateRequestWithFSO.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketCreateRequestWithFSO.java
@@ -19,6 +19,7 @@
 
 package org.apache.hadoop.ozone.om.request.bucket;
 
+import org.apache.hadoop.ozone.om.OMConfigKeys;
 import org.apache.hadoop.ozone.om.helpers.BucketLayout;
 import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
 import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
@@ -26,6 +27,7 @@ import org.apache.hadoop.ozone.om.response.OMClientResponse;
 import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest;
 import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.StorageTypeProto;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.UUID;
@@ -38,6 +40,13 @@ import static org.mockito.Mockito.when;
 public class TestOMBucketCreateRequestWithFSO
     extends TestOMBucketCreateRequest {
 
+  @Before
+  public void setupWithFSO() {
+    ozoneManager.getConfiguration()
+        .set(OMConfigKeys.OZONE_DEFAULT_BUCKET_LAYOUT,
+            OMConfigKeys.OZONE_BUCKET_LAYOUT_FILE_SYSTEM_OPTIMIZED);
+  }
+
   @Test
   public void testValidateAndUpdateCacheWithFSO() throws Exception {
     when(ozoneManager.getOMDefaultBucketLayout()).thenReturn(
@@ -49,7 +58,43 @@ public class TestOMBucketCreateRequestWithFSO
     Assert.assertEquals(0, omMetrics.getNumFSOBucketCreates());
 
     OMBucketCreateRequest omBucketCreateRequest = doPreExecute(volumeName,
-        bucketName);
+        bucketName, true);
+
+    doValidateAndUpdateCache(volumeName, bucketName,
+        omBucketCreateRequest.getOmRequest());
+
+    Assert.assertEquals(1, omMetrics.getNumFSOBucketCreates());
+    Assert.assertEquals(BucketLayout.FILE_SYSTEM_OPTIMIZED,
+        omMetadataManager.getBucketTable().get(bucketKey).getBucketLayout());
+  }
+
+  /**
+   * Gets the bucket layout from the ozone configuration and
+   * creates a bucket request with the latest client version.
+   * Checking that the configuration layout is the same with
+   * the one used for the request.
+   * @throws Exception
+   */
+  @Test
+  public void testValidateAndUpdateCacheVerifyBucketLayoutWithFSO()
+      throws Exception {
+    String volumeName = UUID.randomUUID().toString();
+    String bucketName = UUID.randomUUID().toString();
+    String bucketKey = omMetadataManager.getBucketKey(volumeName, bucketName);
+
+    // Checking bucket layout from configuration
+    Assert.assertEquals(OMConfigKeys.OZONE_BUCKET_LAYOUT_FILE_SYSTEM_OPTIMIZED,
+        ozoneManager.getConfiguration()
+            .get(OMConfigKeys.OZONE_DEFAULT_BUCKET_LAYOUT));
+
+    Assert.assertEquals(0, omMetrics.getNumFSOBucketCreates());
+
+    // OzoneManager is mocked, the bucket layout will return null
+    when(ozoneManager.getOMDefaultBucketLayout()).thenReturn(
+        BucketLayout.FILE_SYSTEM_OPTIMIZED.name());
+
+    OMBucketCreateRequest omBucketCreateRequest =
+        doPreExecute(volumeName, bucketName, false);
 
     doValidateAndUpdateCache(volumeName, bucketName,
         omBucketCreateRequest.getOmRequest());
@@ -60,11 +105,21 @@ public class TestOMBucketCreateRequestWithFSO
   }
 
   private OMBucketCreateRequest doPreExecute(String volumeName,
-      String bucketName) throws Exception {
+      String bucketName, boolean layoutFSOFromCli)
+      throws Exception {
     addCreateVolumeToTable(volumeName, omMetadataManager);
-    OMRequest originalRequest =
-        OMRequestTestUtils.createBucketReqFSO(bucketName, volumeName,
-                false, StorageTypeProto.SSD);
+
+    OMRequest originalRequest;
+
+    if (layoutFSOFromCli) {
+      originalRequest =
+          OMRequestTestUtils.createBucketReqFSO(bucketName, volumeName,
+              false, StorageTypeProto.SSD);
+    } else {
+      originalRequest = OMRequestTestUtils
+          .createBucketRequest(bucketName, volumeName,
+              false, StorageTypeProto.SSD);
+    }
 
     OMBucketCreateRequest omBucketCreateRequest =
         new OMBucketCreateRequest(originalRequest);
@@ -96,9 +151,13 @@ public class TestOMBucketCreateRequestWithFSO
         omMetadataManager.getBucketTable().get(bucketKey);
     Assert.assertNotNull(omMetadataManager.getBucketTable().get(bucketKey));
 
+    BucketLayout bucketLayout = BucketLayout
+        .fromString(ozoneManager.getConfiguration()
+            .get(OMConfigKeys.OZONE_DEFAULT_BUCKET_LAYOUT));
+
     // verify table data with actual request data.
     OmBucketInfo bucketInfoFromProto = OmBucketInfo.getFromProtobuf(
-        modifiedRequest.getCreateBucketRequest().getBucketInfo());
+        modifiedRequest.getCreateBucketRequest().getBucketInfo(), bucketLayout);
 
     Assert.assertEquals(bucketInfoFromProto.getCreationTime(),
         dbBucketInfo.getCreationTime());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org