[NO ISSUE][EXT]: External Library fixes
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Address remaining comments to:
- Clean up local disk when deleting libraries
- Don't touch library file if already present
Change-Id: I9ba13e7afc54ddd08f5e522627c56d11f51ca4a9
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19447
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Ian Maxon <imaxon@apache.org>
Reviewed-by: Peeyush Gupta <peeyush.gupta@couchbase.com>
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
index 76d91cf..02a99f6 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
@@ -239,7 +239,9 @@
if (!libDir.getFile().exists()) {
Files.createDirectories(lib.getFile().toPath().getParent());
}
- Files.createFile(lib.getFile().toPath());
+ if (!lib.getFile().exists()) {
+ Files.createFile(lib.getFile().toPath());
+ }
IFileHandle fh = cloudIoMgr.open(lib, IIOManager.FileReadWriteMode.READ_WRITE,
IIOManager.FileSyncMode.METADATA_ASYNC_DATA_ASYNC);
WritableByteChannel outChannel = cloudIoMgr.newWritableChannel(fh);
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
index 4debc8f..f15e96f 100755
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalLibraryManager.java
@@ -516,14 +516,13 @@
if (ncs.getConfiguration().isCloudDeployment()) {
ioManager.delete(fileRef.getChild(LIBRARY_ARCHIVE_NAME));
ioManager.delete(fileRef.getChild(DESCRIPTOR_FILE_NAME));
- } else {
- Path trashPath = Files.createTempDirectory(trashDirPath, null);
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Drop (move) {} into {}", path, trashPath);
- }
- Files.move(path, trashPath, StandardCopyOption.ATOMIC_MOVE);
- ncs.getWorkQueue().schedule(new DeleteDirectoryWork(trashPath));
}
+ Path trashPath = Files.createTempDirectory(trashDirPath, null);
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Drop (move) {} into {}", path, trashPath);
+ }
+ Files.move(path, trashPath, StandardCopyOption.ATOMIC_MOVE);
+ ncs.getWorkQueue().schedule(new DeleteDirectoryWork(trashPath));
} catch (IOException e) {
throw HyracksDataException.create(e);
}