diff --git a/docs/executor.md b/docs/executor.md index ab1febff8a..a061d6813f 100644 --- a/docs/executor.md +++ b/docs/executor.md @@ -95,7 +95,7 @@ Resource requests and other job characteristics can be controlled via the follow The `flux` executor allows you to run your pipeline script using the [Flux Framework](https://flux-framework.org). -Nextflow manages each process as a separate job that is submitted to the cluster by using the `flux mini submit` command. +Nextflow submits each process to the cluster as a separate job using the `flux submit` command. To enable the Flux executor, set `process.executor = 'flux'` in the `nextflow.config` file. diff --git a/docs/flux.md b/docs/flux.md index 6e16ac103b..d0239b2e89 100644 --- a/docs/flux.md +++ b/docs/flux.md @@ -100,7 +100,7 @@ Here is an example of submitting a job and getting the log for it. First submit the job: ```console -$ flux mini submit echo "HELLO MOTO" +$ flux submit echo "HELLO MOTO" ƒEzWqspb ``` @@ -114,7 +114,7 @@ HELLO MOTO Try submitting a longer job: ```console -$ flux mini submit sleep 60 +$ flux submit sleep 60 ``` And then seeing it in the jobs listing. diff --git a/modules/nextflow/src/main/groovy/nextflow/executor/FluxExecutor.groovy b/modules/nextflow/src/main/groovy/nextflow/executor/FluxExecutor.groovy index 25d96fc78e..b6184dde07 100644 --- a/modules/nextflow/src/main/groovy/nextflow/executor/FluxExecutor.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/executor/FluxExecutor.groovy @@ -61,7 +61,7 @@ class FluxExecutor extends AbstractGridExecutor { @Override List getSubmitCommandLine(TaskRun task, Path scriptFile ) { - List result = ['flux', 'mini', 'submit'] + List result = ['flux', 'submit'] result << '--setattr=cwd=' + quote(task.workDir) result << '--job-name="' + getJobNameFor(task) + '"' diff --git a/modules/nextflow/src/test/groovy/nextflow/executor/FluxExecutorTest.groovy b/modules/nextflow/src/test/groovy/nextflow/executor/FluxExecutorTest.groovy index 3cc3a73396..95a90e65bc 100644 --- a/modules/nextflow/src/test/groovy/nextflow/executor/FluxExecutorTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/executor/FluxExecutorTest.groovy @@ -72,27 +72,27 @@ class FluxExecutorTest extends Specification { then: // Flux doesn't have script headers executor.getHeaders(task) == '' - executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'mini', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--queue=delta', '/bin/bash', 'job.sh'] + executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--queue=delta', '/bin/bash', 'job.sh'] when: task.config = new TaskConfig() task.config.time = '1m' then: - executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'mini', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--time-limit=01', '/bin/bash', 'job.sh'] + executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--time-limit=01', '/bin/bash', 'job.sh'] when: task.config = new TaskConfig() task.config.time = '1h' task.config.clusterOptions = '--tasks-per-node=4' then: - executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'mini', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--time-limit=60', '--tasks-per-node=4', '/bin/bash', 'job.sh'] + executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--time-limit=60', '--tasks-per-node=4', '/bin/bash', 'job.sh'] when: task.config = new TaskConfig() task.config.time = '1h' task.config.clusterOptions = '--tasks-per-node=4 --cpus-per-node=4' then: - executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'mini', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--time-limit=60', '--tasks-per-node=4', '--cpus-per-node=4', '/bin/bash', 'job.sh'] + executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '--output=/work/path/.command.log', '--time-limit=60', '--tasks-per-node=4', '--cpus-per-node=4', '/bin/bash', 'job.sh'] } @@ -111,9 +111,9 @@ class FluxExecutorTest extends Specification { task.name = 'my task' task.workDir = Paths.get('/work/path') task.config = new TaskConfig() - + expect: - executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'mini', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '/bin/bash', 'job.sh'] + executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'submit', '--setattr=cwd=/work/path', '--job-name="nf-my_task"', '/bin/bash', 'job.sh'] } @@ -135,7 +135,7 @@ class FluxExecutorTest extends Specification { task.index = 21 task.config = new TaskConfig() then: - executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'mini', 'submit', '--setattr=cwd="/work/some\\ data/path"', '--job-name="nf-my_task"', '--output="/work/some\\ data/path/.command.log"', '/bin/bash', 'job.sh'] + executor.getSubmitCommandLine(task, Paths.get('/some/path/job.sh')) == ['flux', 'submit', '--setattr=cwd="/work/some\\ data/path"', '--job-name="nf-my_task"', '--output="/work/some\\ data/path/.command.log"', '/bin/bash', 'job.sh'] } @@ -160,8 +160,8 @@ class FluxExecutorTest extends Specification { result['ƒ6upwy2MY3'] == AbstractGridExecutor.QueueStatus.RUNNING result['ƒ6upcbFjvf'] == AbstractGridExecutor.QueueStatus.HOLD result['ƒ6uon2RGVV'] == AbstractGridExecutor.QueueStatus.PENDING - result['ƒ6upwy2MY4'] == AbstractGridExecutor.QueueStatus.DONE - result['ƒ6upcbFjvh'] == AbstractGridExecutor.QueueStatus.DONE + result['ƒ6upwy2MY4'] == AbstractGridExecutor.QueueStatus.DONE + result['ƒ6upcbFjvh'] == AbstractGridExecutor.QueueStatus.DONE } def testQueueStatusCommand() {