cloudos-cli 2.89.2__tar.gz → 2.90.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/PKG-INFO +44 -12
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/README.md +43 -11
- cloudos_cli-2.90.1/cloudos_cli/_version.py +1 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/bash/cli.py +1 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/clos.py +67 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/interactive_session/cli.py +217 -27
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/interactive_session/interactive_session.py +25 -10
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/jobs/job.py +8 -7
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/link/cli.py +35 -10
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/link/link.py +329 -166
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli.egg-info/PKG-INFO +44 -12
- cloudos_cli-2.89.2/cloudos_cli/_version.py +0 -1
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/LICENSE +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/__main__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/bash/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/configure/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/configure/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/configure/configure.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/constants.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/cost/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/cost/cost.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/cromwell/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/cromwell/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/datasets/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/datasets/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/datasets/datasets.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/import_wf/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/import_wf/import_wf.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/interactive_session/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/jobs/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/jobs/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/link/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/logging/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/logging/logger.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/procurement/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/procurement/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/procurement/images.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/projects/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/projects/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/queue/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/queue/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/queue/queue.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/related_analyses/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/related_analyses/related_analyses.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/array_job.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/cli_helpers.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/cloud.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/details.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/errors.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/last_wf.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/nextflow_version.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/requests.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/utils/resources.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/workflows/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli/workflows/cli.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli.egg-info/SOURCES.txt +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli.egg-info/dependency_links.txt +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli.egg-info/entry_points.txt +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli.egg-info/requires.txt +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/cloudos_cli.egg-info/top_level.txt +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/setup.cfg +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/setup.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/functions_for_pytest.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_cli_project_create.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_cost/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_cost/test_job_cost.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_details.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_error_messages.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_interactive_session/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_interactive_session/test_create_session.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_interactive_session/test_list_sessions.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_logging/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_logging/test_logger.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_nextflow_version.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_related_analyses/__init__.py +0 -0
- {cloudos_cli-2.89.2 → cloudos_cli-2.90.1}/tests/test_related_analyses/test_related_analyses.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudos_cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.90.1
|
|
4
4
|
Summary: Python package for interacting with the Lifebit Platform
|
|
5
5
|
Home-page: https://github.com/lifebit-ai/cloudos-cli
|
|
6
6
|
Author: David Piñeyro
|
|
@@ -2183,7 +2183,8 @@ cloudos interactive-session create \
|
|
|
2183
2183
|
|
|
2184
2184
|
**Data & Storage Management:**
|
|
2185
2185
|
- `--mount`: Mount a data file into the session. Supports both Lifebit Platform datasets and S3 files (AWS only). Format: `project_name/dataset_path` (e.g., `leila-test/Data/file.csv`) or `s3://bucket/path/to/file` (e.g., `s3://my-bucket/data/file.csv`). Can be used multiple times.
|
|
2186
|
-
- `--link`: Link a folder into the session for read/write access (AWS only). Supports S3 folders
|
|
2186
|
+
- `--link`: Link a folder into the session for read/write access (AWS only). Supports S3 folders (e.g., `s3://my-bucket/data/`) and File Explorer folders (e.g., `my-project/Data/results`). Multiple folders can be specified using multiple `--link` flags or as comma-separated paths in a single `--link` argument.
|
|
2187
|
+
**Note:** Linking is not supported on Azure. Use Lifebit Platform File Explorer for data access.
|
|
2187
2188
|
|
|
2188
2189
|
**Backend-Specific:**
|
|
2189
2190
|
- `--r-version`: R version for RStudio (options: `4.4.2`, `4.5.2`) - **optional for rstudio** (default: `4.4.2`)
|
|
@@ -2196,8 +2197,8 @@ cloudos interactive-session create \
|
|
|
2196
2197
|
**Data Management**
|
|
2197
2198
|
|
|
2198
2199
|
CloudOS CLI supports multiple ways to access data in interactive sessions, depending on your execution platform:
|
|
2199
|
-
-
|
|
2200
|
-
-
|
|
2200
|
+
- **Mount files** (`--mount`): Files are copied into the session's mounted-data volume. Supports CloudOS File Explorer files and S3 files (AWS only).
|
|
2201
|
+
- **Link folders** (`--link`): Folders are mounted as read/write accessible directories in the session (AWS only). Supports both S3 folders and Lifebit Platform File Explorer folders. Linked folders appear with unique mount names based on the folder path.
|
|
2201
2202
|
|
|
2202
2203
|
|
|
2203
2204
|
**Data Mounting Examples**
|
|
@@ -2212,7 +2213,7 @@ cloudos interactive-session create \
|
|
|
2212
2213
|
--mount "my_project/training_data.csv"
|
|
2213
2214
|
```
|
|
2214
2215
|
|
|
2215
|
-
Link an S3
|
|
2216
|
+
Link an S3 folder:
|
|
2216
2217
|
|
|
2217
2218
|
```bash
|
|
2218
2219
|
cloudos interactive-session create \
|
|
@@ -2222,15 +2223,36 @@ cloudos interactive-session create \
|
|
|
2222
2223
|
--link "s3://my-results-bucket/output/"
|
|
2223
2224
|
```
|
|
2224
2225
|
|
|
2225
|
-
Link
|
|
2226
|
+
Link a File Explorer folder:
|
|
2226
2227
|
|
|
2227
2228
|
```bash
|
|
2228
2229
|
cloudos interactive-session create \
|
|
2229
2230
|
--profile my_profile \
|
|
2230
|
-
--name "
|
|
2231
|
+
--name "File Explorer Access" \
|
|
2232
|
+
--session-type jupyter \
|
|
2233
|
+
--link "my-project/Data/results"
|
|
2234
|
+
```
|
|
2235
|
+
|
|
2236
|
+
Link multiple folders (using multiple --link flags):
|
|
2237
|
+
|
|
2238
|
+
```bash
|
|
2239
|
+
cloudos interactive-session create \
|
|
2240
|
+
--profile my_profile \
|
|
2241
|
+
--name "Multi-Folder Session" \
|
|
2231
2242
|
--session-type jupyter \
|
|
2232
2243
|
--link "s3://input-bucket/data/" \
|
|
2233
|
-
--link "s3://output-bucket/results/"
|
|
2244
|
+
--link "s3://output-bucket/results/" \
|
|
2245
|
+
--link "my-project/AnalysesResults/analysis_123/output"
|
|
2246
|
+
```
|
|
2247
|
+
|
|
2248
|
+
Link multiple folders (using comma-separated paths):
|
|
2249
|
+
|
|
2250
|
+
```bash
|
|
2251
|
+
cloudos interactive-session create \
|
|
2252
|
+
--profile my_profile \
|
|
2253
|
+
--name "Multi-Folder Session" \
|
|
2254
|
+
--session-type jupyter \
|
|
2255
|
+
--link "s3://bucket-1/data/,s3://bucket-2/results/,my-project/Data/analysis"
|
|
2234
2256
|
```
|
|
2235
2257
|
|
|
2236
2258
|
|
|
@@ -2797,7 +2819,8 @@ Link job-related folders or custom S3 paths to your interactive analysis session
|
|
|
2797
2819
|
- By default, links results, workdir, and logs folders
|
|
2798
2820
|
- Use `--results`, `--workdir`, or `--logs` flags to link only specific folders
|
|
2799
2821
|
|
|
2800
|
-
2. **Direct path linking** (PATH argument): Links
|
|
2822
|
+
2. **Direct path linking** (PATH argument): Links specific S3 or File Explorer paths. It supports a single path or comma-separated multiple paths.
|
|
2823
|
+
|
|
2801
2824
|
|
|
2802
2825
|
**Basic usage:**
|
|
2803
2826
|
|
|
@@ -2809,16 +2832,20 @@ cloudos link --job-id <JOB_ID> --session-id <SESSION_ID> --profile my_profile
|
|
|
2809
2832
|
cloudos link --job-id <JOB_ID> --session-id <SESSION_ID> --results --profile my_profile
|
|
2810
2833
|
cloudos link --job-id <JOB_ID> --session-id <SESSION_ID> --workdir --logs --profile my_profile
|
|
2811
2834
|
|
|
2812
|
-
# Link a
|
|
2835
|
+
# Link a single S3 path
|
|
2813
2836
|
cloudos link s3://bucket/folder --session-id <SESSION_ID> --profile my_profile
|
|
2814
2837
|
|
|
2838
|
+
# Link multiple S3 paths (comma-separated)
|
|
2839
|
+
cloudos link s3://bucket1/data,s3://bucket2/results,s3://bucket3/output --session-id <SESSION_ID> --profile my_profile
|
|
2840
|
+
|
|
2815
2841
|
# Link a File Explorer path (requires project name)
|
|
2816
2842
|
cloudos link "Data/MyFolder" --project-name my-project --session-id <SESSION_ID> --profile my_profile
|
|
2817
2843
|
```
|
|
2818
2844
|
|
|
2819
2845
|
**Command options:**
|
|
2820
2846
|
|
|
2821
|
-
|
|
2847
|
+
|
|
2848
|
+
- `PATH`: S3 or File Explorer path(s) to link (positional argument, required if `--job-id` is not provided). Supports comma-separated multiple paths for batch linking (e.g., `s3://bucket1/path1,s3://bucket2/path2`)
|
|
2822
2849
|
- `--apikey` / `-k`: Your Lifebit Platform API key (required)
|
|
2823
2850
|
- `--cloudos-url` / `-c`: The Lifebit Platform URL (default: https://cloudos.lifebit.ai)
|
|
2824
2851
|
- `--workspace-id`: The specific Lifebit Platform workspace ID (required)
|
|
@@ -2845,9 +2872,14 @@ cloudos link --job-id 62c83a1191fe06013b7ef355 --session-id abc123 --results --p
|
|
|
2845
2872
|
# Link workdir and logs (but not results)
|
|
2846
2873
|
cloudos link --job-id 62c83a1191fe06013b7ef355 --session-id abc123 --workdir --logs --profile my_profile
|
|
2847
2874
|
|
|
2848
|
-
# Link
|
|
2875
|
+
# Link a single S3 bucket folder
|
|
2849
2876
|
cloudos link s3://my-bucket/analysis-results/2024 --session-id abc123 --profile my_profile
|
|
2850
2877
|
|
|
2878
|
+
# Link multiple S3 folders in one command
|
|
2879
|
+
cloudos link s3://bucket1/data,s3://bucket2/results,s3://bucket3/final-output --session-id abc123 --profile my_profile
|
|
2880
|
+
|
|
2881
|
+
# Mix different S3 prefixes from the same or different buckets
|
|
2882
|
+
cloudos link s3://lifebit-datasets/pipelines/vep/,s3://lifebit-datasets/pipelines/phewas/,s3://my-results/output/ --session-id abc123 --profile my_profile
|
|
2851
2883
|
```
|
|
2852
2884
|
|
|
2853
2885
|
**Error handling:**
|
|
@@ -2148,7 +2148,8 @@ cloudos interactive-session create \
|
|
|
2148
2148
|
|
|
2149
2149
|
**Data & Storage Management:**
|
|
2150
2150
|
- `--mount`: Mount a data file into the session. Supports both Lifebit Platform datasets and S3 files (AWS only). Format: `project_name/dataset_path` (e.g., `leila-test/Data/file.csv`) or `s3://bucket/path/to/file` (e.g., `s3://my-bucket/data/file.csv`). Can be used multiple times.
|
|
2151
|
-
- `--link`: Link a folder into the session for read/write access (AWS only). Supports S3 folders
|
|
2151
|
+
- `--link`: Link a folder into the session for read/write access (AWS only). Supports S3 folders (e.g., `s3://my-bucket/data/`) and File Explorer folders (e.g., `my-project/Data/results`). Multiple folders can be specified using multiple `--link` flags or as comma-separated paths in a single `--link` argument.
|
|
2152
|
+
**Note:** Linking is not supported on Azure. Use Lifebit Platform File Explorer for data access.
|
|
2152
2153
|
|
|
2153
2154
|
**Backend-Specific:**
|
|
2154
2155
|
- `--r-version`: R version for RStudio (options: `4.4.2`, `4.5.2`) - **optional for rstudio** (default: `4.4.2`)
|
|
@@ -2161,8 +2162,8 @@ cloudos interactive-session create \
|
|
|
2161
2162
|
**Data Management**
|
|
2162
2163
|
|
|
2163
2164
|
CloudOS CLI supports multiple ways to access data in interactive sessions, depending on your execution platform:
|
|
2164
|
-
-
|
|
2165
|
-
-
|
|
2165
|
+
- **Mount files** (`--mount`): Files are copied into the session's mounted-data volume. Supports CloudOS File Explorer files and S3 files (AWS only).
|
|
2166
|
+
- **Link folders** (`--link`): Folders are mounted as read/write accessible directories in the session (AWS only). Supports both S3 folders and Lifebit Platform File Explorer folders. Linked folders appear with unique mount names based on the folder path.
|
|
2166
2167
|
|
|
2167
2168
|
|
|
2168
2169
|
**Data Mounting Examples**
|
|
@@ -2177,7 +2178,7 @@ cloudos interactive-session create \
|
|
|
2177
2178
|
--mount "my_project/training_data.csv"
|
|
2178
2179
|
```
|
|
2179
2180
|
|
|
2180
|
-
Link an S3
|
|
2181
|
+
Link an S3 folder:
|
|
2181
2182
|
|
|
2182
2183
|
```bash
|
|
2183
2184
|
cloudos interactive-session create \
|
|
@@ -2187,15 +2188,36 @@ cloudos interactive-session create \
|
|
|
2187
2188
|
--link "s3://my-results-bucket/output/"
|
|
2188
2189
|
```
|
|
2189
2190
|
|
|
2190
|
-
Link
|
|
2191
|
+
Link a File Explorer folder:
|
|
2191
2192
|
|
|
2192
2193
|
```bash
|
|
2193
2194
|
cloudos interactive-session create \
|
|
2194
2195
|
--profile my_profile \
|
|
2195
|
-
--name "
|
|
2196
|
+
--name "File Explorer Access" \
|
|
2197
|
+
--session-type jupyter \
|
|
2198
|
+
--link "my-project/Data/results"
|
|
2199
|
+
```
|
|
2200
|
+
|
|
2201
|
+
Link multiple folders (using multiple --link flags):
|
|
2202
|
+
|
|
2203
|
+
```bash
|
|
2204
|
+
cloudos interactive-session create \
|
|
2205
|
+
--profile my_profile \
|
|
2206
|
+
--name "Multi-Folder Session" \
|
|
2196
2207
|
--session-type jupyter \
|
|
2197
2208
|
--link "s3://input-bucket/data/" \
|
|
2198
|
-
--link "s3://output-bucket/results/"
|
|
2209
|
+
--link "s3://output-bucket/results/" \
|
|
2210
|
+
--link "my-project/AnalysesResults/analysis_123/output"
|
|
2211
|
+
```
|
|
2212
|
+
|
|
2213
|
+
Link multiple folders (using comma-separated paths):
|
|
2214
|
+
|
|
2215
|
+
```bash
|
|
2216
|
+
cloudos interactive-session create \
|
|
2217
|
+
--profile my_profile \
|
|
2218
|
+
--name "Multi-Folder Session" \
|
|
2219
|
+
--session-type jupyter \
|
|
2220
|
+
--link "s3://bucket-1/data/,s3://bucket-2/results/,my-project/Data/analysis"
|
|
2199
2221
|
```
|
|
2200
2222
|
|
|
2201
2223
|
|
|
@@ -2762,7 +2784,8 @@ Link job-related folders or custom S3 paths to your interactive analysis session
|
|
|
2762
2784
|
- By default, links results, workdir, and logs folders
|
|
2763
2785
|
- Use `--results`, `--workdir`, or `--logs` flags to link only specific folders
|
|
2764
2786
|
|
|
2765
|
-
2. **Direct path linking** (PATH argument): Links
|
|
2787
|
+
2. **Direct path linking** (PATH argument): Links specific S3 or File Explorer paths. It supports a single path or comma-separated multiple paths.
|
|
2788
|
+
|
|
2766
2789
|
|
|
2767
2790
|
**Basic usage:**
|
|
2768
2791
|
|
|
@@ -2774,16 +2797,20 @@ cloudos link --job-id <JOB_ID> --session-id <SESSION_ID> --profile my_profile
|
|
|
2774
2797
|
cloudos link --job-id <JOB_ID> --session-id <SESSION_ID> --results --profile my_profile
|
|
2775
2798
|
cloudos link --job-id <JOB_ID> --session-id <SESSION_ID> --workdir --logs --profile my_profile
|
|
2776
2799
|
|
|
2777
|
-
# Link a
|
|
2800
|
+
# Link a single S3 path
|
|
2778
2801
|
cloudos link s3://bucket/folder --session-id <SESSION_ID> --profile my_profile
|
|
2779
2802
|
|
|
2803
|
+
# Link multiple S3 paths (comma-separated)
|
|
2804
|
+
cloudos link s3://bucket1/data,s3://bucket2/results,s3://bucket3/output --session-id <SESSION_ID> --profile my_profile
|
|
2805
|
+
|
|
2780
2806
|
# Link a File Explorer path (requires project name)
|
|
2781
2807
|
cloudos link "Data/MyFolder" --project-name my-project --session-id <SESSION_ID> --profile my_profile
|
|
2782
2808
|
```
|
|
2783
2809
|
|
|
2784
2810
|
**Command options:**
|
|
2785
2811
|
|
|
2786
|
-
|
|
2812
|
+
|
|
2813
|
+
- `PATH`: S3 or File Explorer path(s) to link (positional argument, required if `--job-id` is not provided). Supports comma-separated multiple paths for batch linking (e.g., `s3://bucket1/path1,s3://bucket2/path2`)
|
|
2787
2814
|
- `--apikey` / `-k`: Your Lifebit Platform API key (required)
|
|
2788
2815
|
- `--cloudos-url` / `-c`: The Lifebit Platform URL (default: https://cloudos.lifebit.ai)
|
|
2789
2816
|
- `--workspace-id`: The specific Lifebit Platform workspace ID (required)
|
|
@@ -2810,9 +2837,14 @@ cloudos link --job-id 62c83a1191fe06013b7ef355 --session-id abc123 --results --p
|
|
|
2810
2837
|
# Link workdir and logs (but not results)
|
|
2811
2838
|
cloudos link --job-id 62c83a1191fe06013b7ef355 --session-id abc123 --workdir --logs --profile my_profile
|
|
2812
2839
|
|
|
2813
|
-
# Link
|
|
2840
|
+
# Link a single S3 bucket folder
|
|
2814
2841
|
cloudos link s3://my-bucket/analysis-results/2024 --session-id abc123 --profile my_profile
|
|
2815
2842
|
|
|
2843
|
+
# Link multiple S3 folders in one command
|
|
2844
|
+
cloudos link s3://bucket1/data,s3://bucket2/results,s3://bucket3/final-output --session-id abc123 --profile my_profile
|
|
2845
|
+
|
|
2846
|
+
# Mix different S3 prefixes from the same or different buckets
|
|
2847
|
+
cloudos link s3://lifebit-datasets/pipelines/vep/,s3://lifebit-datasets/pipelines/phewas/,s3://my-results/output/ --session-id abc123 --profile my_profile
|
|
2816
2848
|
```
|
|
2817
2849
|
|
|
2818
2850
|
**Error handling:**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.90.1'
|
|
@@ -341,6 +341,7 @@ def run_bash_job(ctx,
|
|
|
341
341
|
is_flag=True)
|
|
342
342
|
@click.option('-a', '--array-parameter',
|
|
343
343
|
multiple=True,
|
|
344
|
+
required=True,
|
|
344
345
|
help=('A single parameter to pass to the job call only for specifying array columns. ' +
|
|
345
346
|
'It should be in the following form: parameter_name=array_file_column_name. E.g.: ' +
|
|
346
347
|
'-a --test=value or -a -test=value or -a test=value or -a =value (for no prefix). ' +
|
|
@@ -2548,4 +2548,71 @@ class Cloudos:
|
|
|
2548
2548
|
# Return the status code (204 No Content is success)
|
|
2549
2549
|
return r.status_code
|
|
2550
2550
|
|
|
2551
|
+
def mount_fuse_filesystem_v2(self, session_id, team_id, payload, verify=True):
|
|
2552
|
+
"""Mount a FUSE filesystem into an interactive session (API v2).
|
|
2553
|
+
|
|
2554
|
+
Parameters
|
|
2555
|
+
----------
|
|
2556
|
+
session_id : string
|
|
2557
|
+
The session ID (MongoDB ObjectId) to mount filesystem to.
|
|
2558
|
+
team_id : string
|
|
2559
|
+
The CloudOS team id (workspace id).
|
|
2560
|
+
payload : dict
|
|
2561
|
+
FuseFileSystemMount payload with dataItems array configuration.
|
|
2562
|
+
For S3: {"dataItems": [{"type": "S3Folder", "data": {"name": str, "s3BucketName": str, "s3Prefix": str}}, ...]}
|
|
2563
|
+
For File Explorer: {"dataItems": [{"kind": "Folder", "item": str, "name": str}, ...]}
|
|
2564
|
+
verify: [bool|string], default=True
|
|
2565
|
+
Whether to use SSL verification or not. Alternatively, if
|
|
2566
|
+
a string is passed, it will be interpreted as the path to
|
|
2567
|
+
the SSL certificate file.
|
|
2568
|
+
|
|
2569
|
+
Returns
|
|
2570
|
+
-------
|
|
2571
|
+
int
|
|
2572
|
+
HTTP status code (204 for successful mount, no content returned).
|
|
2573
|
+
"""
|
|
2574
|
+
# Validate inputs
|
|
2575
|
+
if not session_id or not isinstance(session_id, str):
|
|
2576
|
+
raise ValueError("Invalid session_id: must be a non-empty string")
|
|
2577
|
+
if not team_id or not isinstance(team_id, str):
|
|
2578
|
+
raise ValueError("Invalid team_id: must be a non-empty string")
|
|
2579
|
+
|
|
2580
|
+
headers = {
|
|
2581
|
+
"Content-type": "application/json",
|
|
2582
|
+
"apikey": self.apikey
|
|
2583
|
+
}
|
|
2584
|
+
|
|
2585
|
+
# Build URL with v2 endpoint and teamId query parameter
|
|
2586
|
+
url = f"{self.cloudos_url}/api/v2/interactive-sessions/{session_id}/fuse-filesystem/mount?teamId={team_id}"
|
|
2587
|
+
|
|
2588
|
+
# Make the API request with POST method
|
|
2589
|
+
try:
|
|
2590
|
+
r = retry_requests_post(
|
|
2591
|
+
url,
|
|
2592
|
+
headers=headers,
|
|
2593
|
+
json=payload,
|
|
2594
|
+
verify=verify,
|
|
2595
|
+
timeout=30
|
|
2596
|
+
)
|
|
2597
|
+
except Exception as e:
|
|
2598
|
+
raise Exception(f"Failed to mount FUSE filesystem: {str(e)}")
|
|
2599
|
+
|
|
2600
|
+
if r.status_code >= 400:
|
|
2601
|
+
if r.status_code == 404:
|
|
2602
|
+
# Try to determine if it's a missing session or missing endpoint
|
|
2603
|
+
try:
|
|
2604
|
+
error_body = r.json() if r.content else {}
|
|
2605
|
+
error_message = error_body.get("message", "").lower()
|
|
2606
|
+
# If error mentions session, it's a session-not-found error
|
|
2607
|
+
if "session" in error_message:
|
|
2608
|
+
raise ValueError(f"Session not found: {session_id}")
|
|
2609
|
+
except (json.JSONDecodeError, AttributeError):
|
|
2610
|
+
pass
|
|
2611
|
+
# Otherwise, likely endpoint not available - raise generic 404
|
|
2612
|
+
raise BadRequestException(r)
|
|
2613
|
+
raise BadRequestException(r)
|
|
2614
|
+
|
|
2615
|
+
# Return the status code (204 No Content is success)
|
|
2616
|
+
return r.status_code
|
|
2617
|
+
|
|
2551
2618
|
|