vss-cli 2025.6.0.dev0__tar.gz → 2025.6.0.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.
Files changed (85) hide show
  1. {vss_cli-2025.6.0.dev0/vss_cli.egg-info → vss_cli-2025.6.0.dev2}/PKG-INFO +2 -2
  2. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/pyproject.toml +1 -1
  3. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/const.py +1 -1
  4. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data/clib.yaml +1 -1
  5. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data/clone.yaml +1 -1
  6. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data/shell.yaml +1 -1
  7. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data/template.yaml +1 -1
  8. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/vm.py +16 -11
  9. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2/vss_cli.egg-info}/PKG-INFO +2 -2
  10. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli.egg-info/requires.txt +1 -1
  11. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/LICENSE +0 -0
  12. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/README.md +0 -0
  13. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/docs/conf.py +0 -0
  14. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/setup.cfg +0 -0
  15. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/tests/test_vss_cli.py +0 -0
  16. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/__init__.py +0 -0
  17. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/autocompletion.py +0 -0
  18. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/cli.py +0 -0
  19. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/config.py +0 -0
  20. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data/config.yaml +0 -0
  21. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data/image.yaml +0 -0
  22. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/data_types.py +0 -0
  23. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/exceptions.py +0 -0
  24. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/hcio.py +0 -0
  25. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/helper.py +0 -0
  26. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/__init__.py +0 -0
  27. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/account.py +0 -0
  28. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/assist.py +0 -0
  29. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/completion.py +0 -0
  30. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute.py +0 -0
  31. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/__init__.py +0 -0
  32. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/callbacks.py +0 -0
  33. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/contentlib.py +0 -0
  34. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/domain.py +0 -0
  35. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/floppy.py +0 -0
  36. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/folder.py +0 -0
  37. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/helper.py +0 -0
  38. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/image.py +0 -0
  39. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/inventory.py +0 -0
  40. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/iso.py +0 -0
  41. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/net.py +0 -0
  42. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/os.py +0 -0
  43. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/rel_args.py +0 -0
  44. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/rel_opts.py +0 -0
  45. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/template.py +0 -0
  46. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/compute_plugins/vmdks.py +0 -0
  47. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/configure.py +0 -0
  48. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/key.py +0 -0
  49. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/message.py +0 -0
  50. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/misc.py +0 -0
  51. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/ovf.py +0 -0
  52. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/plugins.py +0 -0
  53. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/raw.py +0 -0
  54. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request.py +0 -0
  55. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/__init__.py +0 -0
  56. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/change.py +0 -0
  57. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/export.py +0 -0
  58. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/folder.py +0 -0
  59. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/image.py +0 -0
  60. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/inventory.py +0 -0
  61. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/new.py +0 -0
  62. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/restore.py +0 -0
  63. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/retirement.py +0 -0
  64. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/snapshot.py +0 -0
  65. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/request_plugins/vmdk.py +0 -0
  66. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/service.py +0 -0
  67. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/shell.py +0 -0
  68. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/status.py +0 -0
  69. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/stor.py +0 -0
  70. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/token.py +0 -0
  71. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/upgrade.py +0 -0
  72. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/plugins/vpn.py +0 -0
  73. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/rel_opts.py +0 -0
  74. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/sstatus.py +0 -0
  75. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/utils/__init__.py +0 -0
  76. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/utils/emoji.py +0 -0
  77. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/utils/threading.py +0 -0
  78. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/validators.py +0 -0
  79. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/vss.py +0 -0
  80. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/vssconst.py +0 -0
  81. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli/yaml.py +0 -0
  82. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli.egg-info/SOURCES.txt +0 -0
  83. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli.egg-info/dependency_links.txt +0 -0
  84. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli.egg-info/entry_points.txt +0 -0
  85. {vss_cli-2025.6.0.dev0 → vss_cli-2025.6.0.dev2}/vss_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vss-cli
3
- Version: 2025.6.0.dev0
3
+ Version: 2025.6.0.dev2
4
4
  Summary: ITS Private Cloud CLI
5
5
  Author-email: University of Toronto <vss-apps@eis.utoronto.ca>
6
6
  Maintainer-email: vss-py@eis.utoronto.ca
@@ -34,7 +34,7 @@ Requires-Dist: jinja2>=2.10
34
34
  Requires-Dist: dateparser==1.2.1
35
35
  Requires-Dist: rich==13.9.4
36
36
  Requires-Dist: pick==2.2.0
37
- Requires-Dist: dataclasses-json==0.5.7
37
+ Requires-Dist: dataclasses-json==0.6.7
38
38
  Requires-Dist: validators==0.34.0
39
39
  Requires-Dist: ruamel.yaml==0.17.21
40
40
  Requires-Dist: qrcode==7.3.1
