portacode 1.4.12.dev4__py3-none-any.whl → 1.4.12.dev6__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 +30 -9
- {portacode-1.4.12.dev4.dist-info → portacode-1.4.12.dev6.dist-info}/METADATA +1 -1
- {portacode-1.4.12.dev4.dist-info → portacode-1.4.12.dev6.dist-info}/RECORD +8 -8
- {portacode-1.4.12.dev4.dist-info → portacode-1.4.12.dev6.dist-info}/WHEEL +0 -0
- {portacode-1.4.12.dev4.dist-info → portacode-1.4.12.dev6.dist-info}/entry_points.txt +0 -0
- {portacode-1.4.12.dev4.dist-info → portacode-1.4.12.dev6.dist-info}/licenses/LICENSE +0 -0
- {portacode-1.4.12.dev4.dist-info → portacode-1.4.12.dev6.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.dev6'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 4, 12, 'dev6')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -468,7 +468,13 @@ def _build_bootstrap_steps(user: str, password: str, ssh_key: str) -> List[Dict[
|
|
|
468
468
|
steps.extend([
|
|
469
469
|
{"name": "pip_upgrade", "cmd": "python3 -m pip install --upgrade pip", "retries": 0},
|
|
470
470
|
{"name": "install_portacode", "cmd": "python3 -m pip install --upgrade portacode", "retries": 0},
|
|
471
|
-
{
|
|
471
|
+
{
|
|
472
|
+
"name": "portacode_connect",
|
|
473
|
+
"type": "portacode_connect",
|
|
474
|
+
"timeout_s": 30,
|
|
475
|
+
"retries": 2,
|
|
476
|
+
"retry_delay_s": 5,
|
|
477
|
+
},
|
|
472
478
|
])
|
|
473
479
|
return steps
|
|
474
480
|
|
|
@@ -779,15 +785,26 @@ def _run_setup_steps(
|
|
|
779
785
|
progress_callback(step_index, computed_total, step, "in_progress", None)
|
|
780
786
|
|
|
781
787
|
if step.get("type") == "portacode_connect":
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
788
|
+
attempts = 0
|
|
789
|
+
max_attempts = step.get("retries", 0) + 1
|
|
790
|
+
retry_delay = step.get("retry_delay_s", 5)
|
|
791
|
+
while True:
|
|
792
|
+
attempts += 1
|
|
793
|
+
res = _portacode_connect_and_read_key(vmid, user, timeout_s=step.get("timeout_s", 10))
|
|
794
|
+
res["name"] = step["name"]
|
|
795
|
+
res["attempt"] = attempts
|
|
796
|
+
results.append(res)
|
|
797
|
+
if res.get("ok"):
|
|
798
|
+
if progress_callback:
|
|
799
|
+
progress_callback(step_index, computed_total, step, "completed", res)
|
|
800
|
+
break
|
|
801
|
+
will_retry = attempts < max_attempts
|
|
786
802
|
if progress_callback:
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
803
|
+
status = "retrying" if will_retry else "failed"
|
|
804
|
+
progress_callback(step_index, computed_total, step, status, res)
|
|
805
|
+
if not will_retry:
|
|
806
|
+
return results, False
|
|
807
|
+
time.sleep(retry_delay)
|
|
791
808
|
continue
|
|
792
809
|
|
|
793
810
|
attempts = 0
|
|
@@ -844,6 +861,10 @@ def _bootstrap_portacode(
|
|
|
844
861
|
total_steps=total_steps,
|
|
845
862
|
)
|
|
846
863
|
if not ok:
|
|
864
|
+
details = results[-1] if results else {}
|
|
865
|
+
summary = details.get("error_summary") or details.get("stderr") or details.get("stdout") or details.get("name")
|
|
866
|
+
if summary:
|
|
867
|
+
raise RuntimeError(f"Portacode bootstrap steps failed: {summary}")
|
|
847
868
|
raise RuntimeError("Portacode bootstrap steps failed.")
|
|
848
869
|
key_step = next((entry for entry in results if entry.get("name") == "portacode_connect"), None)
|
|
849
870
|
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=xx3S_KMrMvaCb_u6CDGcxc6yRCv1FpMo9IP_Y5NQaeE,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=Ah-92sfur0TBIL_fHE-ro7cgqG_WqTs8G2opouzGwXQ,52209
|
|
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.dev6.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.dev6.dist-info/METADATA,sha256=Lupv2cPUyEr2kc4qrOe8jnf8KLOKgedEn4jqLBtiG20,13051
|
|
94
|
+
portacode-1.4.12.dev6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
95
|
+
portacode-1.4.12.dev6.dist-info/entry_points.txt,sha256=lLUUL-BM6_wwe44Xv0__5NQ1BnAz6jWjSMFvZdWW3zU,48
|
|
96
|
+
portacode-1.4.12.dev6.dist-info/top_level.txt,sha256=TGhTYUxfW8SyVZc_zGgzjzc24gGT7nSw8Qf73liVRKM,41
|
|
97
|
+
portacode-1.4.12.dev6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|