portacode 1.4.12.dev7__py3-none-any.whl → 1.4.12.dev8__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.
- portacode/_version.py +2 -2
- portacode/connection/handlers/proxmox_infra.py +44 -1
- {portacode-1.4.12.dev7.dist-info → portacode-1.4.12.dev8.dist-info}/METADATA +1 -1
- {portacode-1.4.12.dev7.dist-info → portacode-1.4.12.dev8.dist-info}/RECORD +8 -8
- {portacode-1.4.12.dev7.dist-info → portacode-1.4.12.dev8.dist-info}/WHEEL +1 -1
- {portacode-1.4.12.dev7.dist-info → portacode-1.4.12.dev8.dist-info}/entry_points.txt +0 -0
- {portacode-1.4.12.dev7.dist-info → portacode-1.4.12.dev8.dist-info}/licenses/LICENSE +0 -0
- {portacode-1.4.12.dev7.dist-info → portacode-1.4.12.dev8.dist-info}/top_level.txt +0 -0
portacode/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.4.12.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 4, 12, '
|
|
31
|
+
__version__ = version = '1.4.12.dev8'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 4, 12, 'dev8')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -702,14 +702,24 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
|
|
|
702
702
|
|
|
703
703
|
last_pub = last_priv = None
|
|
704
704
|
stable = 0
|
|
705
|
+
history: List[Dict[str, Any]] = []
|
|
706
|
+
|
|
705
707
|
while time.time() - start < timeout_s:
|
|
706
708
|
if proc.poll() is not None:
|
|
707
709
|
out, err = proc.communicate(timeout=1)
|
|
710
|
+
history.append(
|
|
711
|
+
{
|
|
712
|
+
"timestamp_s": round(time.time() - start, 2),
|
|
713
|
+
"status": "process_exited",
|
|
714
|
+
"returncode": proc.returncode,
|
|
715
|
+
}
|
|
716
|
+
)
|
|
708
717
|
return {
|
|
709
718
|
"ok": False,
|
|
710
719
|
"error": "portacode connect exited before keys were created",
|
|
711
720
|
"stdout": (out or "").strip(),
|
|
712
721
|
"stderr": (err or "").strip(),
|
|
722
|
+
"history": history,
|
|
713
723
|
}
|
|
714
724
|
pub_size = file_size(pub_path)
|
|
715
725
|
priv_size = file_size(priv_path)
|
|
@@ -720,7 +730,23 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
|
|
|
720
730
|
stable = 0
|
|
721
731
|
last_pub, last_priv = pub_size, priv_size
|
|
722
732
|
if stable >= 1:
|
|
733
|
+
history.append(
|
|
734
|
+
{
|
|
735
|
+
"timestamp_s": round(time.time() - start, 2),
|
|
736
|
+
"pub_size": pub_size,
|
|
737
|
+
"priv_size": priv_size,
|
|
738
|
+
"stable": stable,
|
|
739
|
+
}
|
|
740
|
+
)
|
|
723
741
|
break
|
|
742
|
+
history.append(
|
|
743
|
+
{
|
|
744
|
+
"timestamp_s": round(time.time() - start, 2),
|
|
745
|
+
"pub_size": pub_size,
|
|
746
|
+
"priv_size": priv_size,
|
|
747
|
+
"stable": stable,
|
|
748
|
+
}
|
|
749
|
+
)
|
|
724
750
|
time.sleep(1)
|
|
725
751
|
|
|
726
752
|
if stable < 1:
|
|
@@ -730,11 +756,18 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
|
|
|
730
756
|
except subprocess.TimeoutExpired:
|
|
731
757
|
proc.kill()
|
|
732
758
|
out, err = proc.communicate(timeout=1)
|
|
759
|
+
history.append(
|
|
760
|
+
{
|
|
761
|
+
"timestamp_s": round(time.time() - start, 2),
|
|
762
|
+
"status": "timeout_waiting_for_keys",
|
|
763
|
+
}
|
|
764
|
+
)
|
|
733
765
|
return {
|
|
734
766
|
"ok": False,
|
|
735
767
|
"error": "timed out waiting for portacode key files",
|
|
736
768
|
"stdout": (out or "").strip(),
|
|
737
769
|
"stderr": (err or "").strip(),
|
|
770
|
+
"history": history,
|
|
738
771
|
}
|
|
739
772
|
|
|
740
773
|
proc.terminate()
|
|
@@ -747,6 +780,7 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
|
|
|
747
780
|
return {
|
|
748
781
|
"ok": True,
|
|
749
782
|
"public_key": key_res["stdout"].strip(),
|
|
783
|
+
"history": history,
|
|
750
784
|
}
|
|
751
785
|
|
|
752
786
|
|
|
@@ -846,8 +880,17 @@ def _bootstrap_portacode(
|
|
|
846
880
|
if not ok:
|
|
847
881
|
details = results[-1] if results else {}
|
|
848
882
|
summary = details.get("error_summary") or details.get("stderr") or details.get("stdout") or details.get("name")
|
|
883
|
+
history = details.get("history")
|
|
884
|
+
history_snippet = ""
|
|
885
|
+
if isinstance(history, list) and history:
|
|
886
|
+
history_snippet = f" history={history[-3:]}"
|
|
849
887
|
if summary:
|
|
850
|
-
|
|
888
|
+
logger.warning(
|
|
889
|
+
"Portacode bootstrap failure summary=%s%s",
|
|
890
|
+
summary,
|
|
891
|
+
f" history_len={len(history)}" if history else "",
|
|
892
|
+
)
|
|
893
|
+
raise RuntimeError(f"Portacode bootstrap steps failed: {summary}{history_snippet}")
|
|
851
894
|
raise RuntimeError("Portacode bootstrap steps failed.")
|
|
852
895
|
key_step = next((entry for entry in results if entry.get("name") == "portacode_connect"), None)
|
|
853
896
|
public_key = key_step.get("public_key") if key_step else None
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
portacode/README.md,sha256=4dKtpvR8LNgZPVz37GmkQCMWIr_u25Ao63iW56s7Ke4,775
|
|
2
2
|
portacode/__init__.py,sha256=oB3sV1wXr-um-RXio73UG8E5Xx6cF2ZVJveqjNmC-vQ,1086
|
|
3
3
|
portacode/__main__.py,sha256=jmHTGC1hzmo9iKJLv-SSYe9BSIbPPZ2IOpecI03PlTs,296
|
|
4
|
-
portacode/_version.py,sha256=
|
|
4
|
+
portacode/_version.py,sha256=nE85_ZPmwxcGnUUwZo-c56maL3k35W0GWwB3dFJmT-o,719
|
|
5
5
|
portacode/cli.py,sha256=mGLKoZ-T2FBF7IA9wUq0zyG0X9__-A1ao7gajjcVRH8,21828
|
|
6
6
|
portacode/data.py,sha256=5-s291bv8J354myaHm1Y7CQZTZyRzMU3TGe5U4hb-FA,1591
|
|
7
7
|
portacode/keypair.py,sha256=0OO4vHDcF1XMxCDqce61xFTlFwlTcmqe5HyGsXFEt7s,5838
|
|
@@ -22,7 +22,7 @@ portacode/connection/handlers/diff_handlers.py,sha256=iYTIRCcpEQ03vIPKZCsMTE5aZb
|
|
|
22
22
|
portacode/connection/handlers/file_handlers.py,sha256=nAJH8nXnX07xxD28ngLpgIUzcTuRwZBNpEGEKdRqohw,39507
|
|
23
23
|
portacode/connection/handlers/project_aware_file_handlers.py,sha256=AqgMnDqX2893T2NsrvUSCwjN5VKj4Pb2TN0S_SuboOE,9803
|
|
24
24
|
portacode/connection/handlers/project_state_handlers.py,sha256=v6ZefGW9i7n1aZLq2jOGumJIjYb6aHlPI4m1jkYewm8,1686
|
|
25
|
-
portacode/connection/handlers/proxmox_infra.py,sha256=
|
|
25
|
+
portacode/connection/handlers/proxmox_infra.py,sha256=9YYIZFf1uMcB67vBqPA14gQd14-QZo-DX8eS7mekF14,53103
|
|
26
26
|
portacode/connection/handlers/registry.py,sha256=qXGE60sYEWg6ZtVQzFcZ5YI2XWR6lMgw4hAL9x5qR1I,6181
|
|
27
27
|
portacode/connection/handlers/session.py,sha256=uNGfiO_1B9-_yjJKkpvmbiJhIl6b-UXlT86UTfd6WYE,42219
|
|
28
28
|
portacode/connection/handlers/system_handlers.py,sha256=AKh7IbwptlLYrbSw5f-DHigvlaKHsg9lDP-lkAUm8cE,10755
|
|
@@ -64,7 +64,7 @@ portacode/utils/__init__.py,sha256=NgBlWTuNJESfIYJzP_3adI1yJQJR0XJLRpSdVNaBAN0,3
|
|
|
64
64
|
portacode/utils/diff_apply.py,sha256=4Oi7ft3VUCKmiUE4VM-OeqO7Gk6H7PF3WnN4WHXtjxI,15157
|
|
65
65
|
portacode/utils/diff_renderer.py,sha256=S76StnQ2DLfsz4Gg0m07UwPfRp8270PuzbNaQq-rmYk,13850
|
|
66
66
|
portacode/utils/ntp_clock.py,sha256=VqCnWCTehCufE43W23oB-WUdAZGeCcLxkmIOPwInYHc,2499
|
|
67
|
-
portacode-1.4.12.
|
|
67
|
+
portacode-1.4.12.dev8.dist-info/licenses/LICENSE,sha256=2FGbCnUDgRYuQTkB1O1dUUpu5CVAjK1j4_p6ack9Z54,1066
|
|
68
68
|
test_modules/README.md,sha256=Do_agkm9WhSzueXjRAkV_xEj6Emy5zB3N3VKY5Roce8,9274
|
|
69
69
|
test_modules/__init__.py,sha256=1LcbHodIHsB0g-g4NGjSn6AMuCoGbymvXPYLOb6Z7F0,53
|
|
70
70
|
test_modules/test_device_online.py,sha256=QtYq0Dq9vME8Gp2O4fGSheqVf8LUtpsSKosXXk56gGM,1654
|
|
@@ -90,8 +90,8 @@ testing_framework/core/playwright_manager.py,sha256=Tw46qwxIhOFkS48C2IWIQHHNpEe-
|
|
|
90
90
|
testing_framework/core/runner.py,sha256=j2QwNJmAxVBmJvcbVS7DgPJUKPNzqfLmt_4NNdaKmZU,19297
|
|
91
91
|
testing_framework/core/shared_cli_manager.py,sha256=BESSNtyQb7BOlaOvZmm04T8Uezjms4KCBs2MzTxvzYQ,8790
|
|
92
92
|
testing_framework/core/test_discovery.py,sha256=2FZ9fJ8Dp5dloA-fkgXoJ_gCMC_nYPBnA3Hs2xlagzM,4928
|
|
93
|
-
portacode-1.4.12.
|
|
94
|
-
portacode-1.4.12.
|
|
95
|
-
portacode-1.4.12.
|
|
96
|
-
portacode-1.4.12.
|
|
97
|
-
portacode-1.4.12.
|
|
93
|
+
portacode-1.4.12.dev8.dist-info/METADATA,sha256=j1-Q9VdU_Jceje1hG31JZ9YDUFfh--0GhmCIJlCtGTk,13051
|
|
94
|
+
portacode-1.4.12.dev8.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
95
|
+
portacode-1.4.12.dev8.dist-info/entry_points.txt,sha256=lLUUL-BM6_wwe44Xv0__5NQ1BnAz6jWjSMFvZdWW3zU,48
|
|
96
|
+
portacode-1.4.12.dev8.dist-info/top_level.txt,sha256=TGhTYUxfW8SyVZc_zGgzjzc24gGT7nSw8Qf73liVRKM,41
|
|
97
|
+
portacode-1.4.12.dev8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|