@@ -35,7 +35,7 @@ dependencies = [
35
35
  "dateparser==1.2.1",
36
36
  "rich==13.9.4",
37
37
  "pick==2.2.0",
38
- "dataclasses-json==0.5.7",
38
+ "dataclasses-json==0.6.7",
39
39
  "validators==0.34.0",
40
40
  "ruamel.yaml==0.17.21",
41
41
  "qrcode==7.3.1",
@@ -8,7 +8,7 @@ except ImportError:
8
8
 
9
9
  PACKAGE_NAME = "vss_cli"
10
10
 
11
- __version__ = "2025.6.0-dev0"
11
+ __version__ = "2025.6.0-dev2"
12
12
 
13
13
 
14
14
  DEFAULT_TIMEOUT = 30
@@ -1,5 +1,5 @@
1
1
  ####################################################
2
- # VSS-CLI Spec from CLib 2025.6.0-dev0 #
2
+ # VSS-CLI Spec from CLib 2025.6.0-dev2 #
3
3
  ####################################################
4
4
  built: clib # Required: Do not remove.
5
5
  machine:
@@ -1,5 +1,5 @@
1
1
  ####################################################
2
- # VSS-CLI Spec from Clone 2025.6.0-dev0 #
2
+ # VSS-CLI Spec from Clone 2025.6.0-dev2 #
3
3
  ####################################################
4
4
  built: clone # Required: Do not remove.
5
5
  machine:
@@ -1,5 +1,5 @@
1
1
  ####################################################
2
- # VSS-CLI Spec shell VM 2025.6.0-dev0 #
2
+ # VSS-CLI Spec shell VM 2025.6.0-dev2 #
3
3
  ####################################################
4
4
  built: os_install # Required: Do not remove.
5
5
  machine:
@@ -1,5 +1,5 @@
1
1
  ####################################################
2
- # VSS-CLI Spec from Template 2025.6.0-dev0 #
2
+ # VSS-CLI Spec from Template 2025.6.0-dev2 #
3
3
  ####################################################
4
4
  built: template # Required: Do not remove.
5
5
  machine:
@@ -762,25 +762,30 @@ def compute_vm_get_state(ctx: Configuration):
762
762
 
763
763
 
764
764
  @compute_vm_get.command('stats', short_help='Performance statistics')
765
- @click.argument('kind', type=click.Choice(['memory', 'io', 'cpu', 'net']))
765
+ @click.argument(
766
+ 'kind', type=click.Choice(['memory', 'datastore', 'cpu', 'net', 'disk'])
767
+ )
768
+ @click.option(
769
+ '-i', '--interval', type=int, default=15, help='Interval in minutes'
770
+ )
766
771
  @pass_context
767
- def compute_vm_get_stats(ctx: Configuration, kind):
772
+ def compute_vm_get_stats(ctx: Configuration, kind: str, interval: int):
768
773
  """Get virtual machine memory, io, cpu and network performance statistics.
769
774
 
770
- Choose between: io, memory, cpu or net. For example:
775
+ Choose between: disk, memory, cpu or net. For example:
771
776
 
772
777
  vss-cli compute vm get <name-or-vm_id> stats memory
773
778
  """
774
- lookup = {
775
- 'cpu': ctx.get_vm_performance_cpu,
776
- 'memory': ctx.get_vm_performance_memory,
777
- 'io': ctx.get_vm_performance_io,
778
- 'net': ctx.get_vm_performance_net,
779
- }
780
-
781
779
  if not ctx.is_powered_on_vm(ctx.moref):
782
780
  raise VssCliError('Cannot perform operation in current power state')
783
- obj = lookup[kind](ctx.moref)
781
+ # fetch performance stats
782
+ obj = ctx.request(
783
+ f'/vm/{ctx.moref}/performance', params={'interval': interval}
784
+ )
785
+ try:
786
+ obj = obj.get('data', {})[kind]
787
+ except KeyError:
788
+ raise VssCliError(f'Invalid kind: {kind}')
784
789
  columns = ctx.columns or [(i,) for i in obj.keys()]
785
790
  ctx.echo(format_output(ctx, [obj], columns=columns, single=True))
786
791
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vss-cli
3
- Version: 2025.6.0.dev0
3
+ Version: 2025.6.0.dev2
4
4
  Summary: ITS Private Cloud CLI
5
5
  Author-email: University of Toronto <vss-apps@eis.utoronto.ca>
6
6
  Maintainer-email: vss-py@eis.utoronto.ca
@@ -34,7 +34,7 @@ Requires-Dist: jinja2>=2.10
34
34
  Requires-Dist: dateparser==1.2.1
35
35
  Requires-Dist: rich==13.9.4
36
36
  Requires-Dist: pick==2.2.0
37
- Requires-Dist: dataclasses-json==0.5.7
37
+ Requires-Dist: dataclasses-json==0.6.7
38
38
  Requires-Dist: validators==0.34.0
39
39
  Requires-Dist: ruamel.yaml==0.17.21
40
40
  Requires-Dist: qrcode==7.3.1
@@ -11,7 +11,7 @@ jinja2>=2.10
11
11
  dateparser==1.2.1
12
12
  rich==13.9.4
13
13
  pick==2.2.0
14
- dataclasses-json==0.5.7
14
+ dataclasses-json==0.6.7
15
15
  validators==0.34.0
16
16
  ruamel.yaml==0.17.21
17
17
  qrcode==7.3.1
File without changes