cloudos-cli 2.85.0__tar.gz → 2.86.0__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.
Files changed (76) hide show
  1. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/PKG-INFO +203 -117
  2. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/README.md +202 -116
  3. cloudos_cli-2.86.0/cloudos_cli/_version.py +1 -0
  4. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/clos.py +55 -1
  5. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/interactive_session/cli.py +356 -138
  6. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/interactive_session/interactive_session.py +184 -252
  7. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli.egg-info/PKG-INFO +203 -117
  8. cloudos_cli-2.85.0/cloudos_cli/_version.py +0 -1
  9. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/LICENSE +0 -0
  10. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/__init__.py +0 -0
  11. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/__main__.py +0 -0
  12. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/bash/__init__.py +0 -0
  13. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/bash/cli.py +0 -0
  14. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/configure/__init__.py +0 -0
  15. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/configure/cli.py +0 -0
  16. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/configure/configure.py +0 -0
  17. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/constants.py +0 -0
  18. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/cost/__init__.py +0 -0
  19. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/cost/cost.py +0 -0
  20. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/cromwell/__init__.py +0 -0
  21. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/cromwell/cli.py +0 -0
  22. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/datasets/__init__.py +0 -0
  23. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/datasets/cli.py +0 -0
  24. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/datasets/datasets.py +0 -0
  25. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/import_wf/__init__.py +0 -0
  26. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/import_wf/import_wf.py +0 -0
  27. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/interactive_session/__init__.py +0 -0
  28. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/jobs/__init__.py +0 -0
  29. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/jobs/cli.py +0 -0
  30. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/jobs/job.py +0 -0
  31. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/link/__init__.py +0 -0
  32. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/link/cli.py +0 -0
  33. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/link/link.py +0 -0
  34. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/logging/__init__.py +0 -0
  35. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/logging/logger.py +0 -0
  36. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/procurement/__init__.py +0 -0
  37. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/procurement/cli.py +0 -0
  38. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/procurement/images.py +0 -0
  39. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/projects/__init__.py +0 -0
  40. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/projects/cli.py +0 -0
  41. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/queue/__init__.py +0 -0
  42. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/queue/cli.py +0 -0
  43. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/queue/queue.py +0 -0
  44. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/related_analyses/__init__.py +0 -0
  45. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/related_analyses/related_analyses.py +0 -0
  46. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/__init__.py +0 -0
  47. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/array_job.py +0 -0
  48. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/cli_helpers.py +0 -0
  49. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/cloud.py +0 -0
  50. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/details.py +0 -0
  51. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/errors.py +0 -0
  52. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/last_wf.py +0 -0
  53. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/requests.py +0 -0
  54. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/utils/resources.py +0 -0
  55. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/workflows/__init__.py +0 -0
  56. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli/workflows/cli.py +0 -0
  57. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli.egg-info/SOURCES.txt +0 -0
  58. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli.egg-info/dependency_links.txt +0 -0
  59. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli.egg-info/entry_points.txt +0 -0
  60. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli.egg-info/requires.txt +0 -0
  61. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/cloudos_cli.egg-info/top_level.txt +0 -0
  62. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/setup.cfg +0 -0
  63. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/setup.py +0 -0
  64. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/__init__.py +0 -0
  65. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/functions_for_pytest.py +0 -0
  66. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_cli_project_create.py +0 -0
  67. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_cost/__init__.py +0 -0
  68. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_cost/test_job_cost.py +0 -0
  69. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_error_messages.py +0 -0
  70. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_interactive_session/__init__.py +0 -0
  71. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_interactive_session/test_create_session.py +0 -0
  72. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_interactive_session/test_list_sessions.py +0 -0
  73. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_logging/__init__.py +0 -0
  74. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_logging/test_logger.py +0 -0
  75. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/tests/test_related_analyses/__init__.py +0 -0
  76. {cloudos_cli-2.85.0 → cloudos_cli-2.86.0}/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.85.0
3
+ Version: 2.86.0
4
4
  Summary: Python package for interacting with CloudOS
5
5
  Home-page: https://github.com/lifebit-ai/cloudos-cli
6
6
  Author: David Piñeyro
