NGPIris 5.2.2.dev5__tar.gz → 5.2.3.dev2__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.
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/cli/__init__.py +97 -41
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris.egg-info/PKG-INFO +1 -1
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/PKG-INFO +1 -1
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/pyproject.toml +1 -1
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/LICENSE +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/MANIFEST.in +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/__init__.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hci/__init__.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hci/exceptions.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hci/hci.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hci/helpers.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hcp/__init__.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hcp/exceptions.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hcp/hcp.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hcp/helpers.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/hcp/statistics.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/parse_credentials/__init__.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/parse_credentials/parse_credentials.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/utils/__init__.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris/utils/utils.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris.egg-info/SOURCES.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris.egg-info/dependency_links.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris.egg-info/entry_points.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris.egg-info/requires.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/NGPIris.egg-info/top_level.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/README.md +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/IRIS_5_changelog.md +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/Makefile +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/NGPIris.cli.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/NGPIris.hci.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/NGPIris.hcp.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/NGPIris.parse_credentials.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/NGPIris.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/NGPIris.utils.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/Tutorial.md +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/.DS_Store +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/IRIS_5_changelog.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.cli.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.hci.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.hcp.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.parse_credentials.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.utils.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/README.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/Tutorial.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/environment.pickle +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/index.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/modules.doctree +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/.buildinfo +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/IRIS_5_changelog.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/NGPIris.cli.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/NGPIris.hci.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/NGPIris.hcp.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/NGPIris.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/NGPIris.parse_credentials.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/NGPIris.utils.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/README.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/Tutorial.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_downloads/ee00c4f6f22dc2671c766f728f00006f/credentials_template.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/cli.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hci/exceptions.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hci/hci.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hci/helpers.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/exceptions.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/hcp.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/helpers.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/statistics.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/parse_credentials/parse_credentials.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/utils/utils.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/index.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/IRIS_5_changelog.md.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/NGPIris.cli.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/NGPIris.hci.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/NGPIris.hcp.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/NGPIris.parse_credentials.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/NGPIris.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/NGPIris.utils.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/README.md.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/Tutorial.md.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/index.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_sources/modules.rst.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/alabaster.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/basic.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/custom.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/debug.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/doctools.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/documentation_options.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/file.png +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/language_data.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/minus.png +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/plus.png +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/pygments.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/scripts/furo-extensions.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/scripts/furo.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/scripts/furo.js.LICENSE.txt +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/scripts/furo.js.map +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/searchtools.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/skeleton.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/sphinx_highlight.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/styles/furo-extensions.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/styles/furo-extensions.css.map +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/styles/furo.css +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/styles/furo.css.map +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/genindex.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/index.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/modules.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/objects.inv +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/py-modindex.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/search.html +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/searchindex.js +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/conf.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/index.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/make.bat +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/modules.rst +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/setup.cfg +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/.DS_Store +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/80MB_test_file +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/a folder of data/80MB_test_file_0 +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/a folder of data/80MB_test_file_1 +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/complete_creds_0.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/complete_creds_1.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/complete_creds_2.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/incomplete_creds_0.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/incomplete_creds_1.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/incomplete_creds_2.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/incomplete_creds_3.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/data/incomplete_creds_4.json +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/test_hci.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/test_hcp.py +0 -0
- {ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/tests/test_parse_credentials.py +0 -0
|
@@ -3,6 +3,7 @@ import click
|
|
|
3
3
|
from click.core import Context
|
|
4
4
|
from json import dump
|
|
5
5
|
from pathlib import Path
|
|
6
|
+
from boto3 import set_stream_logger
|
|
6
7
|
from botocore.paginate import PageIterator, Paginator
|
|
7
8
|
from typing import Any, Generator
|
|
8
9
|
from os import get_terminal_size
|
|
@@ -66,14 +67,22 @@ def add_trailing_slash(path : str) -> str:
|
|
|
66
67
|
|
|
67
68
|
@click.group()
|
|
68
69
|
@click.argument("credentials")
|
|
70
|
+
@click.option(
|
|
71
|
+
"--debug",
|
|
72
|
+
help = "Get the debug log for running a command",
|
|
73
|
+
is_flag = True
|
|
74
|
+
)
|
|
69
75
|
@click.version_option(package_name = "NGPIris")
|
|
70
76
|
@click.pass_context
|
|
71
|
-
def cli(context : Context, credentials : str):
|
|
77
|
+
def cli(context : Context, credentials : str, debug : bool):
|
|
72
78
|
"""
|
|
73
79
|
NGP Intelligence and Repository Interface Software, IRIS.
|
|
74
80
|
|
|
75
81
|
CREDENTIALS refers to the path to the JSON credentials file.
|
|
76
82
|
"""
|
|
83
|
+
if debug:
|
|
84
|
+
set_stream_logger(name="")
|
|
85
|
+
|
|
77
86
|
context.ensure_object(dict)
|
|
78
87
|
context.obj["hcph"] = HCPHandler(credentials)
|
|
79
88
|
|
|
@@ -81,8 +90,14 @@ def cli(context : Context, credentials : str):
|
|
|
81
90
|
@click.argument("bucket")
|
|
82
91
|
@click.argument("source")
|
|
83
92
|
@click.argument("destination")
|
|
93
|
+
@click.option(
|
|
94
|
+
"-dr",
|
|
95
|
+
"--dry_run",
|
|
96
|
+
help = "Simulate the command execution without making actual changes. Useful for testing and verification",
|
|
97
|
+
is_flag = True
|
|
98
|
+
)
|
|
84
99
|
@click.pass_context
|
|
85
|
-
def upload(context : Context, bucket : str, source : str, destination : str):
|
|
100
|
+
def upload(context : Context, bucket : str, source : str, destination : str, dry_run : bool):
|
|
86
101
|
"""
|
|
87
102
|
Upload files to an HCP bucket/namespace.
|
|
88
103
|
|
|
@@ -97,11 +112,17 @@ def upload(context : Context, bucket : str, source : str, destination : str):
|
|
|
97
112
|
destination = add_trailing_slash(destination)
|
|
98
113
|
if Path(source).is_dir():
|
|
99
114
|
source = add_trailing_slash(source)
|
|
100
|
-
|
|
115
|
+
if dry_run:
|
|
116
|
+
click.echo("This command would have uploaded the folder \"" + source + "\" to \"" + destination + "\"")
|
|
117
|
+
else:
|
|
118
|
+
hcph.upload_folder(source, destination)
|
|
101
119
|
else:
|
|
102
120
|
file_name = Path(source).name
|
|
103
121
|
destination += file_name
|
|
104
|
-
|
|
122
|
+
if dry_run:
|
|
123
|
+
click.echo("This command would have uploaded the file \"" + source + "\" to \"" + destination + "\"")
|
|
124
|
+
else:
|
|
125
|
+
hcph.upload_file(source, destination)
|
|
105
126
|
|
|
106
127
|
@cli.command()
|
|
107
128
|
@click.argument("bucket")
|
|
@@ -119,8 +140,14 @@ def upload(context : Context, bucket : str, source : str, destination : str):
|
|
|
119
140
|
help = "Ignore the download limit",
|
|
120
141
|
is_flag = True
|
|
121
142
|
)
|
|
143
|
+
@click.option(
|
|
144
|
+
"-dr",
|
|
145
|
+
"--dry_run",
|
|
146
|
+
help = "Simulate the command execution without making actual changes. Useful for testing and verification",
|
|
147
|
+
is_flag = True
|
|
148
|
+
)
|
|
122
149
|
@click.pass_context
|
|
123
|
-
def download(context : Context, bucket : str, source : str, destination : str, force : bool, ignore_warning : bool):
|
|
150
|
+
def download(context : Context, bucket : str, source : str, destination : str, force : bool, ignore_warning : bool, dry_run : bool):
|
|
124
151
|
"""
|
|
125
152
|
Download a file or folder from an HCP bucket/namespace.
|
|
126
153
|
|
|
@@ -134,45 +161,58 @@ def download(context : Context, bucket : str, source : str, destination : str, f
|
|
|
134
161
|
hcph.mount_bucket(bucket)
|
|
135
162
|
if not Path(destination).exists():
|
|
136
163
|
Path(destination).mkdir()
|
|
137
|
-
|
|
138
|
-
if
|
|
139
|
-
if source
|
|
140
|
-
source
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
object :
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
164
|
+
|
|
165
|
+
if not dry_run:
|
|
166
|
+
if object_is_folder(source, hcph):
|
|
167
|
+
if source == "/":
|
|
168
|
+
source = ""
|
|
169
|
+
|
|
170
|
+
cumulative_download_size = Byte(0)
|
|
171
|
+
if not ignore_warning:
|
|
172
|
+
click.echo("Computing download size...")
|
|
173
|
+
for object in hcph.list_objects(source):
|
|
174
|
+
object : dict
|
|
175
|
+
cumulative_download_size += Byte(object["Size"])
|
|
176
|
+
if cumulative_download_size >= TiB(1):
|
|
177
|
+
click.echo("WARNING: You are about to download more than 1 TB of data. Is this your intention? [y/N]: ", nl = False)
|
|
178
|
+
inp = click.getchar(True)
|
|
179
|
+
if inp == "y" or inp == "Y":
|
|
180
|
+
break
|
|
181
|
+
else: # inp == "n" or inp == "N" or something else
|
|
182
|
+
exit("\nAborting download")
|
|
183
|
+
|
|
184
|
+
hcph.download_folder(source, Path(destination).as_posix())
|
|
185
|
+
else:
|
|
186
|
+
if Byte(hcph.get_object(source)["ContentLength"]) >= TiB(1):
|
|
187
|
+
click.echo("WARNING: You are about to download more than 1 TB of data. Is this your intention? [y/N]: ", nl = False)
|
|
188
|
+
inp = click.getchar(True)
|
|
189
|
+
if inp == "y" or inp == "Y":
|
|
190
|
+
pass
|
|
191
|
+
else: # inp == "n" or inp == "N" or something else
|
|
192
|
+
exit("\nAborting download")
|
|
193
|
+
|
|
194
|
+
downloaded_source = Path(destination) / Path(source).name
|
|
195
|
+
if downloaded_source.exists() and not force:
|
|
196
|
+
exit("Object already exists. If you wish to overwrite the existing file, use the -f, --force option")
|
|
197
|
+
hcph.download_file(source, downloaded_source.as_posix())
|
|
157
198
|
else:
|
|
158
|
-
if
|
|
159
|
-
click.echo("
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
else: # inp == "n" or inp == "N" or something else
|
|
164
|
-
exit("\nAborting download")
|
|
165
|
-
|
|
166
|
-
downloaded_source = Path(destination) / Path(source).name
|
|
167
|
-
if downloaded_source.exists() and not force:
|
|
168
|
-
exit("Object already exists. If you wish to overwrite the existing file, use the -f, --force option")
|
|
169
|
-
hcph.download_file(source, downloaded_source.as_posix())
|
|
199
|
+
if object_is_folder(source, hcph):
|
|
200
|
+
click.echo("This command would have downloaded the folder \"" + source + "\". If you wish to know the contents of this folder, use the 'list-objects' command")
|
|
201
|
+
else:
|
|
202
|
+
click.echo("This command would have downloaded the object \"" + source + "\":")
|
|
203
|
+
click.echo(list(hcph.list_objects(source))[0])
|
|
170
204
|
|
|
171
205
|
@cli.command()
|
|
172
206
|
@click.argument("bucket")
|
|
173
207
|
@click.argument("object")
|
|
208
|
+
@click.option(
|
|
209
|
+
"-dr",
|
|
210
|
+
"--dry_run",
|
|
211
|
+
help = "Simulate the command execution without making actual changes. Useful for testing and verification",
|
|
212
|
+
is_flag = True
|
|
213
|
+
)
|
|
174
214
|
@click.pass_context
|
|
175
|
-
def delete_object(context : Context, bucket : str, object : str):
|
|
215
|
+
def delete_object(context : Context, bucket : str, object : str, dry_run : bool):
|
|
176
216
|
"""
|
|
177
217
|
Delete an object from an HCP bucket/namespace.
|
|
178
218
|
|
|
@@ -182,13 +222,24 @@ def delete_object(context : Context, bucket : str, object : str):
|
|
|
182
222
|
"""
|
|
183
223
|
hcph : HCPHandler = get_HCPHandler(context)
|
|
184
224
|
hcph.mount_bucket(bucket)
|
|
185
|
-
|
|
225
|
+
if not dry_run:
|
|
226
|
+
hcph.delete_object(object)
|
|
227
|
+
else:
|
|
228
|
+
click.echo("This command would delete:")
|
|
229
|
+
click.echo(list(hcph.list_objects(object))[0])
|
|
230
|
+
|
|
186
231
|
|
|
187
232
|
@cli.command()
|
|
188
233
|
@click.argument("bucket")
|
|
189
234
|
@click.argument("folder")
|
|
235
|
+
@click.option(
|
|
236
|
+
"-dr",
|
|
237
|
+
"--dry_run",
|
|
238
|
+
help = "Simulate the command execution without making actual changes. Useful for testing and verification",
|
|
239
|
+
is_flag = True
|
|
240
|
+
)
|
|
190
241
|
@click.pass_context
|
|
191
|
-
def delete_folder(context : Context, bucket : str, folder : str):
|
|
242
|
+
def delete_folder(context : Context, bucket : str, folder : str, dry_run : bool):
|
|
192
243
|
"""
|
|
193
244
|
Delete a folder from an HCP bucket/namespace.
|
|
194
245
|
|
|
@@ -198,7 +249,12 @@ def delete_folder(context : Context, bucket : str, folder : str):
|
|
|
198
249
|
"""
|
|
199
250
|
hcph : HCPHandler = get_HCPHandler(context)
|
|
200
251
|
hcph.mount_bucket(bucket)
|
|
201
|
-
|
|
252
|
+
if not dry_run:
|
|
253
|
+
hcph.delete_folder(folder)
|
|
254
|
+
else:
|
|
255
|
+
click.echo("By deleting \"" + folder + "\", the following objects would have been deleted (not including objects in sub-folders):")
|
|
256
|
+
for obj in hcph.list_objects(folder):
|
|
257
|
+
click.echo(obj)
|
|
202
258
|
|
|
203
259
|
@cli.command()
|
|
204
260
|
@click.pass_context
|
|
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
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/doctrees/NGPIris.parse_credentials.doctree
RENAMED
|
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
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hci/exceptions.html
RENAMED
|
File without changes
|
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hci/helpers.html
RENAMED
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/exceptions.html
RENAMED
|
File without changes
|
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/helpers.html
RENAMED
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/hcp/statistics.html
RENAMED
|
File without changes
|
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_modules/NGPIris/utils/utils.html
RENAMED
|
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
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/scripts/furo-extensions.js
RENAMED
|
File without changes
|
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/scripts/furo.js.LICENSE.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/styles/furo-extensions.css
RENAMED
|
File without changes
|
{ngpiris-5.2.2.dev5 → ngpiris-5.2.3.dev2}/docs/_build/html/_static/styles/furo-extensions.css.map
RENAMED
|
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
|