hadoop/hadoop-tools/hadoop-aws
Steve Loughran 4317d33232
HADOOP-16380. S3Guard to determine empty directory status for all non-root directories.
Contributed by Steve Loughran and Gabor Bota.

This
* Asks S3Guard to determine the empty directory status.
* Has S3A's root directory rm("/") command to always return false (as abfs does)
* Documents that object stores MAY do this
* Overloads ContractTestUtils.assertDeleted to let assertions declare that the source directory does not need to exist. This stops inconsistencies in directory listings failing a root test.

It avoids a recent regression (HADOOP-16279) where if there was a tombstone above the first element found in a directory listing, the directory would be considered empty, when in fact there were child entries. That could downgrade an rm(path, recursive) to a no-op, while also confusing rename(src, dest), as dest could be mistaken for an empty directory and so permit the copy above it, rather than reject it "destination path exists and is not empty".

Change-Id: I136a3d1a5a48a67e6155d790a40ff558d0d2c108
2019-07-23 14:52:03 +01:00
..
dev-support HADOOP-15229. Add FileSystem builder-based openFile() API to match createFile(); 2019-02-05 11:51:02 +00:00
src HADOOP-16380. S3Guard to determine empty directory status for all non-root directories. 2019-07-23 14:52:03 +01:00
pom.xml HADOOP-16384: S3A: Avoid inconsistencies between DDB and S3. 2019-07-12 13:02:25 +01:00