portacode 1.4.15.dev16__py3-none-any.whl → 1.4.15.dev18__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 +15 -10
- {portacode-1.4.15.dev16.dist-info → portacode-1.4.15.dev18.dist-info}/METADATA +1 -1
- {portacode-1.4.15.dev16.dist-info → portacode-1.4.15.dev18.dist-info}/RECORD +8 -8
- {portacode-1.4.15.dev16.dist-info → portacode-1.4.15.dev18.dist-info}/WHEEL +0 -0
- {portacode-1.4.15.dev16.dist-info → portacode-1.4.15.dev18.dist-info}/entry_points.txt +0 -0
- {portacode-1.4.15.dev16.dist-info → portacode-1.4.15.dev18.dist-info}/licenses/LICENSE +0 -0
- {portacode-1.4.15.dev16.dist-info → portacode-1.4.15.dev18.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.15.
|
|
32
|
-
__version_tuple__ = version_tuple = (1, 4, 15, '
|
|
31
|
+
__version__ = version = '1.4.15.dev18'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 4, 15, 'dev18')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -496,6 +496,16 @@ def _friendly_step_label(step_name: str) -> str:
|
|
|
496
496
|
return normalized.capitalize()
|
|
497
497
|
|
|
498
498
|
|
|
499
|
+
_NETWORK_WAIT_CMD = (
|
|
500
|
+
"count=0; "
|
|
501
|
+
"while [ \"$count\" -lt 20 ]; do "
|
|
502
|
+
" if command -v ip >/dev/null 2>&1 && ip route get 1.1.1.1 >/dev/null 2>&1; then break; fi; "
|
|
503
|
+
" if [ -f /proc/net/route ] && grep -q '^00000000' /proc/net/route >/dev/null 2>&1; then break; fi; "
|
|
504
|
+
" sleep 1; "
|
|
505
|
+
" count=$((count+1)); "
|
|
506
|
+
"done"
|
|
507
|
+
)
|
|
508
|
+
|
|
499
509
|
_PACKAGE_MANAGER_PROFILES: Dict[str, Dict[str, Any]] = {
|
|
500
510
|
"apt": {
|
|
501
511
|
"update_cmd": "apt-get update -y",
|
|
@@ -570,7 +580,9 @@ def _build_bootstrap_steps(
|
|
|
570
580
|
package_manager: str = "apt",
|
|
571
581
|
) -> List[Dict[str, Any]]:
|
|
572
582
|
profile = _PACKAGE_MANAGER_PROFILES.get(package_manager, _PACKAGE_MANAGER_PROFILES["apt"])
|
|
573
|
-
steps: List[Dict[str, Any]] = [
|
|
583
|
+
steps: List[Dict[str, Any]] = [
|
|
584
|
+
{"name": "wait_for_network", "cmd": _NETWORK_WAIT_CMD, "retries": 0},
|
|
585
|
+
]
|
|
574
586
|
update_cmd = profile.get("update_cmd")
|
|
575
587
|
if update_cmd:
|
|
576
588
|
steps.append(
|
|
@@ -845,16 +857,9 @@ def _connect_proxmox(config: Dict[str, Any]) -> Any:
|
|
|
845
857
|
)
|
|
846
858
|
|
|
847
859
|
|
|
848
|
-
def _pick_shell() -> str:
|
|
849
|
-
for candidate in ("/bin/bash", "/bin/sh"):
|
|
850
|
-
if Path(candidate).exists():
|
|
851
|
-
return candidate
|
|
852
|
-
return "sh"
|
|
853
|
-
|
|
854
|
-
|
|
855
860
|
def _run_pct(vmid: int, cmd: str, input_text: Optional[str] = None) -> Dict[str, Any]:
|
|
856
|
-
shell =
|
|
857
|
-
full = ["pct", "exec", str(vmid), "--", shell, "-
|
|
861
|
+
shell = "/bin/sh"
|
|
862
|
+
full = ["pct", "exec", str(vmid), "--", shell, "-c", cmd]
|
|
858
863
|
start = time.time()
|
|
859
864
|
proc = subprocess.run(full, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, input=input_text)
|
|
860
865
|
return {
|
|
@@ -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=B3tsleRwlieqgsIZ7WV5o4GvrkURX4jF1Xtc9tNnmTo,721
|
|
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=4o9_l0yDnjncc0nDgdh79ghq8NUSUzHa211V3jiJN58,69742
|
|
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=fr12QpOr_Z8KYGUU-AYrTQwRPAcrLK85hvj3SEq1Kw8,14757
|
|
@@ -65,7 +65,7 @@ portacode/utils/__init__.py,sha256=NgBlWTuNJESfIYJzP_3adI1yJQJR0XJLRpSdVNaBAN0,3
|
|
|
65
65
|
portacode/utils/diff_apply.py,sha256=4Oi7ft3VUCKmiUE4VM-OeqO7Gk6H7PF3WnN4WHXtjxI,15157
|
|
66
66
|
portacode/utils/diff_renderer.py,sha256=S76StnQ2DLfsz4Gg0m07UwPfRp8270PuzbNaQq-rmYk,13850
|
|
67
67
|
portacode/utils/ntp_clock.py,sha256=VqCnWCTehCufE43W23oB-WUdAZGeCcLxkmIOPwInYHc,2499
|
|
68
|
-
portacode-1.4.15.
|
|
68
|
+
portacode-1.4.15.dev18.dist-info/licenses/LICENSE,sha256=2FGbCnUDgRYuQTkB1O1dUUpu5CVAjK1j4_p6ack9Z54,1066
|
|
69
69
|
test_modules/README.md,sha256=Do_agkm9WhSzueXjRAkV_xEj6Emy5zB3N3VKY5Roce8,9274
|
|
70
70
|
test_modules/__init__.py,sha256=1LcbHodIHsB0g-g4NGjSn6AMuCoGbymvXPYLOb6Z7F0,53
|
|
71
71
|
test_modules/test_device_online.py,sha256=QtYq0Dq9vME8Gp2O4fGSheqVf8LUtpsSKosXXk56gGM,1654
|
|
@@ -91,8 +91,8 @@ testing_framework/core/playwright_manager.py,sha256=Tw46qwxIhOFkS48C2IWIQHHNpEe-
|
|
|
91
91
|
testing_framework/core/runner.py,sha256=j2QwNJmAxVBmJvcbVS7DgPJUKPNzqfLmt_4NNdaKmZU,19297
|
|
92
92
|
testing_framework/core/shared_cli_manager.py,sha256=BESSNtyQb7BOlaOvZmm04T8Uezjms4KCBs2MzTxvzYQ,8790
|
|
93
93
|
testing_framework/core/test_discovery.py,sha256=2FZ9fJ8Dp5dloA-fkgXoJ_gCMC_nYPBnA3Hs2xlagzM,4928
|
|
94
|
-
portacode-1.4.15.
|
|
95
|
-
portacode-1.4.15.
|
|
96
|
-
portacode-1.4.15.
|
|
97
|
-
portacode-1.4.15.
|
|
98
|
-
portacode-1.4.15.
|
|
94
|
+
portacode-1.4.15.dev18.dist-info/METADATA,sha256=3_yG4u2cPSIlyp25yHq95Z-NM__rj6nXAM_FEGrTNo4,13052
|
|
95
|
+
portacode-1.4.15.dev18.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
96
|
+
portacode-1.4.15.dev18.dist-info/entry_points.txt,sha256=lLUUL-BM6_wwe44Xv0__5NQ1BnAz6jWjSMFvZdWW3zU,48
|
|
97
|
+
portacode-1.4.15.dev18.dist-info/top_level.txt,sha256=TGhTYUxfW8SyVZc_zGgzjzc24gGT7nSw8Qf73liVRKM,41
|
|
98
|
+
portacode-1.4.15.dev18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|