@@ -100,9 +100,10 @@ Python package for interacting with CloudOS
100
100
  - [Use multiple projects for files in `--parameter` option](#use-multiple-projects-for-files-in---parameter-option)
101
101
  - [Interactive Sessions](#interactive-sessions)
102
102
  - [List Interactive Sessions](#list-interactive-sessions)
103
+ - [Create Interactive Session](#create-interactive-session)
103
104
  - [Get Interactive Session Status](#get-interactive-session-status)
104
105
  - [Pause Interactive Session](#pause-interactive-session)
105
- - [Create Interactive Session](#create-interactive-session)
106
+ - [Resume Interactive Session](#resume-interactive-session)
106
107
  - [Datasets](#datasets)
107
108
  - [List Files](#list-files)
108
109
  - [Move Files](#move-files)
@@ -2005,13 +2006,13 @@ The table displays sessions with pagination controls (press `n` for next page, `
2005
2006
 
2006
2007
  ```console
2007
2008
  Interactive Sessions
2008
- ┏━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━┓
2009
- ┃ Status ┃ Name ┃ Type ┃ ID ┃ Owner ┃
2010
- ┡━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━┩
2011
- │ paused │ cloudosR │ RStudio │ 69aee0dba197… │ Leila │
2012
- │ running │ analysis-dev │ Jupyter │ 69ae972a18f0… │ John │
2013
- │ paused │ test_session │ VS Code │ 69a996c098ab… │ James │
2014
- └─────────┴──────────────┴────────────────────┴───────────────┴────────┘
2009
+ ┏━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━┓
2010
+ ┃ Status ┃ Name ┃ Type ┃ ID ┃ Owner ┃
2011
+ ┡━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━┩
2012
+ │ paused │ cloudosR │ RStudio │ 69aee0dba197… │ Leila │
2013
+ │ running │ analysis-dev │ Jupyter │ 69ae972a18f0… │ John │
2014
+ │ paused │ test_session │ VS Code │ 69a996c098ab… │ James │
2015
+ └─────────┴──────────────┴────────────────┴───────────────┴────────┘
2015
2016
 
2016
2017
  Total sessions: 15
2017
2018
  Page: 1 of 3
@@ -2072,6 +2073,172 @@ cloudos interactive-session list --profile my_profile --table-columns "status,na
2072
2073
 
2073
2074
  Available columns: `backend`, `cost`, `cost_limit`, `created_at`, `id`, `instance`, `name`, `owner`, `project`, `resources`, `runtime`, `saved_at`, `spot`, `status`, `time_left`, `type`, `version`
2074
2075
 
2076
+ #### Create Interactive Session
2077
+
2078
+ You can create and start a new interactive session using the `cloudos interactive-session create` command. This command provisions a new virtual environment with your specified configuration.
2079
+
2080
+ The command automatically loads API credentials and workspace information from your profile configuration, so you only need to specify the session-specific details.
2081
+
2082
+ **Basic Usage**
2083
+
2084
+ Create a simple Jupyter notebook session:
2085
+
2086
+ ```bash
2087
+ cloudos interactive-session create \
2088
+ --profile my_profile \
2089
+ --name "My Analysis" \
2090
+ --session-type jupyter
2091
+ ```
2092
+
2093
+ Create an RStudio session with specific R version:
2094
+
2095
+ ```bash
2096
+ cloudos interactive-session create \
2097
+ --profile my_profile \
2098
+ --name "R Analysis" \
2099
+ --session-type rstudio \
2100
+ --r-version 4.4.2
2101
+ ```
2102
+
2103
+ Create a VS Code session (AWS only):
2104
+
2105
+ ```bash
2106
+ cloudos interactive-session create \
2107
+ --profile my_profile \
2108
+ --name "Development" \
2109
+ --session-type vscode
2110
+ ```
2111
+
2112
+ Create a Spark cluster session with custom instance types (AWS only):
2113
+
2114
+ ```bash
2115
+ cloudos interactive-session create \
2116
+ --profile my_profile \
2117
+ --name "Spark Analysis" \
2118
+ --session-type spark \
2119
+ --spark-master c5.2xlarge \
2120
+ --spark-core c5.xlarge \
2121
+ --spark-workers 3
2122
+ ```
2123
+
2124
+ **Configuration Options**
2125
+
2126
+ You can customize your session with various options:
2127
+
2128
+ ```bash
2129
+ cloudos interactive-session create \
2130
+ --profile my_profile \
2131
+ --name "Advanced Session" \
2132
+ --session-type jupyter \
2133
+ --instance c5.2xlarge \
2134
+ --storage 1000 \
2135
+ --spot \
2136
+ --shared \
2137
+ --cost-limit 50.0 \
2138
+ --shutdown-in 8h
2139
+ ```
2140
+
2141
+ **Required for Each Session:**
2142
+ - `--name`: Session name (1-100 characters)
2143
+ - `--session-type`: Type of backend - `jupyter`, `vscode`, `rstudio`, or `spark` (platform dependent)
2144
+
2145
+ **Optional Configuration:**
2146
+ - `--instance`: Instance type (default depends on execution platform: `c5.xlarge` for AWS, `Standard_F1s` for Azure)
2147
+ - `--storage`: Storage in GB (default: 500, range: 100-5000)
2148
+ - `--spot`: Use spot instances (AWS only, cost-saving)
2149
+ - `--shared`: Make session accessible to workspace members
2150
+ - `--cost-limit`: Compute cost limit in USD (default: -1 for unlimited)
2151
+ - `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`)
2152
+
2153
+ **Data & Storage Management:**
2154
+ - `--mount`: Mount a data file into the session. Supports both CloudOS 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.
2155
+ - `--link`: Link a folder into the session for read/write access (AWS only). Supports S3 folders and CloudOS folders. Format: `s3://bucket/prefix` (e.g., `s3://my-bucket/data/`) or `project_name/folder_path` (e.g., `leila-test/AnalysesResults/analysis_id/results`). Can be used multiple times. **Note:** Linking is not supported on Azure. Use CloudOS file explorer for data access.
2156
+
2157
+ **Backend-Specific:**
2158
+ - `--r-version`: R version for RStudio (options: `4.4.2`, `4.5.2`) - **optional for rstudio** (default: `4.4.2`)
2159
+ - `--spark-master`: Master instance type for Spark (default: `c5.2xlarge`)
2160
+ - `--spark-core`: Core instance type for Spark (default: `c5.xlarge`)
2161
+ - `--spark-workers`: Initial worker count for Spark (default: 1)
2162
+ - `--verbose`: Show detailed progress messages
2163
+
2164
+
2165
+ **Data Management**
2166
+
2167
+ CloudOS CLI supports multiple ways to access data in interactive sessions, depending on your execution platform:
2168
+ - you can load data directly into the session (i.e. files are copied into the session's mounted-data volume)
2169
+ - you can link folders to your session (i.e the folders are sym-linked to the session). This works only for folders (S3-based) and only in AWS enviornments.
2170
+
2171
+
2172
+ **Data Mounting Examples**
2173
+
2174
+ Mount a file from File Explorer:
2175
+
2176
+ ```bash
2177
+ cloudos interactive-session create \
2178
+ --profile my_profile \
2179
+ --name "Data Analysis" \
2180
+ --session-type jupyter \
2181
+ --mount "my_project/training_data.csv"
2182
+ ```
2183
+
2184
+ Link an S3 bucket:
2185
+
2186
+ ```bash
2187
+ cloudos interactive-session create \
2188
+ --profile my_profile \
2189
+ --name "S3 Access" \
2190
+ --session-type jupyter \
2191
+ --link "s3://my-results-bucket/output/"
2192
+ ```
2193
+
2194
+ Link multiple S3 buckets:
2195
+
2196
+ ```bash
2197
+ cloudos interactive-session create \
2198
+ --profile my_profile \
2199
+ --name "Multi-S3 Session" \
2200
+ --session-type jupyter \
2201
+ --link "s3://input-bucket/data/" \
2202
+ --link "s3://output-bucket/results/"
2203
+ ```
2204
+
2205
+
2206
+
2207
+ This will show progress updates like:
2208
+
2209
+ ```console
2210
+ ✓ Interactive Session Created Successfully
2211
+
2212
+ ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
2213
+ ┃ Property ┃ Value ┃
2214
+ ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩
2215
+ │ Session ID │ 69aee0dba197abc123 │
2216
+ │ Name │ Ready Session │
2217
+ │ Backend │ awsJupyterNotebook │
2218
+ │ Status │ initialising │
2219
+ └─────────────┴─────────────────────┘
2220
+ ```
2221
+ ```
2222
+
2223
+ **Output Display**
2224
+
2225
+ The session creation output displays a success message with session details:
2226
+
2227
+ ```bash
2228
+ cloudos interactive-session create \
2229
+ --profile my_profile \
2230
+ --name "My Session" \
2231
+ --session-type jupyter
2232
+ ```
2233
+
2234
+ The output shows the session details including:
2235
+ - Session ID
2236
+ - Session name
2237
+ - Backend type (jupyter, vscode, rstudio, spark)
2238
+ - Current status (scheduled, initialising, setup, running, paused)
2239
+
2240
+
2241
+
2075
2242
  #### Get Interactive Session Status
2076
2243
 
2077
2244
  You can retrieve detailed status information for a specific interactive session using the `cloudos interactive-session status` command. This command provides comprehensive information about the session including its current state, resource allocation, costs, and more.
@@ -2093,7 +2260,7 @@ The command displays session information in a formatted table:
2093
2260
  ║ Session ID ║ 69bc00cb1488084e5a6cae70 ║
2094
2261
  ║ Name ║ analysis-dev (linked) ║
2095
2262
  ║ Status ║ running ║
2096
- ║ Backend ║ awsJupyterNotebook
2263
+ ║ Backend ║ Jupyter
2097
2264
  ║ Owner ║ John Doe ║
2098
2265
  ║ Project ║ research ║
2099
2266
  ║ Instance Type ║ c5.xlarge ║
@@ -2274,7 +2441,7 @@ Pausing session...
2274
2441
  Status: shutting_down
2275
2442
  Status: uploading_data
2276
2443
  Status: cleaning_up
2277
- Status: stopped
2444
+ Status: paused
2278
2445
  ✓ Session paused successfully
2279
2446
  ```
2280
2447
 
@@ -2350,142 +2517,61 @@ The command automatically loads from profile (via `@with_profile_config` decorat
2350
2517
  - `--ssl-cert`: Path to SSL certificate file
2351
2518
  - `--profile`: Profile to use from config file (default: default profile)
2352
2519
 
2353
- #### Create Interactive Session
2520
+ #### Resume Interactive Session
2354
2521
 
2355
- You can create and start a new interactive session using the `cloudos interactive-session create` command. This command provisions a new virtual environment with your specified configuration.
2522
+ Resume a paused interactive session with optional configuration updates. You can change instance type, storage, cost limit, auto-shutdown time, and mount additional data files or folders when resuming.
2356
2523
 
2357
- The command automatically loads API credentials and workspace information from your profile configuration, so you only need to specify the session-specific details.
2358
2524
 
2359
2525
  **Basic Usage**
2360
2526
 
2361
- Create a simple Jupyter notebook session:
2527
+ Resume a paused session:
2362
2528
 
2363
2529
  ```bash
2364
- cloudos interactive-session create \
2365
- --profile my_profile \
2366
- --name "My Analysis" \
2367
- --session-type jupyter
2530
+ cloudos interactive-session resume --session-id <SESSION_ID> --profile my_profile
2368
2531
  ```
2369
2532
 
2370
- Create an RStudio session with specific R version:
2533
+ Resume with updated instance type:
2371
2534
 
2372
2535
  ```bash
2373
- cloudos interactive-session create \
2374
- --profile my_profile \
2375
- --name "R Analysis" \
2376
- --session-type rstudio \
2377
- --r-version 4.4.2
2378
- ```
2379
-
2380
- Create a VS Code session (AWS only):
2381
-
2382
- ```bash
2383
- cloudos interactive-session create \
2384
- --profile my_profile \
2385
- --name "Development" \
2386
- --session-type vscode
2387
- ```
2388
-
2389
- Create a Spark cluster session with custom instance types (AWS only):
2390
-
2391
- ```bash
2392
- cloudos interactive-session create \
2536
+ cloudos interactive-session resume \
2537
+ --session-id <SESSION_ID> \
2393
2538
  --profile my_profile \
2394
- --name "Spark Analysis" \
2395
- --session-type spark \
2396
- --spark-master c5.2xlarge \
2397
- --spark-core c5.xlarge \
2398
- --spark-workers 3
2539
+ --instance c5.2xlarge
2399
2540
  ```
2400
2541
 
2401
- **Configuration Options**
2402
-
2403
- You can customize your session with various options:
2542
+ Resume with multiple updates:
2404
2543
 
2405
2544
  ```bash
2406
- cloudos interactive-session create \
2545
+ cloudos interactive-session resume \
2546
+ --session-id <SESSION_ID> \
2407
2547
  --profile my_profile \
2408
- --name "Advanced Session" \
2409
- --session-type jupyter \
2410
- --instance c5.2xlarge \
2548
+ --instance m5.xlarge \
2411
2549
  --storage 1000 \
2412
- --spot \
2413
- --shared \
2414
2550
  --cost-limit 50.0 \
2415
- --shutdown-in 8h
2551
+ --shutdown-in 12h
2416
2552
  ```
2417
2553
 
2418
- **Required for Each Session:**
2419
- - `--name`: Session name (1-100 characters)
2420
- - `--session-type`: Type of backend - `jupyter`, `vscode`, `rstudio`, or `spark` (platform dependent)
2554
+ **Mount Additional Data**
2421
2555
 
2422
- **Optional Configuration:**
2423
- - `--instance`: Instance type (default depends on execution platform: `c5.xlarge` for AWS, `Standard_F1s` for Azure)
2424
- - `--storage`: Storage in GB (default: 500, range: 100-5000)
2425
- - `--spot`: Use spot instances (AWS only, cost-saving)
2426
- - `--shared`: Make session accessible to workspace members
2427
- - `--cost-limit`: Compute cost limit in USD (default: -1 for unlimited)
2428
- - `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`)
2429
-
2430
- **Data & Storage Management:**
2431
- - `--mount`: Mount a data file into the session. Supports both CloudOS 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.
2432
- - `--link`: Link a folder into the session for read/write access (AWS only). Supports S3 folders and CloudOS folders. Format: `s3://bucket/prefix` (e.g., `s3://my-bucket/data/`) or `project_name/folder_path` (e.g., `leila-test/AnalysesResults/analysis_id/results`). Can be used multiple times. **Note:** Linking is not supported on Azure. Use CloudOS file explorer for data access.
2433
-
2434
- **Backend-Specific:**
2435
- - `--r-version`: R version for RStudio (options: `4.4.2`, `4.5.2`) - **optional for rstudio** (default: `4.4.2`)
2436
- - `--spark-master`: Master instance type for Spark (default: `c5.2xlarge`)
2437
- - `--spark-core`: Core instance type for Spark (default: `c5.xlarge`)
2438
- - `--spark-workers`: Initial worker count for Spark (default: 1)
2439
- - `--verbose`: Show detailed progress messages
2440
-
2441
-
2442
- **Data Management**
2443
-
2444
- CloudOS CLI supports multiple ways to access data in interactive sessions, depending on your execution platform:
2445
- - you can load data directly into the session (i.e. files are copied into the session's mounted-data volume)
2446
- - you can link folders to your session (i.e the folders are sym-linked to the session). This works only for folders (S3-based) and only in AWS enviornments.
2447
-
2448
-
2449
- **Data Mounting Examples**
2450
-
2451
- Mount a file from File Explorer:
2452
-
2453
- ```bash
2454
- cloudos interactive-session create \
2455
- --profile my_profile \
2456
- --name "Data Analysis" \
2457
- --session-type jupyter \
2458
- --mount "my_project/training_data.csv"
2459
- ```
2460
-
2461
- Link an S3 bucket:
2556
+ Resume and mount additional files:
2462
2557
 
2463
2558
  ```bash
2464
- cloudos interactive-session create \
2559
+ cloudos interactive-session resume \
2560
+ --session-id <SESSION_ID> \
2465
2561
  --profile my_profile \
2466
- --name "S3 Access" \
2467
- --session-type jupyter \
2468
- --link "s3://my-results-bucket/output/"
2562
+ --mount my-project/Data/new-dataset.csv \
2563
+ --mount s3://my-bucket/data/file.txt
2469
2564
  ```
2470
2565
 
2471
2566
 
2472
- **Output Display**
2473
-
2474
- The session creation output displays a success message with session details:
2475
-
2476
- ```bash
2477
- cloudos interactive-session create \
2478
- --profile my_profile \
2479
- --name "My Session" \
2480
- --session-type jupyter
2481
- ```
2567
+ **Configuration Updates**
2482
2568
 
2483
- The output shows the session details including:
2484
- - Session ID
2485
- - Session name
2486
- - Backend type (jupyter, vscode, rstudio, spark)
2487
- - Current status (scheduled, initialising, setup, running, paused)
2569
+ All configuration parameters are optional. If not specified, the session resumes with its previous configuration.
2488
2570
 
2571
+ - `--instance <TYPE>` - Change instance type (validated by platform)
2572
+ - `--storage <GB>` - Update storage size (100-5000 GB)
2573
+ - `--cost-limit <USD>` - Update compute cost limit (-1 for unlimited)
2574
+ - `--shutdown-in <DURATION>` - Update auto-shutdown time (e.g., 8h, 2d)
2489
2575
 
2490
2576
  ### Datasets
2491
2577