Repository: flink Updated Branches: refs/heads/release-1.4 666b1b2e6 -> abdc7d1ec
[FLINK-7988][s3] fix HadoopS3FileSystemITCase leaving test directories behind in S3 This closes #4950. Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/abdc7d1e Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/abdc7d1e Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/abdc7d1e Branch: refs/heads/release-1.4 Commit: abdc7d1ecdc2e997ef6c9d1764348da00148ec28 Parents: 36b8075 Author: Nico Kruber <n...@data-artisans.com> Authored: Thu Nov 2 19:38:48 2017 +0100 Committer: Till Rohrmann <trohrm...@apache.org> Committed: Sat Nov 18 10:58:53 2017 +0100 ---------------------------------------------------------------------- .../fs/s3hadoop/HadoopS3FileSystemITCase.java | 50 +++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/abdc7d1e/flink-filesystems/flink-s3-fs-hadoop/src/test/java/org/apache/flink/fs/s3hadoop/HadoopS3FileSystemITCase.java ---------------------------------------------------------------------- diff --git a/flink-filesystems/flink-s3-fs-hadoop/src/test/java/org/apache/flink/fs/s3hadoop/HadoopS3FileSystemITCase.java b/flink-filesystems/flink-s3-fs-hadoop/src/test/java/org/apache/flink/fs/s3hadoop/HadoopS3FileSystemITCase.java index 88f13ed..8c646f0 100644 --- a/flink-filesystems/flink-s3-fs-hadoop/src/test/java/org/apache/flink/fs/s3hadoop/HadoopS3FileSystemITCase.java +++ b/flink-filesystems/flink-s3-fs-hadoop/src/test/java/org/apache/flink/fs/s3hadoop/HadoopS3FileSystemITCase.java @@ -27,6 +27,7 @@ import org.apache.flink.core.fs.FileSystem.WriteMode; import org.apache.flink.core.fs.Path; import org.apache.flink.util.TestLogger; +import org.junit.AfterClass; import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Test; @@ -57,11 +58,58 @@ public class HadoopS3FileSystemITCase extends TestLogger { private static final String ACCESS_KEY = System.getenv("ARTIFACTS_AWS_ACCESS_KEY"); private static final String SECRET_KEY = System.getenv("ARTIFACTS_AWS_SECRET_KEY"); + /** + * Will be updated by {@link #checkCredentialsAndSetup()} if the test is not skipped. + */ + private static boolean skipTest = true; + @BeforeClass - public static void checkIfCredentialsArePresent() { + public static void checkCredentialsAndSetup() throws IOException { + // check whether credentials exist Assume.assumeTrue("AWS S3 bucket not configured, skipping test...", BUCKET != null); Assume.assumeTrue("AWS S3 access key not configured, skipping test...", ACCESS_KEY != null); Assume.assumeTrue("AWS S3 secret key not configured, skipping test...", SECRET_KEY != null); + + // initialize configuration with valid credentials + final Configuration conf = new Configuration(); + conf.setString("s3.access.key", ACCESS_KEY); + conf.setString("s3.secret.key", SECRET_KEY); + FileSystem.initialize(conf); + + // check for uniqueness of the test directory + final Path directory = new Path("s3://" + BUCKET + '/' + TEST_DATA_DIR); + final FileSystem fs = directory.getFileSystem(); + + // directory must not yet exist + assertFalse(fs.exists(directory)); + + // reset configuration + FileSystem.initialize(new Configuration()); + + skipTest = false; + } + + @AfterClass + public static void cleanUp() throws IOException { + if (!skipTest) { + // initialize configuration with valid credentials + final Configuration conf = new Configuration(); + conf.setString("s3.access.key", ACCESS_KEY); + conf.setString("s3.secret.key", SECRET_KEY); + FileSystem.initialize(conf); + + final Path directory = new Path("s3://" + BUCKET + '/' + TEST_DATA_DIR); + final FileSystem fs = directory.getFileSystem(); + + // clean up + fs.delete(directory, true); + + // now directory must be gone + assertFalse(fs.exists(directory)); + + // reset configuration + FileSystem.initialize(new Configuration()); + } } @Test