dayhoff-tools 1.3.12__py3-none-any.whl → 1.3.13__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 +46 -19
- {dayhoff_tools-1.3.12.dist-info → dayhoff_tools-1.3.13.dist-info}/METADATA +1 -1
- {dayhoff_tools-1.3.12.dist-info → dayhoff_tools-1.3.13.dist-info}/RECORD +5 -5
- {dayhoff_tools-1.3.12.dist-info → dayhoff_tools-1.3.13.dist-info}/WHEEL +0 -0
- {dayhoff_tools-1.3.12.dist-info → dayhoff_tools-1.3.13.dist-info}/entry_points.txt +0 -0
@@ -1032,21 +1032,35 @@ def resize_engine(
|
|
1032
1032
|
console.print(f"[red]❌ Failed to resize engine: {error}[/red]")
|
1033
1033
|
raise typer.Exit(1)
|
1034
1034
|
|
1035
|
-
# Wait for
|
1035
|
+
# Wait for modification to complete
|
1036
1036
|
console.print("Waiting for volume modification to complete...")
|
1037
1037
|
while True:
|
1038
1038
|
mod_state = ec2.describe_volumes_modifications(VolumeIds=[root_volume_id])
|
1039
1039
|
if not mod_state["VolumesModifications"]:
|
1040
1040
|
break # Modification complete
|
1041
|
-
|
1041
|
+
|
1042
|
+
modification = mod_state["VolumesModifications"][0]
|
1043
|
+
state = modification["ModificationState"]
|
1044
|
+
progress = modification.get("Progress", 0)
|
1045
|
+
|
1046
|
+
# Show progress updates only for the resize phase
|
1047
|
+
if state == "modifying":
|
1048
|
+
console.print(f"[yellow]Progress: {progress}%[/yellow]")
|
1049
|
+
|
1050
|
+
# Exit as soon as optimization starts (resize is complete)
|
1051
|
+
if state == "optimizing":
|
1052
|
+
console.print("[green]✓ Volume resized successfully[/green]")
|
1053
|
+
console.print("[dim]AWS is optimizing the volume in the background (no action needed).[/dim]")
|
1054
|
+
break
|
1055
|
+
|
1042
1056
|
if state == "completed":
|
1057
|
+
console.print("[green]✓ Volume resized successfully[/green]")
|
1043
1058
|
break
|
1044
1059
|
elif state == "failed":
|
1045
1060
|
console.print("[red]❌ Volume modification failed[/red]")
|
1046
1061
|
raise typer.Exit(1)
|
1047
|
-
|
1048
|
-
|
1049
|
-
console.print("[green]✓ Volume resized successfully[/green]")
|
1062
|
+
|
1063
|
+
time.sleep(2) # Check more frequently for better UX
|
1050
1064
|
|
1051
1065
|
# If offline resize, start the instance back up
|
1052
1066
|
if not online and engine["state"].lower() == "running":
|
@@ -1796,38 +1810,51 @@ def resize_studio(
|
|
1796
1810
|
)
|
1797
1811
|
|
1798
1812
|
if resize_response.status_code != 200:
|
1799
|
-
|
1800
|
-
try:
|
1801
|
-
error_body = resize_response.json()
|
1802
|
-
error = error_body.get("error", "Unknown error")
|
1803
|
-
console.print(f"[red]Debug: Full error response: {error_body}[/red]")
|
1804
|
-
except Exception as e:
|
1805
|
-
console.print(f"[red]Debug: Failed to parse error response: {e}[/red]")
|
1806
|
-
console.print(f"[red]Debug: Raw response: {resize_response.text}[/red]")
|
1807
|
-
error = "Unknown error"
|
1808
|
-
|
1813
|
+
error = resize_response.json().get("error", "Unknown error")
|
1809
1814
|
console.print(f"[red]❌ Failed to resize studio: {error}[/red]")
|
1810
1815
|
raise typer.Exit(1)
|
1811
1816
|
|
1812
1817
|
# Wait for volume modification to complete
|
1813
1818
|
ec2 = boto3.client("ec2", region_name="us-east-1")
|
1814
|
-
console.print("
|
1819
|
+
console.print("Resizing volume...")
|
1820
|
+
|
1821
|
+
# Track progress
|
1822
|
+
last_progress = 0
|
1823
|
+
|
1815
1824
|
while True:
|
1816
1825
|
try:
|
1817
1826
|
mod_state = ec2.describe_volumes_modifications(VolumeIds=[studio["studio_id"]])
|
1818
1827
|
if not mod_state["VolumesModifications"]:
|
1819
1828
|
break # Modification complete
|
1820
|
-
|
1829
|
+
|
1830
|
+
modification = mod_state["VolumesModifications"][0]
|
1831
|
+
state = modification["ModificationState"]
|
1832
|
+
progress = modification.get("Progress", 0)
|
1833
|
+
|
1834
|
+
# Show progress updates only for the resize phase
|
1835
|
+
if state == "modifying" and progress > last_progress:
|
1836
|
+
console.print(f"[yellow]Progress: {progress}%[/yellow]")
|
1837
|
+
last_progress = progress
|
1838
|
+
|
1839
|
+
# Exit as soon as optimization starts (resize is complete)
|
1840
|
+
if state == "optimizing":
|
1841
|
+
console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
|
1842
|
+
console.print("[dim]AWS is optimizing the volume in the background (no action needed).[/dim]")
|
1843
|
+
break
|
1844
|
+
|
1821
1845
|
if state == "completed":
|
1846
|
+
console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
|
1822
1847
|
break
|
1823
1848
|
elif state == "failed":
|
1824
1849
|
console.print("[red]❌ Volume modification failed[/red]")
|
1825
1850
|
raise typer.Exit(1)
|
1826
|
-
|
1851
|
+
|
1852
|
+
time.sleep(2) # Check more frequently for better UX
|
1853
|
+
|
1827
1854
|
except ClientError:
|
1828
1855
|
# Modification might be complete
|
1856
|
+
console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
|
1829
1857
|
break
|
1830
1858
|
|
1831
|
-
console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
|
1832
1859
|
console.print("\n[dim]The filesystem will be automatically expanded when you next attach the studio.[/dim]")
|
1833
1860
|
console.print(f"To attach: [cyan]dh studio attach <engine-name>[/cyan]")
|
@@ -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=aPQp6BkPr-Dye-nNmP3STOLD8VE6nMMRGTyrrtamlYs,68022
|
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.13.dist-info/METADATA,sha256=W2hjhk0hABZN4OyL1JDQv6O6fn83jMn3PkKVaF6AIoc,2825
|
31
|
+
dayhoff_tools-1.3.13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
32
|
+
dayhoff_tools-1.3.13.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
|
33
|
+
dayhoff_tools-1.3.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|