cloudos-cli 2.62.0__tar.gz → 2.62.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.62.0 → cloudos_cli-2.62.1}/PKG-INFO +1 -1
- cloudos_cli-2.62.1/cloudos_cli/_version.py +1 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/datasets/datasets.py +15 -14
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli.egg-info/PKG-INFO +1 -1
- cloudos_cli-2.62.0/cloudos_cli/_version.py +0 -1
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/LICENSE +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/README.md +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/__main__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/clos.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/configure/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/configure/configure.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/cost/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/cost/cost.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/datasets/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/import_wf/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/import_wf/import_wf.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/jobs/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/jobs/job.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/link/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/link/link.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/logging/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/logging/logger.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/procurement/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/procurement/images.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/queue/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/queue/queue.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/array_job.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/cloud.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/details.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/errors.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/last_wf.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/requests.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli/utils/resources.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli.egg-info/SOURCES.txt +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli.egg-info/dependency_links.txt +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli.egg-info/entry_points.txt +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli.egg-info/requires.txt +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/cloudos_cli.egg-info/top_level.txt +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/setup.cfg +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/setup.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/functions_for_pytest.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/test_cli_project_create.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/test_cost/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/test_cost/test_job_cost.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/test_logging/__init__.py +0 -0
- {cloudos_cli-2.62.0 → cloudos_cli-2.62.1}/tests/test_logging/test_logger.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.62.1'
|
|
@@ -9,6 +9,7 @@ from cloudos_cli.utils.errors import BadRequestException
|
|
|
9
9
|
from cloudos_cli.utils.requests import retry_requests_get, retry_requests_put, retry_requests_post, retry_requests_delete
|
|
10
10
|
import json
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
@dataclass
|
|
13
14
|
class Datasets(Cloudos):
|
|
14
15
|
"""Class for file explorer.
|
|
@@ -105,7 +106,7 @@ class Datasets(Cloudos):
|
|
|
105
106
|
# Normalize response
|
|
106
107
|
for item in datasets:
|
|
107
108
|
item["folderType"] = True
|
|
108
|
-
response ={
|
|
109
|
+
response = {
|
|
109
110
|
"folders": datasets,
|
|
110
111
|
"files": []
|
|
111
112
|
}
|
|
@@ -144,7 +145,7 @@ class Datasets(Cloudos):
|
|
|
144
145
|
r = retry_requests_get("{}/api/v1/datasets/{}/items?teamId={}".format(self.cloudos_url,
|
|
145
146
|
folder_id,
|
|
146
147
|
self.workspace_id),
|
|
147
|
-
|
|
148
|
+
headers=headers, verify=self.verify)
|
|
148
149
|
if r.status_code >= 400:
|
|
149
150
|
raise BadRequestException(r)
|
|
150
151
|
return r.json()
|
|
@@ -175,7 +176,7 @@ class Datasets(Cloudos):
|
|
|
175
176
|
s3_bucket_name,
|
|
176
177
|
s3_relative_path,
|
|
177
178
|
self.workspace_id),
|
|
178
|
-
|
|
179
|
+
headers=headers, verify=self.verify)
|
|
179
180
|
if r.status_code >= 400:
|
|
180
181
|
raise BadRequestException(r)
|
|
181
182
|
raw = r.json()
|
|
@@ -218,11 +219,11 @@ class Datasets(Cloudos):
|
|
|
218
219
|
r = retry_requests_get("{}/api/v1/folders/virtual/{}/items?teamId={}".format(self.cloudos_url,
|
|
219
220
|
folder_id,
|
|
220
221
|
self.workspace_id),
|
|
221
|
-
|
|
222
|
+
headers=headers, verify=self.verify)
|
|
222
223
|
if r.status_code >= 400:
|
|
223
224
|
raise BadRequestException(r)
|
|
224
225
|
return r.json()
|
|
225
|
-
|
|
226
|
+
|
|
226
227
|
def list_azure_container_content(self, container_name: str, storage_account_name: str, path: str):
|
|
227
228
|
"""
|
|
228
229
|
List contents of an Azure Blob container path.
|
|
@@ -259,7 +260,7 @@ class Datasets(Cloudos):
|
|
|
259
260
|
"blobPrefix": path_str,
|
|
260
261
|
"blobContainerName": container_name,
|
|
261
262
|
"blobStorageAccountName": storage_account_name,
|
|
262
|
-
"kind": "Folder"
|
|
263
|
+
"kind": "Folder"
|
|
263
264
|
})
|
|
264
265
|
else:
|
|
265
266
|
normalized["files"].append({
|
|
@@ -271,7 +272,7 @@ class Datasets(Cloudos):
|
|
|
271
272
|
"blobStorageAccountName": storage_account_name,
|
|
272
273
|
"sizeInBytes": item.get("size", 0),
|
|
273
274
|
"updatedAt": item.get("lastModified"),
|
|
274
|
-
"kind": "File"
|
|
275
|
+
"kind": "File"
|
|
275
276
|
})
|
|
276
277
|
|
|
277
278
|
return normalized
|
|
@@ -337,7 +338,7 @@ class Datasets(Cloudos):
|
|
|
337
338
|
container_name = job_folder['blobContainerName']
|
|
338
339
|
storage_account_name = job_folder['blobStorageAccountName']
|
|
339
340
|
blob_prefix = job_folder['blobPrefix']
|
|
340
|
-
# trailing slash is mandatory for azure, otherwise it will not list the content of thefolde, just the folder
|
|
341
|
+
# trailing slash is mandatory for azure, otherwise it will not list the content of thefolde, just the folder
|
|
341
342
|
if not blob_prefix.endswith('/'):
|
|
342
343
|
blob_prefix += '/'
|
|
343
344
|
|
|
@@ -355,7 +356,7 @@ class Datasets(Cloudos):
|
|
|
355
356
|
raise ValueError(f"Folder '{job_name}' not found under dataset '{dataset_name}'")
|
|
356
357
|
|
|
357
358
|
return folder_content
|
|
358
|
-
|
|
359
|
+
|
|
359
360
|
def move_files_and_folders(self, source_id: str, source_kind: str, target_id: str, target_kind: str):
|
|
360
361
|
"""
|
|
361
362
|
Move a file to another dataset in CloudOS.
|
|
@@ -432,7 +433,7 @@ class Datasets(Cloudos):
|
|
|
432
433
|
if response.status_code >= 400:
|
|
433
434
|
raise BadRequestException(response)
|
|
434
435
|
return response
|
|
435
|
-
|
|
436
|
+
|
|
436
437
|
def copy_item(self, item, destination_id, destination_kind):
|
|
437
438
|
"""Copy a file or folder (S3, Azure or Virtual) to a destination in CloudOS."""
|
|
438
439
|
headers = {
|
|
@@ -454,7 +455,7 @@ class Datasets(Cloudos):
|
|
|
454
455
|
elif item.get("folderType") == "S3Folder":
|
|
455
456
|
payload = {
|
|
456
457
|
"s3BucketName": item["s3BucketName"],
|
|
457
|
-
"
|
|
458
|
+
"s3Prefix": item.get("s3Prefix"),
|
|
458
459
|
"name": item["name"],
|
|
459
460
|
"parent": parent,
|
|
460
461
|
"isManagedByLifebit": item.get("isManagedByLifebit", False)
|
|
@@ -500,7 +501,7 @@ class Datasets(Cloudos):
|
|
|
500
501
|
if response.status_code >= 400:
|
|
501
502
|
raise BadRequestException(response)
|
|
502
503
|
return response
|
|
503
|
-
|
|
504
|
+
|
|
504
505
|
def create_virtual_folder(self, name: str, parent_id: str, parent_kind: str):
|
|
505
506
|
"""
|
|
506
507
|
Create a new virtual folder in CloudOS under a given parent.
|
|
@@ -542,7 +543,7 @@ class Datasets(Cloudos):
|
|
|
542
543
|
if response.status_code >= 400:
|
|
543
544
|
raise BadRequestException(response)
|
|
544
545
|
return response
|
|
545
|
-
|
|
546
|
+
|
|
546
547
|
def delete_item(self, item_id: str, kind: str):
|
|
547
548
|
"""
|
|
548
549
|
Delete a file or folder in CloudOS.
|
|
@@ -573,4 +574,4 @@ class Datasets(Cloudos):
|
|
|
573
574
|
response = retry_requests_delete(url, headers=headers, verify=self.verify)
|
|
574
575
|
if response.status_code >= 400:
|
|
575
576
|
raise BadRequestException(response)
|
|
576
|
-
return response
|
|
577
|
+
return response
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.62.0'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|