dayhoff-tools 1.3.14__py3-none-any.whl → 1.3.16__py3-none-any.whl
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.
- dayhoff_tools/cli/engine_commands.py +31 -8
- {dayhoff_tools-1.3.14.dist-info → dayhoff_tools-1.3.16.dist-info}/METADATA +1 -1
- {dayhoff_tools-1.3.14.dist-info → dayhoff_tools-1.3.16.dist-info}/RECORD +5 -5
- {dayhoff_tools-1.3.14.dist-info → dayhoff_tools-1.3.16.dist-info}/WHEEL +0 -0
- {dayhoff_tools-1.3.14.dist-info → dayhoff_tools-1.3.16.dist-info}/entry_points.txt +0 -0
@@ -388,6 +388,12 @@ def launch_engine(
|
|
388
388
|
help="Engine type: cpu, cpumax, t4, a10g, a100",
|
389
389
|
),
|
390
390
|
user: Optional[str] = typer.Option(None, "--user", "-u", help="Override username"),
|
391
|
+
boot_disk_size: Optional[int] = typer.Option(
|
392
|
+
None,
|
393
|
+
"--size",
|
394
|
+
"-s",
|
395
|
+
help="Boot disk size in GB (default: 50GB, min: 20GB, max: 1000GB)",
|
396
|
+
),
|
391
397
|
):
|
392
398
|
"""Launch a new engine instance."""
|
393
399
|
username = check_aws_sso()
|
@@ -401,9 +407,19 @@ def launch_engine(
|
|
401
407
|
console.print(f"Valid types: {', '.join(valid_types)}")
|
402
408
|
raise typer.Exit(1)
|
403
409
|
|
410
|
+
# Validate boot disk size
|
411
|
+
if boot_disk_size is not None:
|
412
|
+
if boot_disk_size < 20:
|
413
|
+
console.print("[red]❌ Boot disk size must be at least 20GB[/red]")
|
414
|
+
raise typer.Exit(1)
|
415
|
+
if boot_disk_size > 1000:
|
416
|
+
console.print("[red]❌ Boot disk size cannot exceed 1000GB[/red]")
|
417
|
+
raise typer.Exit(1)
|
418
|
+
|
404
419
|
cost = HOURLY_COSTS.get(engine_type, 0)
|
420
|
+
disk_info = f" with {boot_disk_size}GB boot disk" if boot_disk_size else ""
|
405
421
|
console.print(
|
406
|
-
f"Launching [cyan]{name}[/cyan] ({engine_type}) for ${cost:.2f}/hour..."
|
422
|
+
f"Launching [cyan]{name}[/cyan] ({engine_type}){disk_info} for ${cost:.2f}/hour..."
|
407
423
|
)
|
408
424
|
|
409
425
|
with Progress(
|
@@ -413,17 +429,23 @@ def launch_engine(
|
|
413
429
|
) as progress:
|
414
430
|
progress.add_task("Creating engine...", total=None)
|
415
431
|
|
416
|
-
|
417
|
-
"
|
418
|
-
"
|
419
|
-
|
420
|
-
|
432
|
+
request_data = {
|
433
|
+
"name": name,
|
434
|
+
"user": username,
|
435
|
+
"engine_type": engine_type,
|
436
|
+
}
|
437
|
+
if boot_disk_size is not None:
|
438
|
+
request_data["boot_disk_size"] = boot_disk_size
|
439
|
+
|
440
|
+
response = make_api_request("POST", "/engines", json_data=request_data)
|
421
441
|
|
422
442
|
if response.status_code == 201:
|
423
443
|
data = response.json()
|
424
444
|
console.print(f"[green]✓ Engine launched successfully![/green]")
|
425
445
|
console.print(f"Instance ID: [cyan]{data['instance_id']}[/cyan]")
|
426
446
|
console.print(f"Type: {data['instance_type']} (${cost:.2f}/hour)")
|
447
|
+
if boot_disk_size:
|
448
|
+
console.print(f"Boot disk: {boot_disk_size}GB")
|
427
449
|
console.print("\nThe engine is initializing. This may take a few minutes.")
|
428
450
|
console.print(f"Check status with: [cyan]dh engine status {name}[/cyan]")
|
429
451
|
else:
|
@@ -1104,8 +1126,9 @@ def resize_engine(
|
|
1104
1126
|
elif online and engine["state"].lower() == "running":
|
1105
1127
|
console.print("\n[yellow]⚠️ Online resize complete. You must now expand the filesystem:[/yellow]")
|
1106
1128
|
console.print(f"1. SSH into the engine: [cyan]ssh {engine['name']}[/cyan]")
|
1107
|
-
console.print("2.
|
1108
|
-
console.print("3.
|
1129
|
+
console.print("2. Find the root device: [cyan]lsblk[/cyan]")
|
1130
|
+
console.print("3. Expand the partition: [cyan]sudo growpart /dev/nvme0n1 1[/cyan] (adjust device name as needed)")
|
1131
|
+
console.print("4. Expand the filesystem: [cyan]sudo xfs_growfs /[/cyan]")
|
1109
1132
|
|
1110
1133
|
except ClientError as e:
|
1111
1134
|
console.print(f"[red]❌ Failed to resize engine: {e}[/red]")
|
@@ -3,7 +3,7 @@ dayhoff_tools/chemistry/standardizer.py,sha256=uMn7VwHnx02nc404eO6fRuS4rsl4dvSPf
|
|
3
3
|
dayhoff_tools/chemistry/utils.py,sha256=jt-7JgF-GeeVC421acX-bobKbLU_X94KNOW24p_P-_M,2257
|
4
4
|
dayhoff_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
dayhoff_tools/cli/cloud_commands.py,sha256=33qcWLmq-FwEXMdL3F0OHm-5Stlh2r65CldyEZgQ1no,40904
|
6
|
-
dayhoff_tools/cli/engine_commands.py,sha256=
|
6
|
+
dayhoff_tools/cli/engine_commands.py,sha256=TX9IwHkpb-x3OvvydwwhsXqxCpXnZ9TCNiOvYXYGP94,70265
|
7
7
|
dayhoff_tools/cli/main.py,sha256=rgeEHD9lJ8SBCR34BTLb7gVInHUUdmEBNXAJnq5yEU4,4795
|
8
8
|
dayhoff_tools/cli/swarm_commands.py,sha256=5EyKj8yietvT5lfoz8Zx0iQvVaNgc3SJX1z2zQR6o6M,5614
|
9
9
|
dayhoff_tools/cli/utility_commands.py,sha256=qs8vH9TBFHsOPC3X8cU3qZigM3dDn-2Ytq4o_F2WubU,27874
|
@@ -27,7 +27,7 @@ dayhoff_tools/intake/uniprot.py,sha256=BZYJQF63OtPcBBnQ7_P9gulxzJtqyorgyuDiPeOJq
|
|
27
27
|
dayhoff_tools/logs.py,sha256=DKdeP0k0kliRcilwvX0mUB2eipO5BdWUeHwh-VnsICs,838
|
28
28
|
dayhoff_tools/sqlite.py,sha256=jV55ikF8VpTfeQqqlHSbY8OgfyfHj8zgHNpZjBLos_E,18672
|
29
29
|
dayhoff_tools/warehouse.py,sha256=8YbnQ--usrEgDQGfvpV4MrMji55A0rq2hZaOgFGh6ag,15896
|
30
|
-
dayhoff_tools-1.3.
|
31
|
-
dayhoff_tools-1.3.
|
32
|
-
dayhoff_tools-1.3.
|
33
|
-
dayhoff_tools-1.3.
|
30
|
+
dayhoff_tools-1.3.16.dist-info/METADATA,sha256=Ylw3uOqRFudCtgZdphUqKDLMBn0bH7O6-Ns8ZGTQ5R4,2825
|
31
|
+
dayhoff_tools-1.3.16.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
32
|
+
dayhoff_tools-1.3.16.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
|
33
|
+
dayhoff_tools-1.3.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|