Skip to content

Feat: adds linking multiple folders #313

Merged
l-mansouri merged 15 commits into
mainfrom
multiple-folders
May 5, 2026
Merged

Feat: adds linking multiple folders #313
l-mansouri merged 15 commits into
mainfrom
multiple-folders

Conversation

@l-mansouri

@l-mansouri l-mansouri commented Apr 29, 2026

Copy link
Copy Markdown
Collaborator

Overview

This PR implements the possibility to link multiple folders in one go to running interactive sessions. It works both with s3 paths and file explorer folders.

JIRA

Please add here as many related tasks this PR covers with its brief description, if more than one ticket

https://lifebit.atlassian.net/browse/LP-107740

Changes

  • Implements linking of multiple folders with 1 command

Acceptance Criteria

Please add here as many scenarios as in the Story

DEV

link multiple folders from file explorer
cloudos link --profile internal-DEV --session-id 69f1c7f2434c9867c5e2b384 Data/results,Data/concat_output
Screenshot 2026-04-29 at 11 58 14 Screenshot 2026-04-29 at 11 58 30
link multiple folders from file explorer when creating the interactive session ``` cloudos interactive-session create --name test_link --session-type vscode --link Data/results,Data/concat_output --profile internal-DEV ``` Screenshot 2026-04-30 at 12 19 53 Screenshot 2026-04-30 at 12 20 24
link multiple s3 path
cloudos link --session-id 69f1c7f2434c9867c5e2b384 s3://lifebit-featured-datasets/pipelines/vep/agg_vcf/,s3://lifebit-featured-datasets/pipelines/phewas/example-data/,s3://lifebit-featured-datasets/pipelines/lifebit-platform-target-identification/test_data/ --profile internal-DEV
Screenshot 2026-04-29 at 11 59 22 Screenshot 2026-04-29 at 11 59 30
link multiple folders from s3 paths when creating the interactive session
cloudos interactive-session create --name test_link --session-type vscode --link s3://lifebit-featured-datasets/pipelines/vep/agg_vcf/,s3://lifebit-featured-datasets/pipelines/phewas/example-data/,s3://lifebit-featured-datasets/pipelines/lifebit-platform-target-identification/test_data/ --profile internal-DEV
Screenshot 2026-04-29 at 16 38 49 Screenshot 2026-04-29 at 16 39 05

@l-mansouri l-mansouri marked this pull request as ready for review April 29, 2026 13:31
@l-mansouri l-mansouri marked this pull request as draft April 29, 2026 14:41
@l-mansouri l-mansouri marked this pull request as ready for review April 29, 2026 14:41
@l-mansouri l-mansouri marked this pull request as draft April 30, 2026 07:22
@l-mansouri l-mansouri marked this pull request as ready for review April 30, 2026 07:22

@danielboloc danielboloc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @l-mansouri

I have used an agent to do a review, so I have added the most important comments from the review as suggested changes and added my own.

Comment thread cloudos_cli/link/link.py
Comment thread cloudos_cli/link/link.py
Comment thread cloudos_cli/link/link.py Outdated
Comment thread cloudos_cli/link/link.py Outdated
Comment thread cloudos_cli/link/link.py
Comment thread tests/test_datasets/test_link.py
Comment thread cloudos_cli/link/cli.py Outdated
Comment thread cloudos_cli/interactive_session/cli.py Outdated
Comment thread CHANGELOG.md Outdated
Comment thread README.md
l-mansouri and others added 3 commits April 30, 2026 15:02
Co-authored-by: Daniel Boloc <danielboloc@users.noreply.github.com>
Co-authored-by: Daniel Boloc <danielboloc@users.noreply.github.com>
@l-mansouri l-mansouri marked this pull request as draft April 30, 2026 14:15
@l-mansouri l-mansouri marked this pull request as ready for review April 30, 2026 14:15
danielboloc
danielboloc previously approved these changes May 4, 2026

@danielboloc danielboloc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @l-mansouri

LGTM

Comment thread .github/workflows/ci.yml
Comment thread cloudos_cli/interactive_session/cli.py Outdated
Comment thread cloudos_cli/link/link.py Outdated
@dapineyro

Copy link
Copy Markdown
Collaborator

@l-mansouri , already seen in the second AC from the PR description:
image
The linked folders from File Explorer appear with a wrong S3 path. You could add a specific "Linked from File Explorer" instead

@dapineyro

dapineyro commented May 4, 2026

Copy link
Copy Markdown
Collaborator

@l-mansouri I've noticed three unexpected behaviours:

First unexpected

With the following command:

cloudos interactive-session create --name test_linking --session-type jupyter --link davidp_testing/Data/test_folder_1/results,davidp_testing/Data/test_folder_2/results

Being these two folders existing folders, but empty:

Screenshot 2026-05-04 at 20 26 08

It successfully creates the session, but both links are failed with the following (suggesting my project does not exist, but it does):

Screenshot 2026-05-04 at 20 27 06

Second unexpected

With the following command attempting to link two different job results folders:

cloudos interactive-session create --name test_linking --session-type jupyter --link s3://lifebit-user-data-ef05b3b1-3351-4b12-bafd-0515724bb2a8/deploit/teams/687fb9905c45270e09db1e9a/users/6329e3bd3c0e00014641eeea/projects/69f371a716f1efef6773c258/jobs/69f8c2de21209be1c3222789/results/results/,s3://lifebit-user-data-ef05b3b1-3351-4b12-bafd-0515724bb2a8/deploit/teams/687fb9905c45270e09db1e9a/users/6329e3bd3c0e00014641eeea/projects/69f371a716f1efef6773c258/jobs/69f8aff021209be1c3220bd0/results/results/

It does not complain, it let you create the session, but only one results folder is actually linked (even if it seems it linked both):
Screenshot 2026-05-04 at 20 46 48

Third unexpected

Actually, the command does not check for the existence of your linked folders. It goes straight to the instance creation and then the user will find weird errors for the mounted folders. If the user did an unnoticed typo, it will lead to a ticket that we could avoid by checking. Is it possible to check for the existence of the folders, at least the File Explorer ones?
Screenshot 2026-05-04 at 20 32 36

Screenshot 2026-05-04 at 20 42 49

@l-mansouri

Copy link
Copy Markdown
Collaborator Author

@dapineyro I have addressed all your comments

For point 1, the issue is not that they were empty but that they were virtual folders that can't be linked

Screenshot 2026-05-05 at 09 43 24

For point 2 and 3 there are a couple of issues stacked: multiple folders with the same name that can't be linked and the fact that the mounting only happen after the session is created so there are natively no checks on it up until the session is started. I have added a check of existence for file explorer paths and a duplicated name check

Screenshot 2026-05-05 at 09 43 55

@l-mansouri

Copy link
Copy Markdown
Collaborator Author

the new help text
Screenshot 2026-05-05 at 16 07 03

Comment thread cloudos_cli/link/link.py Outdated
Comment thread cloudos_cli/interactive_session/cli.py
Comment thread cloudos_cli/interactive_session/cli.py Outdated

@dapineyro dapineyro left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@dapineyro dapineyro self-requested a review May 5, 2026 15:46
@l-mansouri l-mansouri merged commit c01c9cf into main May 5, 2026
98 checks passed
@l-mansouri l-mansouri deleted the multiple-folders branch May 5, 2026 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants