HDDS-439. 'ozone oz volume create' should default to current logged in user. Contributed by Dinesh Chitlangia.
(cherry picked from commit 0bf8a110a5
)
This commit is contained in:
parent
15d4e0110c
commit
f30994caf0
|
@ -32,6 +32,7 @@ import java.util.List;
|
|||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.RandomStringUtils;
|
||||
import org.apache.hadoop.fs.FileUtil;
|
||||
import org.apache.hadoop.hdds.cli.MissingSubcommandException;
|
||||
|
@ -60,6 +61,7 @@ import org.apache.hadoop.ozone.web.response.BucketInfo;
|
|||
import org.apache.hadoop.ozone.web.response.KeyInfo;
|
||||
import org.apache.hadoop.ozone.web.response.VolumeInfo;
|
||||
import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
||||
import org.apache.hadoop.security.UserGroupInformation;
|
||||
import org.apache.hadoop.test.GenericTestUtils;
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
|
@ -258,6 +260,26 @@ public class TestOzoneShell {
|
|||
exceptionHandler, args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to create volume without specifying --user or -u.
|
||||
* @throws Exception
|
||||
*/
|
||||
@Test
|
||||
public void testCreateVolumeWithoutUser() throws Exception {
|
||||
String volumeName = "volume" + RandomStringUtils.randomNumeric(1);
|
||||
String[] args = new String[] {"volume", "create", url + "/" + volumeName,
|
||||
"--root"};
|
||||
|
||||
execute(shell, args);
|
||||
|
||||
String truncatedVolumeName =
|
||||
volumeName.substring(volumeName.lastIndexOf('/') + 1);
|
||||
OzoneVolume volumeInfo = client.getVolumeDetails(truncatedVolumeName);
|
||||
assertEquals(truncatedVolumeName, volumeInfo.getName());
|
||||
assertEquals(UserGroupInformation.getCurrentUser().getUserName(),
|
||||
volumeInfo.getOwner());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteVolume() throws Exception {
|
||||
LOG.info("Running testDeleteVolume");
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.apache.hadoop.ozone.web.ozShell.Handler;
|
|||
import org.apache.hadoop.ozone.web.ozShell.Shell;
|
||||
import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
||||
|
||||
import org.apache.hadoop.security.UserGroupInformation;
|
||||
import picocli.CommandLine.Command;
|
||||
import picocli.CommandLine.Option;
|
||||
import picocli.CommandLine.Parameters;
|
||||
|
@ -45,8 +46,7 @@ public class CreateVolumeHandler extends Handler {
|
|||
private String uri;
|
||||
|
||||
@Option(names = {"--user", "-u"},
|
||||
description = "Owner of of the volume", required =
|
||||
true)
|
||||
description = "Owner of of the volume")
|
||||
private String userName;
|
||||
|
||||
@Option(names = {"--quota", "-q"},
|
||||
|
@ -64,6 +64,9 @@ public class CreateVolumeHandler extends Handler {
|
|||
*/
|
||||
@Override
|
||||
public Void call() throws Exception {
|
||||
if(userName == null) {
|
||||
userName = UserGroupInformation.getCurrentUser().getUserName();
|
||||
}
|
||||
|
||||
URI ozoneURI = verifyURI(uri);
|
||||
Path path = Paths.get(ozoneURI.getPath());
|
||||
|
|
Loading…
Reference in New Issue