|
@@ -18,6 +18,7 @@ package org.apache.hadoop.ozone.ksm;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang.RandomStringUtils;
|
|
import org.apache.commons.lang.RandomStringUtils;
|
|
|
|
+import org.apache.hadoop.fs.StorageType;
|
|
import org.apache.hadoop.hdfs.server.datanode.ObjectStoreHandler;
|
|
import org.apache.hadoop.hdfs.server.datanode.ObjectStoreHandler;
|
|
import org.apache.hadoop.ozone.MiniOzoneCluster;
|
|
import org.apache.hadoop.ozone.MiniOzoneCluster;
|
|
import org.apache.hadoop.ozone.OzoneConfigKeys;
|
|
import org.apache.hadoop.ozone.OzoneConfigKeys;
|
|
@@ -25,12 +26,14 @@ import org.apache.hadoop.ozone.OzoneConfiguration;
|
|
import org.apache.hadoop.ozone.OzoneConsts;
|
|
import org.apache.hadoop.ozone.OzoneConsts;
|
|
import org.apache.hadoop.ozone.web.exceptions.OzoneException;
|
|
import org.apache.hadoop.ozone.web.exceptions.OzoneException;
|
|
import org.apache.hadoop.ozone.web.handlers.BucketArgs;
|
|
import org.apache.hadoop.ozone.web.handlers.BucketArgs;
|
|
|
|
+import org.apache.hadoop.ozone.web.handlers.KeyArgs;
|
|
import org.apache.hadoop.ozone.web.handlers.UserArgs;
|
|
import org.apache.hadoop.ozone.web.handlers.UserArgs;
|
|
import org.apache.hadoop.ozone.web.handlers.VolumeArgs;
|
|
import org.apache.hadoop.ozone.web.handlers.VolumeArgs;
|
|
import org.apache.hadoop.ozone.web.interfaces.StorageHandler;
|
|
import org.apache.hadoop.ozone.web.interfaces.StorageHandler;
|
|
import org.apache.hadoop.ozone.web.request.OzoneQuota;
|
|
import org.apache.hadoop.ozone.web.request.OzoneQuota;
|
|
import org.apache.hadoop.ozone.web.response.BucketInfo;
|
|
import org.apache.hadoop.ozone.web.response.BucketInfo;
|
|
import org.apache.hadoop.ozone.web.response.VolumeInfo;
|
|
import org.apache.hadoop.ozone.web.response.VolumeInfo;
|
|
|
|
+import org.apache.hadoop.ozone.web.utils.OzoneUtils;
|
|
import org.junit.AfterClass;
|
|
import org.junit.AfterClass;
|
|
import org.junit.Assert;
|
|
import org.junit.Assert;
|
|
import org.junit.BeforeClass;
|
|
import org.junit.BeforeClass;
|
|
@@ -38,6 +41,8 @@ import org.junit.Test;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
+import java.io.OutputStream;
|
|
|
|
+import java.util.LinkedList;
|
|
import java.util.Random;
|
|
import java.util.Random;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -65,7 +70,8 @@ public class TestKeySpaceManager {
|
|
cluster = new MiniOzoneCluster.Builder(conf)
|
|
cluster = new MiniOzoneCluster.Builder(conf)
|
|
.setHandlerType(OzoneConsts.OZONE_HANDLER_DISTRIBUTED).build();
|
|
.setHandlerType(OzoneConsts.OZONE_HANDLER_DISTRIBUTED).build();
|
|
storageHandler = new ObjectStoreHandler(conf).getStorageHandler();
|
|
storageHandler = new ObjectStoreHandler(conf).getStorageHandler();
|
|
- userArgs = new UserArgs(null, null, null, null, null, null);
|
|
|
|
|
|
+ userArgs = new UserArgs(null, OzoneUtils.getRequestID(),
|
|
|
|
+ null, null, null, null);
|
|
ksmMetrics = cluster.getKeySpaceManager().getMetrics();
|
|
ksmMetrics = cluster.getKeySpaceManager().getMetrics();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -190,4 +196,33 @@ public class TestKeySpaceManager {
|
|
Assert.assertEquals(0, ksmMetrics.getNumBucketCreateFails());
|
|
Assert.assertEquals(0, ksmMetrics.getNumBucketCreateFails());
|
|
Assert.assertEquals(0, ksmMetrics.getNumBucketInfoFails());
|
|
Assert.assertEquals(0, ksmMetrics.getNumBucketInfoFails());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void testGetKeyWriter() throws IOException, OzoneException {
|
|
|
|
+ String userName = "user" + RandomStringUtils.randomNumeric(5);
|
|
|
|
+ String adminName = "admin" + RandomStringUtils.randomNumeric(5);
|
|
|
|
+ String volumeName = "volume" + RandomStringUtils.randomNumeric(5);
|
|
|
|
+ String bucketName = "bucket" + RandomStringUtils.randomNumeric(5);
|
|
|
|
+ String keyName = "key" + RandomStringUtils.randomNumeric(5);
|
|
|
|
+ Assert.assertEquals(0, ksmMetrics.getNumKeyBlockAllocates());
|
|
|
|
+
|
|
|
|
+ VolumeArgs createVolumeArgs = new VolumeArgs(volumeName, userArgs);
|
|
|
|
+ createVolumeArgs.setUserName(userName);
|
|
|
|
+ createVolumeArgs.setAdminName(adminName);
|
|
|
|
+ storageHandler.createVolume(createVolumeArgs);
|
|
|
|
+
|
|
|
|
+ BucketArgs bucketArgs = new BucketArgs(bucketName, createVolumeArgs);
|
|
|
|
+ bucketArgs.setAddAcls(new LinkedList<>());
|
|
|
|
+ bucketArgs.setRemoveAcls(new LinkedList<>());
|
|
|
|
+ bucketArgs.setStorageType(StorageType.DISK);
|
|
|
|
+ storageHandler.createBucket(bucketArgs);
|
|
|
|
+
|
|
|
|
+ String dataString = RandomStringUtils.randomAscii(100);
|
|
|
|
+ KeyArgs keyArgs = new KeyArgs(volumeName, bucketName, keyName, userArgs);
|
|
|
|
+ keyArgs.setSize(4096);
|
|
|
|
+ try (OutputStream stream = storageHandler.newKeyWriter(keyArgs)) {
|
|
|
|
+ stream.write(dataString.getBytes());
|
|
|
|
+ }
|
|
|
|
+ Assert.assertEquals(1, ksmMetrics.getNumKeyBlockAllocates());
|
|
|
|
+ }
|
|
}
|
|
}
|