dayhoff-tools 1.3.11__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.
@@ -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 volume modification to complete
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
- state = mod_state["VolumesModifications"][0]["ModificationState"]
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
- time.sleep(5)
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":
@@ -1802,23 +1816,45 @@ def resize_studio(
1802
1816
 
1803
1817
  # Wait for volume modification to complete
1804
1818
  ec2 = boto3.client("ec2", region_name="us-east-1")
1805
- console.print("Waiting for volume modification to complete...")
1819
+ console.print("Resizing volume...")
1820
+
1821
+ # Track progress
1822
+ last_progress = 0
1823
+
1806
1824
  while True:
1807
1825
  try:
1808
1826
  mod_state = ec2.describe_volumes_modifications(VolumeIds=[studio["studio_id"]])
1809
1827
  if not mod_state["VolumesModifications"]:
1810
1828
  break # Modification complete
1811
- state = mod_state["VolumesModifications"][0]["ModificationState"]
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
+
1812
1845
  if state == "completed":
1846
+ console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
1813
1847
  break
1814
1848
  elif state == "failed":
1815
1849
  console.print("[red]❌ Volume modification failed[/red]")
1816
1850
  raise typer.Exit(1)
1817
- time.sleep(5)
1851
+
1852
+ time.sleep(2) # Check more frequently for better UX
1853
+
1818
1854
  except ClientError:
1819
1855
  # Modification might be complete
1856
+ console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
1820
1857
  break
1821
1858
 
1822
- console.print(f"[green]✓ Studio resized successfully to {size}GB![/green]")
1823
1859
  console.print("\n[dim]The filesystem will be automatically expanded when you next attach the studio.[/dim]")
1824
1860
  console.print(f"To attach: [cyan]dh studio attach <engine-name>[/cyan]")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.3.11
3
+ Version: 1.3.13
4
4
  Summary: Common tools for all the repos at Dayhoff Labs
5
5
  Author: Daniel Martin-Alarcon
6
6
  Author-email: dma@dayhofflabs.com
@@ -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=pFsdXnaAX8AUgy3a6T9ogRXJcFxQJiNXOCJeKhKGmTY,66416
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.11.dist-info/METADATA,sha256=nKfcEXU12wIC3tBRLn38IuDOcvBb2mC89EhgXQgfH0I,2825
31
- dayhoff_tools-1.3.11.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
32
- dayhoff_tools-1.3.11.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
33
- dayhoff_tools-1.3.11.dist-info/RECORD,,
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,,