HDDS-207. ozone listVolume command accepts random values as argument. Contributed by Lokesh Jain.
This commit is contained in:
parent
d5d444732b
commit
129269f989
|
@ -52,7 +52,9 @@ Test ozone shell
|
||||||
${result} = Execute on datanode ozone oz -createVolume ${protocol}${server}/${volume} -user bilbo -quota 100TB -root
|
${result} = Execute on datanode ozone oz -createVolume ${protocol}${server}/${volume} -user bilbo -quota 100TB -root
|
||||||
Should not contain ${result} Failed
|
Should not contain ${result} Failed
|
||||||
Should contain ${result} Creating Volume: ${volume}
|
Should contain ${result} Creating Volume: ${volume}
|
||||||
${result} = Execute on datanode ozone oz -listVolume o3://ozoneManager -user bilbo | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '.[] | select(.volumeName=="${volume}")'
|
${result} = Execute on datanode ozone oz -listVolume ${protocol}${server}/ -user bilbo | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '.[] | select(.volumeName=="${volume}")'
|
||||||
|
Should contain ${result} createdOn
|
||||||
|
${result} = Execute on datanode ozone oz -listVolume -user bilbo | grep -Ev 'Removed|DEBUG|ERROR|INFO|TRACE|WARN' | jq -r '.[] | select(.volumeName=="${volume}")'
|
||||||
Should contain ${result} createdOn
|
Should contain ${result} createdOn
|
||||||
Execute on datanode ozone oz -updateVolume ${protocol}${server}/${volume} -user bill -quota 10TB
|
Execute on datanode ozone oz -updateVolume ${protocol}${server}/${volume} -user bill -quota 10TB
|
||||||
${result} = Execute on datanode ozone oz -infoVolume ${protocol}${server}/${volume} | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '. | select(.volumeName=="${volume}") | .owner | .name'
|
${result} = Execute on datanode ozone oz -infoVolume ${protocol}${server}/${volume} | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '. | select(.volumeName=="${volume}") | .owner | .name'
|
||||||
|
@ -66,7 +68,7 @@ Test ozone shell
|
||||||
Should Be Equal ${result} GROUP
|
Should Be Equal ${result} GROUP
|
||||||
${result} = Execute on datanode ozone oz -updateBucket ${protocol}${server}/${volume}/bb1 -removeAcl group:samwise:r | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '. | select(.bucketName=="bb1") | .acls | .[] | select(.name=="frodo") | .type'
|
${result} = Execute on datanode ozone oz -updateBucket ${protocol}${server}/${volume}/bb1 -removeAcl group:samwise:r | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '. | select(.bucketName=="bb1") | .acls | .[] | select(.name=="frodo") | .type'
|
||||||
Should Be Equal ${result} USER
|
Should Be Equal ${result} USER
|
||||||
${result} = Execute on datanode ozone oz -listBucket o3://ozoneManager/${volume}/ | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '.[] | select(.bucketName=="bb1") | .volumeName'
|
${result} = Execute on datanode ozone oz -listBucket ${protocol}${server}/${volume}/ | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '.[] | select(.bucketName=="bb1") | .volumeName'
|
||||||
Should Be Equal ${result} ${volume}
|
Should Be Equal ${result} ${volume}
|
||||||
Run Keyword and Return If ${withkeytest} Test key handling ${protocol} ${server} ${volume}
|
Run Keyword and Return If ${withkeytest} Test key handling ${protocol} ${server} ${volume}
|
||||||
Execute on datanode ozone oz -deleteBucket ${protocol}${server}/${volume}/bb1
|
Execute on datanode ozone oz -deleteBucket ${protocol}${server}/${volume}/bb1
|
||||||
|
@ -80,6 +82,6 @@ Test key handling
|
||||||
Execute on datanode ls -l NOTICE.txt.1
|
Execute on datanode ls -l NOTICE.txt.1
|
||||||
${result} = Execute on datanode ozone oz -infoKey ${protocol}${server}/${volume}/bb1/key1 | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '. | select(.keyName=="key1")'
|
${result} = Execute on datanode ozone oz -infoKey ${protocol}${server}/${volume}/bb1/key1 | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '. | select(.keyName=="key1")'
|
||||||
Should contain ${result} createdOn
|
Should contain ${result} createdOn
|
||||||
${result} = Execute on datanode ozone oz -listKey o3://ozoneManager/${volume}/bb1 | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '.[] | select(.keyName=="key1") | .keyName'
|
${result} = Execute on datanode ozone oz -listKey ${protocol}${server}/${volume}/bb1 | grep -Ev 'Removed|WARN|DEBUG|ERROR|INFO|TRACE' | jq -r '.[] | select(.keyName=="key1") | .keyName'
|
||||||
Should Be Equal ${result} key1
|
Should Be Equal ${result} key1
|
||||||
Execute on datanode ozone oz -deleteKey ${protocol}${server}/${volume}/bb1/key1 -v
|
Execute on datanode ozone oz -deleteKey ${protocol}${server}/${volume}/bb1/key1 -v
|
||||||
|
|
|
@ -71,6 +71,7 @@ import org.apache.hadoop.test.GenericTestUtils;
|
||||||
import org.apache.hadoop.util.ToolRunner;
|
import org.apache.hadoop.util.ToolRunner;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
|
@ -332,7 +333,7 @@ public class TestOzoneShell {
|
||||||
public void testListVolume() throws Exception {
|
public void testListVolume() throws Exception {
|
||||||
LOG.info("Running testListVolume");
|
LOG.info("Running testListVolume");
|
||||||
String protocol = clientProtocol.getName().toLowerCase();
|
String protocol = clientProtocol.getName().toLowerCase();
|
||||||
String commandOutput;
|
String commandOutput, commandError;
|
||||||
List<VolumeInfo> volumes;
|
List<VolumeInfo> volumes;
|
||||||
final int volCount = 20;
|
final int volCount = 20;
|
||||||
final String user1 = "test-user-a-" + protocol;
|
final String user1 = "test-user-a-" + protocol;
|
||||||
|
@ -361,8 +362,15 @@ public class TestOzoneShell {
|
||||||
assertNotNull(vol);
|
assertNotNull(vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String[] args = new String[] {"-listVolume", url + "/abcde", "-user",
|
||||||
|
user1, "-length", "100"};
|
||||||
|
assertEquals(1, ToolRunner.run(shell, args));
|
||||||
|
commandError = err.toString();
|
||||||
|
Assert.assertTrue(commandError.contains("Invalid URI:"));
|
||||||
|
|
||||||
|
err.reset();
|
||||||
// test -length option
|
// test -length option
|
||||||
String[] args = new String[] {"-listVolume", url + "/", "-user",
|
args = new String[] {"-listVolume", url + "/", "-user",
|
||||||
user1, "-length", "100"};
|
user1, "-length", "100"};
|
||||||
assertEquals(0, ToolRunner.run(shell, args));
|
assertEquals(0, ToolRunner.run(shell, args));
|
||||||
commandOutput = out.toString();
|
commandOutput = out.toString();
|
||||||
|
|
|
@ -207,6 +207,7 @@ public class Shell extends Configured implements Tool {
|
||||||
"For example : ozone oz -listVolume <ozoneURI>" +
|
"For example : ozone oz -listVolume <ozoneURI>" +
|
||||||
"-user <username> -root or ozone oz " +
|
"-user <username> -root or ozone oz " +
|
||||||
"-listVolume");
|
"-listVolume");
|
||||||
|
listVolume.setOptionalArg(true);
|
||||||
options.addOption(listVolume);
|
options.addOption(listVolume);
|
||||||
|
|
||||||
Option updateVolume =
|
Option updateVolume =
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
package org.apache.hadoop.ozone.web.ozShell.volume;
|
package org.apache.hadoop.ozone.web.ozShell.volume;
|
||||||
|
|
||||||
|
import com.google.common.base.Strings;
|
||||||
import org.apache.commons.cli.CommandLine;
|
import org.apache.commons.cli.CommandLine;
|
||||||
import org.apache.hadoop.ozone.client.OzoneClientUtils;
|
import org.apache.hadoop.ozone.client.OzoneClientUtils;
|
||||||
import org.apache.hadoop.ozone.client.OzoneVolume;
|
import org.apache.hadoop.ozone.client.OzoneVolume;
|
||||||
|
@ -30,6 +31,7 @@ import org.apache.hadoop.ozone.web.utils.JsonUtils;
|
||||||
import org.apache.hadoop.ozone.web.utils.OzoneUtils;
|
import org.apache.hadoop.ozone.web.utils.OzoneUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
@ -77,7 +79,16 @@ public class ListVolumeHandler extends Handler {
|
||||||
}
|
}
|
||||||
|
|
||||||
String ozoneURIString = cmd.getOptionValue(Shell.LIST_VOLUME);
|
String ozoneURIString = cmd.getOptionValue(Shell.LIST_VOLUME);
|
||||||
verifyURI(ozoneURIString);
|
if (Strings.isNullOrEmpty(ozoneURIString)) {
|
||||||
|
ozoneURIString = "/";
|
||||||
|
}
|
||||||
|
URI ozoneURI = verifyURI(ozoneURIString);
|
||||||
|
if (!Strings.isNullOrEmpty(ozoneURI.getPath()) && !ozoneURI.getPath()
|
||||||
|
.equals("/")) {
|
||||||
|
throw new OzoneClientException(
|
||||||
|
"Invalid URI: " + ozoneURI + " . Specified path not used." + ozoneURI
|
||||||
|
.getPath());
|
||||||
|
}
|
||||||
|
|
||||||
if (cmd.hasOption(Shell.USER)) {
|
if (cmd.hasOption(Shell.USER)) {
|
||||||
userName = cmd.getOptionValue(Shell.USER);
|
userName = cmd.getOptionValue(Shell.USER);
|
||||||
|
|
Loading…
Reference in New Issue