HDDS-439. 'ozone oz volume create' should default to current logged in user. Contributed by Dinesh Chitlangia.
This commit is contained in:
parent
2614078b21
commit
0bf8a110a5
|
@ -32,6 +32,7 @@ import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.RandomStringUtils;
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.apache.hadoop.fs.FileUtil;
|
import org.apache.hadoop.fs.FileUtil;
|
||||||
import org.apache.hadoop.hdds.cli.MissingSubcommandException;
|
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.KeyInfo;
|
||||||
import org.apache.hadoop.ozone.web.response.VolumeInfo;
|
import org.apache.hadoop.ozone.web.response.VolumeInfo;
|
||||||
import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
||||||
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.hadoop.test.GenericTestUtils;
|
import org.apache.hadoop.test.GenericTestUtils;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
|
@ -258,6 +260,26 @@ public class TestOzoneShell {
|
||||||
exceptionHandler, args);
|
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
|
@Test
|
||||||
public void testDeleteVolume() throws Exception {
|
public void testDeleteVolume() throws Exception {
|
||||||
LOG.info("Running testDeleteVolume");
|
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.ozShell.Shell;
|
||||||
import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
||||||
|
|
||||||
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import picocli.CommandLine.Command;
|
import picocli.CommandLine.Command;
|
||||||
import picocli.CommandLine.Option;
|
import picocli.CommandLine.Option;
|
||||||
import picocli.CommandLine.Parameters;
|
import picocli.CommandLine.Parameters;
|
||||||
|
@ -45,8 +46,7 @@ public class CreateVolumeHandler extends Handler {
|
||||||
private String uri;
|
private String uri;
|
||||||
|
|
||||||
@Option(names = {"--user", "-u"},
|
@Option(names = {"--user", "-u"},
|
||||||
description = "Owner of of the volume", required =
|
description = "Owner of of the volume")
|
||||||
true)
|
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
@Option(names = {"--quota", "-q"},
|
@Option(names = {"--quota", "-q"},
|
||||||
|
@ -64,6 +64,9 @@ public class CreateVolumeHandler extends Handler {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Void call() throws Exception {
|
public Void call() throws Exception {
|
||||||
|
if(userName == null) {
|
||||||
|
userName = UserGroupInformation.getCurrentUser().getUserName();
|
||||||
|
}
|
||||||
|
|
||||||
URI ozoneURI = verifyURI(uri);
|
URI ozoneURI = verifyURI(uri);
|
||||||
Path path = Paths.get(ozoneURI.getPath());
|
Path path = Paths.get(ozoneURI.getPath());
|
||||||
|
|
Loading…
Reference in New Issue