[ 
https://issues.apache.org/jira/browse/DRILL-8359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17647872#comment-17647872
 ] 

ASF GitHub Bot commented on DRILL-8359:
---------------------------------------

jnturton commented on code in PR #2713:
URL: https://github.com/apache/drill/pull/2713#discussion_r1049256392


##########
exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemConfig.java:
##########
@@ -53,18 +53,23 @@ public class FileSystemConfig extends StoragePluginConfig {
   public static final String NAME = "file";
 
   private final String connection;
+  private final String[] mountCommand, unmountCommand;

Review Comment:
   @cgivre apologies, I missed this. The motivation was runtime efficiency 
since I don't need the overhead of dynamic collections here. The Runtime.exec 
method that I hand off to is also based on String[] so by matching that I don't 
need to do a List to array conversion. Are Lists preferable when working with 
arrays from Jackson though, because I can certainly change this?





> Add mount and unmount command support to the filesystem plugin
> --------------------------------------------------------------
>
>                 Key: DRILL-8359
>                 URL: https://issues.apache.org/jira/browse/DRILL-8359
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Storage - File
>    Affects Versions: 1.20.2
>            Reporter: James Turton
>            Assignee: James Turton
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> This Jira proposes optional mount and unmount commands in the filesystem 
> plugin with the goal of enabling the dynamic definition of filesystem mounts 
> in the storage configuration. It is mainly anticpiated that network and cloud 
> filesystems that have FUSE drivers (sshfs, davfs, rclone, ...) will be used 
> in this way but local device mounts and image/loop device mounts (ISO, IMG, 
> squashfs, etc.) might also be of interest. Filesystems that can be mounted in 
> this way become queryable by Drill cluster without burden of dedicated 
> storage plugin development.
> The provided commands are executed in their own processes by the host OS and 
> run under the OS user that is running the Drill JVM. The mount command will 
> be executed when an enabled plugin is initialised (something that is done 
> lazily) and whenever it transitions from disabled to enabled. The provided 
> unmount command will be executed whenever a plugin transitions from enabled 
> to disabled and when the Drillbit shuts down while the plugin has been 
> initialised and is enabled.
> Example using udisks on Linux to mount and unmount an image of an ext4 
> filesystem.
> {code:java}
> {
>   "type" : "file",
>   "connection" : "file:///",
>   "mountCommand" : [ "sh", "-c", "udisksctl loop-setup -f /tmp/test.img && 
> udisksctl mount -b /dev/loop0" ],
>   "unmountCommand" : [ "sh", "-c", "udisksctl unmount -b /dev/loop0 && 
> udisksctl loop-delete -b /dev/loop0" ],
>   "workspaces" : {
>      ...{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to