vss-cli 2025.2.1.dev4__tar.gz → 2025.3.0.dev0__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.
- {vss_cli-2025.2.1.dev4/vss_cli.egg-info → vss_cli-2025.3.0.dev0}/PKG-INFO +5 -4
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/autocompletion.py +3 -5
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/const.py +1 -1
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data/clib.yaml +1 -1
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data/clone.yaml +1 -1
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data/shell.yaml +1 -1
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data/template.yaml +1 -1
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/vm.py +15 -11
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0/vss_cli.egg-info}/PKG-INFO +5 -4
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli.egg-info/requires.txt +1 -1
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/LICENSE +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/README.md +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/pyproject.toml +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/setup.cfg +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/setup.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/tests/test_vss_cli.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/__init__.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/cli.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/config.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data/config.yaml +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data/image.yaml +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/data_types.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/exceptions.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/hcio.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/helper.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/__init__.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/account.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/assist.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/completion.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/__init__.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/callbacks.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/contentlib.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/domain.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/floppy.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/folder.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/helper.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/image.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/inventory.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/iso.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/net.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/os.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/rel_args.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/rel_opts.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/template.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/vmdks.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/configure.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/key.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/message.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/misc.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/ovf.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/plugins.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/raw.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/__init__.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/change.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/export.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/folder.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/image.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/inventory.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/new.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/restore.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/retirement.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/snapshot.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/vmdk.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/service.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/shell.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/status.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/stor.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/token.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/upgrade.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/vpn.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/rel_opts.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/sstatus.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/utils/__init__.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/utils/emoji.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/utils/threading.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/validators.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/vss.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/vssconst.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/yaml.py +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli.egg-info/SOURCES.txt +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli.egg-info/dependency_links.txt +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli.egg-info/entry_points.txt +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli.egg-info/not-zip-safe +0 -0
- {vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli.egg-info/top_level.txt +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: vss-cli
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.3.0.dev0
|
|
4
4
|
Summary: ITS Private Cloud Command Line Interface
|
|
5
5
|
Home-page: https://gitlab-ee.eis.utoronto.ca/vss/vss-cli
|
|
6
|
-
Download-URL: https://gitlab-ee.eis.utoronto.ca/vss/vss-cli/archive/2025.
|
|
6
|
+
Download-URL: https://gitlab-ee.eis.utoronto.ca/vss/vss-cli/archive/2025.3.0-dev0.zip
|
|
7
7
|
Author: University of Toronto
|
|
8
8
|
Author-email: vss-apps@eis.utoronto.ca
|
|
9
9
|
Maintainer-email: vss-py@eis.utoronto.ca
|
|
@@ -25,7 +25,7 @@ Classifier: Topic :: System :: Systems Administration
|
|
|
25
25
|
Requires-Python: >=3.8.5
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist: pyvss>=2025.2.
|
|
28
|
+
Requires-Dist: pyvss>=2025.2.1
|
|
29
29
|
Requires-Dist: click==8.1.8
|
|
30
30
|
Requires-Dist: click-log==0.4.0
|
|
31
31
|
Requires-Dist: click-plugins==1.1.1
|
|
@@ -74,6 +74,7 @@ Dynamic: author-email
|
|
|
74
74
|
Dynamic: download-url
|
|
75
75
|
Dynamic: home-page
|
|
76
76
|
Dynamic: license
|
|
77
|
+
Dynamic: license-file
|
|
77
78
|
Dynamic: maintainer-email
|
|
78
79
|
Dynamic: project-url
|
|
79
80
|
Dynamic: provides-extra
|
|
@@ -35,6 +35,7 @@ def to_completion_item(func: Callable):
|
|
|
35
35
|
|
|
36
36
|
def wrapper_tci(*args, **kwargs):
|
|
37
37
|
results = func(*args, **kwargs)
|
|
38
|
+
|
|
38
39
|
return [CompletionItem(item[0], help=f'{item[1]}') for item in results]
|
|
39
40
|
|
|
40
41
|
return wrapper_tci
|
|
@@ -65,7 +66,6 @@ def _autocomplete(
|
|
|
65
66
|
completions.append(r)
|
|
66
67
|
|
|
67
68
|
completions.sort(key=lambda x: x[sort_index])
|
|
68
|
-
|
|
69
69
|
return [c for c in completions if incomplete in c[complete_index]]
|
|
70
70
|
return completions
|
|
71
71
|
|
|
@@ -223,9 +223,7 @@ def folders(
|
|
|
223
223
|
return _autocomplete(
|
|
224
224
|
ctx.client.get_folders,
|
|
225
225
|
incomplete,
|
|
226
|
-
['
|
|
227
|
-
sort_index=1,
|
|
228
|
-
complete_index=1,
|
|
226
|
+
['path'],
|
|
229
227
|
f_kwargs={
|
|
230
228
|
"show_all": True,
|
|
231
229
|
"sort": "path,desc",
|
|
@@ -244,7 +242,7 @@ def networks(
|
|
|
244
242
|
return _autocomplete(
|
|
245
243
|
ctx.client.get_networks,
|
|
246
244
|
incomplete,
|
|
247
|
-
['
|
|
245
|
+
['name', 'label'],
|
|
248
246
|
sort_index=1,
|
|
249
247
|
complete_index=1,
|
|
250
248
|
f_kwargs={"show_all": True, "sort": "label,desc", "per_page": 500},
|
|
@@ -4902,17 +4902,19 @@ def compute_vm_set_ubuntu_pro(ctx: Configuration, action):
|
|
|
4902
4902
|
ctx.wait_for_request_to(obj)
|
|
4903
4903
|
|
|
4904
4904
|
|
|
4905
|
-
@compute_vm_set.command(
|
|
4905
|
+
@compute_vm_set.command(
|
|
4906
|
+
'encryption', short_help='Encrypt or decrypt a virtual machine'
|
|
4907
|
+
)
|
|
4906
4908
|
@click.argument(
|
|
4907
4909
|
'action',
|
|
4908
|
-
type=click.Choice(['on']),
|
|
4910
|
+
type=click.Choice(['on', 'off']),
|
|
4909
4911
|
required=True,
|
|
4910
4912
|
)
|
|
4911
4913
|
@click.option(
|
|
4912
4914
|
'-f',
|
|
4913
4915
|
'--force',
|
|
4914
4916
|
is_flag=True,
|
|
4915
|
-
help='
|
|
4917
|
+
help='Power off before encryption.',
|
|
4916
4918
|
)
|
|
4917
4919
|
@click.option(
|
|
4918
4920
|
'-o', '--power-on', is_flag=True, help='Power of after encrypting.'
|
|
@@ -4921,23 +4923,25 @@ def compute_vm_set_ubuntu_pro(ctx: Configuration, action):
|
|
|
4921
4923
|
def compute_vm_set_encryption(
|
|
4922
4924
|
ctx: "Configuration", action: str, force: bool, power_on: bool
|
|
4923
4925
|
):
|
|
4924
|
-
"""
|
|
4926
|
+
"""Manage virtual machine encryption.
|
|
4925
4927
|
|
|
4926
|
-
vss-cli compute vm set <name-or-vm_id> encryption on
|
|
4928
|
+
vss-cli compute vm set <name-or-vm_id> encryption on|off
|
|
4927
4929
|
|
|
4928
|
-
Encrypt the data stored on a virtual machine's virtual disks,
|
|
4930
|
+
Encrypt or decrypt the data stored on a virtual machine's virtual disks,
|
|
4929
4931
|
protecting sensitive information.
|
|
4930
4932
|
"""
|
|
4931
4933
|
if not ctx.is_powered_off_vm(ctx.moref) and not force:
|
|
4932
4934
|
raise VssCliError(
|
|
4933
4935
|
'Cannot perform operation in current power state: poweredOn'
|
|
4934
4936
|
)
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4937
|
+
lookup = {'on': ctx.encrypt_vm, 'off': ctx.decrypt_vm}
|
|
4938
|
+
try:
|
|
4939
|
+
payload = {'vm_id': ctx.moref, 'force': force, 'power_on': power_on}
|
|
4940
|
+
ref = lookup[action]
|
|
4941
|
+
except KeyError:
|
|
4940
4942
|
raise VssCliError('Invalid action')
|
|
4943
|
+
# submit
|
|
4944
|
+
obj = ref(**payload)
|
|
4941
4945
|
# print
|
|
4942
4946
|
columns = ctx.columns or const.COLUMNS_REQUEST_SUBMITTED
|
|
4943
4947
|
ctx.echo(format_output(ctx, [obj], columns=columns, single=True))
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: vss-cli
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.3.0.dev0
|
|
4
4
|
Summary: ITS Private Cloud Command Line Interface
|
|
5
5
|
Home-page: https://gitlab-ee.eis.utoronto.ca/vss/vss-cli
|
|
6
|
-
Download-URL: https://gitlab-ee.eis.utoronto.ca/vss/vss-cli/archive/2025.
|
|
6
|
+
Download-URL: https://gitlab-ee.eis.utoronto.ca/vss/vss-cli/archive/2025.3.0-dev0.zip
|
|
7
7
|
Author: University of Toronto
|
|
8
8
|
Author-email: vss-apps@eis.utoronto.ca
|
|
9
9
|
Maintainer-email: vss-py@eis.utoronto.ca
|
|
@@ -25,7 +25,7 @@ Classifier: Topic :: System :: Systems Administration
|
|
|
25
25
|
Requires-Python: >=3.8.5
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist: pyvss>=2025.2.
|
|
28
|
+
Requires-Dist: pyvss>=2025.2.1
|
|
29
29
|
Requires-Dist: click==8.1.8
|
|
30
30
|
Requires-Dist: click-log==0.4.0
|
|
31
31
|
Requires-Dist: click-plugins==1.1.1
|
|
@@ -74,6 +74,7 @@ Dynamic: author-email
|
|
|
74
74
|
Dynamic: download-url
|
|
75
75
|
Dynamic: home-page
|
|
76
76
|
Dynamic: license
|
|
77
|
+
Dynamic: license-file
|
|
77
78
|
Dynamic: maintainer-email
|
|
78
79
|
Dynamic: project-url
|
|
79
80
|
Dynamic: provides-extra
|
|
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
|
{vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/callbacks.py
RENAMED
|
File without changes
|
{vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/contentlib.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/compute_plugins/inventory.py
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
|
{vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/inventory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vss_cli-2025.2.1.dev4 → vss_cli-2025.3.0.dev0}/vss_cli/plugins/request_plugins/retirement.py
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
|