request-vm-on-golem 0.1.37__tar.gz → 0.1.39__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.
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/PKG-INFO +1 -1
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/pyproject.toml +1 -1
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/cli/commands.py +38 -3
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/README.md +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/__init__.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/api/main.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/cli/__init__.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/config.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/db/__init__.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/db/sqlite.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/errors.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/provider/__init__.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/provider/client.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/run.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/__init__.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/database_service.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/provider_service.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/ssh_service.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/vm_service.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/ssh/__init__.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/ssh/manager.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/utils/logging.py +0 -0
- {request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/utils/spinner.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "request-vm-on-golem"
|
3
|
-
version = "0.1.
|
3
|
+
version = "0.1.39"
|
4
4
|
description = "VM on Golem Requestor CLI - Create and manage virtual machines on the Golem Network"
|
5
5
|
authors = ["Phillip Jensen <phillip+vm-on-golem@golemgrid.com>"]
|
6
6
|
readme = "README.md"
|
@@ -14,7 +14,28 @@ except ImportError:
|
|
14
14
|
# Python < 3.8
|
15
15
|
import importlib_metadata as metadata
|
16
16
|
|
17
|
-
from ..config import config
|
17
|
+
from ..config import config
|
18
|
+
|
19
|
+
# `ensure_config` is responsible for creating default configuration
|
20
|
+
# files and directories on first run. Some unit tests replace the
|
21
|
+
# entire `requestor.config` module with a lightweight stub that only
|
22
|
+
# provides a `config` object. Importing `ensure_config` in such
|
23
|
+
# scenarios would raise an ``ImportError`` which prevents the CLI
|
24
|
+
# module from being imported at all. To make the CLI resilient during
|
25
|
+
# tests we try to import ``ensure_config`` but fall back to a no-op
|
26
|
+
# when it isn't available.
|
27
|
+
try:
|
28
|
+
from ..config import ensure_config # type: ignore
|
29
|
+
except Exception: # pragma: no cover - used only when tests stub the module
|
30
|
+
def ensure_config() -> None:
|
31
|
+
"""Fallback ``ensure_config`` used in tests.
|
32
|
+
|
33
|
+
When the real configuration module is replaced with a stub the
|
34
|
+
CLI should still be importable. The stub simply does nothing
|
35
|
+
which is sufficient for the unit tests exercising the CLI
|
36
|
+
command mappings.
|
37
|
+
"""
|
38
|
+
pass
|
18
39
|
from ..provider.client import ProviderClient
|
19
40
|
from ..errors import RequestorError
|
20
41
|
from ..utils.logging import setup_logger
|
@@ -239,7 +260,7 @@ async def create_vm(name: str, provider_id: str, cpu: int, memory: int, storage:
|
|
239
260
|
@click.argument('name')
|
240
261
|
@async_command
|
241
262
|
async def ssh_vm(name: str):
|
242
|
-
"""SSH into a VM."""
|
263
|
+
"""SSH into a VM (alias: connect)."""
|
243
264
|
try:
|
244
265
|
logger.command(f"🔌 Connecting to VM '{name}'")
|
245
266
|
|
@@ -284,6 +305,13 @@ async def ssh_vm(name: str):
|
|
284
305
|
raise click.Abort()
|
285
306
|
|
286
307
|
|
308
|
+
@vm.command(name="connect")
|
309
|
+
@click.argument("name")
|
310
|
+
def connect_vm(name: str):
|
311
|
+
"""Connect to a VM via SSH (alias of ssh)."""
|
312
|
+
return ssh_vm.callback(name)
|
313
|
+
|
314
|
+
|
287
315
|
@vm.command(name='info')
|
288
316
|
@click.argument('name')
|
289
317
|
@click.option('--json', 'as_json', is_flag=True, help='Output in JSON format')
|
@@ -338,7 +366,7 @@ async def info_vm(name: str, as_json: bool):
|
|
338
366
|
@click.argument('name')
|
339
367
|
@async_command
|
340
368
|
async def destroy_vm(name: str):
|
341
|
-
"""Destroy a VM."""
|
369
|
+
"""Destroy a VM (alias: delete)."""
|
342
370
|
try:
|
343
371
|
logger.command(f"💥 Destroying VM '{name}'")
|
344
372
|
|
@@ -377,6 +405,13 @@ async def destroy_vm(name: str):
|
|
377
405
|
raise click.Abort()
|
378
406
|
|
379
407
|
|
408
|
+
@vm.command(name="delete")
|
409
|
+
@click.argument("name")
|
410
|
+
def delete_vm(name: str):
|
411
|
+
"""Delete a VM (alias of destroy)."""
|
412
|
+
return destroy_vm.callback(name)
|
413
|
+
|
414
|
+
|
380
415
|
@vm.command(name='purge')
|
381
416
|
@click.option('--force', is_flag=True, help='Force purge even if other errors occur')
|
382
417
|
@click.confirmation_option(prompt='Are you sure you want to purge all VMs?')
|
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
|
{request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/database_service.py
RENAMED
File without changes
|
{request_vm_on_golem-0.1.37 → request_vm_on_golem-0.1.39}/requestor/services/provider_service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|