HADOOP-15754. s3guard: testDynamoTableTagging should clear existing config.

Contributed by Gabor Bota.
This commit is contained in:
Steve Loughran 2018-09-17 22:40:08 +01:00
parent 3d89c3e73e
commit 26d0c63a1e
No known key found for this signature in database
GPG Key ID: D22CF846DBB162A0
3 changed files with 26 additions and 4 deletions

View File

@ -300,16 +300,18 @@ public abstract class AbstractS3GuardToolTestBase extends AbstractS3ATestBase {
@Test @Test
public void testSetCapacityFailFastOnReadWriteOfZero() throws Exception{ public void testSetCapacityFailFastOnReadWriteOfZero() throws Exception{
Configuration conf = getConfiguration(); Configuration conf = getConfiguration();
String bucket = getFileSystem().getBucket();
conf.set(S3GUARD_DDB_TABLE_NAME_KEY, getFileSystem().getBucket()); conf.set(S3GUARD_DDB_TABLE_NAME_KEY, getFileSystem().getBucket());
S3GuardTool.SetCapacity cmdR = new S3GuardTool.SetCapacity(conf); S3GuardTool.SetCapacity cmdR = new S3GuardTool.SetCapacity(conf);
String[] argsR = new String[]{cmdR.getName(), "-read", "0", "s3a://bucket"}; String[] argsR =
new String[]{cmdR.getName(), "-read", "0", "s3a://" + bucket};
intercept(IllegalArgumentException.class, intercept(IllegalArgumentException.class,
S3GuardTool.SetCapacity.READ_CAP_INVALID, () -> cmdR.run(argsR)); S3GuardTool.SetCapacity.READ_CAP_INVALID, () -> cmdR.run(argsR));
S3GuardTool.SetCapacity cmdW = new S3GuardTool.SetCapacity(conf); S3GuardTool.SetCapacity cmdW = new S3GuardTool.SetCapacity(conf);
String[] argsW = new String[]{cmdW.getName(), "-write", "0", String[] argsW =
"s3a://bucket"}; new String[]{cmdW.getName(), "-write", "0", "s3a://" + bucket};
intercept(IllegalArgumentException.class, intercept(IllegalArgumentException.class,
S3GuardTool.SetCapacity.WRITE_CAP_INVALID, () -> cmdW.run(argsW)); S3GuardTool.SetCapacity.WRITE_CAP_INVALID, () -> cmdW.run(argsW));
} }

View File

@ -630,6 +630,12 @@ public class ITestDynamoDBMetadataStore extends MetadataStoreTestBase {
@Test @Test
public void testTableTagging() throws IOException { public void testTableTagging() throws IOException {
final Configuration conf = getFileSystem().getConf(); final Configuration conf = getFileSystem().getConf();
// clear all table tagging config before this test
conf.getPropsWithPrefix(S3GUARD_DDB_TABLE_TAG).keySet().forEach(
propKey -> conf.unset(S3GUARD_DDB_TABLE_TAG + propKey)
);
String tableName = "testTableTagging-" + UUID.randomUUID(); String tableName = "testTableTagging-" + UUID.randomUUID();
conf.set(S3GUARD_DDB_TABLE_NAME_KEY, tableName); conf.set(S3GUARD_DDB_TABLE_NAME_KEY, tableName);
conf.set(S3GUARD_DDB_TABLE_CREATE_KEY, "true"); conf.set(S3GUARD_DDB_TABLE_CREATE_KEY, "true");

View File

@ -44,7 +44,9 @@ import org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.Destroy;
import org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.Init; import org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.Init;
import org.apache.hadoop.test.LambdaTestUtils; import org.apache.hadoop.test.LambdaTestUtils;
import static org.apache.hadoop.fs.s3a.Constants.S3GUARD_DDB_REGION_KEY;
import static org.apache.hadoop.fs.s3a.Constants.S3GUARD_DDB_TABLE_NAME_KEY; import static org.apache.hadoop.fs.s3a.Constants.S3GUARD_DDB_TABLE_NAME_KEY;
import static org.apache.hadoop.fs.s3a.Constants.S3GUARD_DDB_TABLE_TAG;
import static org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStore.*; import static org.apache.hadoop.fs.s3a.s3guard.DynamoDBMetadataStore.*;
import static org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.*; import static org.apache.hadoop.fs.s3a.s3guard.S3GuardTool.*;
import static org.apache.hadoop.test.LambdaTestUtils.intercept; import static org.apache.hadoop.test.LambdaTestUtils.intercept;
@ -101,8 +103,20 @@ public class ITestS3GuardToolDynamoDB extends AbstractS3GuardToolTestBase {
@Test @Test
public void testDynamoTableTagging() throws Exception { public void testDynamoTableTagging() throws Exception {
// setup
Configuration conf = getConfiguration(); Configuration conf = getConfiguration();
// If the region is not set in conf, skip the test.
String ddbRegion = conf.get(S3GUARD_DDB_REGION_KEY);
Assume.assumeTrue(
S3GUARD_DDB_REGION_KEY + " should be set to run this test",
ddbRegion != null && !ddbRegion.isEmpty()
);
// setup
// clear all table tagging config before this test
conf.getPropsWithPrefix(S3GUARD_DDB_TABLE_TAG).keySet().forEach(
propKey -> conf.unset(S3GUARD_DDB_TABLE_TAG + propKey)
);
conf.set(S3GUARD_DDB_TABLE_NAME_KEY, conf.set(S3GUARD_DDB_TABLE_NAME_KEY,
"testDynamoTableTagging-" + UUID.randomUUID()); "testDynamoTableTagging-" + UUID.randomUUID());
S3GuardTool.Init cmdR = new S3GuardTool.Init(conf); S3GuardTool.Init cmdR = new S3GuardTool.Init(conf);