dayhoff-tools 1.6.11__py3-none-any.whl → 1.6.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 +20 -8
- {dayhoff_tools-1.6.11.dist-info → dayhoff_tools-1.6.13.dist-info}/METADATA +1 -1
- {dayhoff_tools-1.6.11.dist-info → dayhoff_tools-1.6.13.dist-info}/RECORD +5 -5
- {dayhoff_tools-1.6.11.dist-info → dayhoff_tools-1.6.13.dist-info}/WHEEL +0 -0
- {dayhoff_tools-1.6.11.dist-info → dayhoff_tools-1.6.13.dist-info}/entry_points.txt +0 -0
@@ -1867,14 +1867,22 @@ def _attempt_studio_attach(studio, engine, target_user, public_key):
|
|
1867
1867
|
# Asynchronous path – API returned 202 Accepted and operation tracking ID
|
1868
1868
|
if response.status_code == 202:
|
1869
1869
|
op_id = response.json().get("operation_id")
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
|
1875
|
-
|
1876
|
-
|
1877
|
-
|
1870
|
+
console.print(f"[dim]DEBUG: Got 202 - operation {op_id} started[/dim]")
|
1871
|
+
|
1872
|
+
# Instead of polling the operation status (which seems broken),
|
1873
|
+
# just wait a bit and check if the studio is actually attached
|
1874
|
+
# This is what dh studio status does and it works reliably
|
1875
|
+
time.sleep(5) # Give the async operation a moment to start
|
1876
|
+
|
1877
|
+
# Now check periodically if the studio is attached
|
1878
|
+
for check in range(20): # Check for up to 60 seconds
|
1879
|
+
if _is_studio_attached(studio["studio_id"], engine["instance_id"]):
|
1880
|
+
console.print("[dim]DEBUG: Studio attachment detected via status check[/dim]")
|
1881
|
+
return True, None
|
1882
|
+
time.sleep(3)
|
1883
|
+
|
1884
|
+
# If we get here, attachment didn't complete in reasonable time
|
1885
|
+
return False, None # Return None to trigger retry
|
1878
1886
|
|
1879
1887
|
# --- determine if we should retry ---
|
1880
1888
|
recoverable = False
|
@@ -1937,16 +1945,20 @@ def _poll_operation(operation_id: str, timeout: int = 600) -> Tuple[bool, str]:
|
|
1937
1945
|
# ---- fetch status ---------------------------------------------------
|
1938
1946
|
op_resp = make_api_request("GET", f"/operations/{operation_id}")
|
1939
1947
|
if op_resp.status_code != 200:
|
1948
|
+
console.print(f"[dim]DEBUG: Operation poll failed: HTTP {op_resp.status_code}[/dim]")
|
1940
1949
|
return False, (
|
1941
1950
|
f"Failed to fetch operation status (HTTP {op_resp.status_code})"
|
1942
1951
|
)
|
1943
1952
|
data = op_resp.json()
|
1944
1953
|
op_status = data.get("status")
|
1954
|
+
console.print(f"[dim]DEBUG: Operation status: {op_status}[/dim]")
|
1945
1955
|
|
1946
1956
|
# ---- interpret state -----------------------------------------------
|
1947
1957
|
if op_status == "COMPLETED":
|
1958
|
+
console.print("[dim]DEBUG: Operation completed successfully[/dim]")
|
1948
1959
|
return True, ""
|
1949
1960
|
if op_status == "FAILED":
|
1961
|
+
console.print(f"[dim]DEBUG: Operation failed: {data.get('error', 'Operation failed')}[/dim]")
|
1950
1962
|
return False, data.get("error", "Operation failed")
|
1951
1963
|
|
1952
1964
|
# Not finished yet – wait a little and poll again (no live spinner)
|
@@ -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=Loc-ppwuuuAZbj5j2s0aNT5_R1u7oiOx7bDjjWuw3y8,98069
|
7
7
|
dayhoff_tools/cli/main.py,sha256=tRN7WCBHg6uyNp6rA54pKTCoVmBntta2i0Yas3bUpZ4,4853
|
8
8
|
dayhoff_tools/cli/swarm_commands.py,sha256=5EyKj8yietvT5lfoz8Zx0iQvVaNgc3SJX1z2zQR6o6M,5614
|
9
9
|
dayhoff_tools/cli/utility_commands.py,sha256=FRZTPrjsG_qmIIqoNxd1Q1vVkS_5w8aY33IrVYVNCLg,18131
|
@@ -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=heaYc64qplgN3_1WVPFmqj53goStioWwY5NqlWc4c0s,24453
|
30
|
-
dayhoff_tools-1.6.
|
31
|
-
dayhoff_tools-1.6.
|
32
|
-
dayhoff_tools-1.6.
|
33
|
-
dayhoff_tools-1.6.
|
30
|
+
dayhoff_tools-1.6.13.dist-info/METADATA,sha256=Vj0JcsRhUcJE8witxYBmGTiCWLdunubI_01WecoV3Xw,2915
|
31
|
+
dayhoff_tools-1.6.13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
32
|
+
dayhoff_tools-1.6.13.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
|
33
|
+
dayhoff_tools-1.6.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|