portacode 1.4.12.dev8__py3-none-any.whl → 1.4.12.dev9__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 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.dev8'
32
- __version_tuple__ = version_tuple = (1, 4, 12, 'dev8')
31
+ __version__ = version = '1.4.12.dev9'
32
+ __version_tuple__ = version_tuple = (1, 4, 12, 'dev9')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -704,9 +704,12 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
704
704
  stable = 0
705
705
  history: List[Dict[str, Any]] = []
706
706
 
707
+ process_exited = False
708
+ exit_out = exit_err = ""
707
709
  while time.time() - start < timeout_s:
708
710
  if proc.poll() is not None:
709
- out, err = proc.communicate(timeout=1)
711
+ process_exited = True
712
+ exit_out, exit_err = proc.communicate(timeout=1)
710
713
  history.append(
711
714
  {
712
715
  "timestamp_s": round(time.time() - start, 2),
@@ -714,13 +717,7 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
714
717
  "returncode": proc.returncode,
715
718
  }
716
719
  )
717
- return {
718
- "ok": False,
719
- "error": "portacode connect exited before keys were created",
720
- "stdout": (out or "").strip(),
721
- "stderr": (err or "").strip(),
722
- "history": history,
723
- }
720
+ break
724
721
  pub_size = file_size(pub_path)
725
722
  priv_size = file_size(priv_path)
726
723
  if pub_size and priv_size:
@@ -749,13 +746,29 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
749
746
  )
750
747
  time.sleep(1)
751
748
 
752
- if stable < 1:
749
+ final_pub = file_size(pub_path)
750
+ final_priv = file_size(priv_path)
751
+ if final_pub and final_priv:
752
+ key_res = _run_pct(vmid, f"su - {user} -c 'cat {pub_path}'")
753
+ if not process_exited:
754
+ proc.terminate()
755
+ try:
756
+ proc.wait(timeout=3)
757
+ except subprocess.TimeoutExpired:
758
+ proc.kill()
759
+ return {
760
+ "ok": True,
761
+ "public_key": key_res["stdout"].strip(),
762
+ "history": history,
763
+ }
764
+
765
+ if not process_exited:
753
766
  proc.terminate()
754
767
  try:
755
768
  proc.wait(timeout=3)
756
769
  except subprocess.TimeoutExpired:
757
770
  proc.kill()
758
- out, err = proc.communicate(timeout=1)
771
+ exit_out, exit_err = proc.communicate(timeout=1)
759
772
  history.append(
760
773
  {
761
774
  "timestamp_s": round(time.time() - start, 2),
@@ -765,8 +778,8 @@ def _portacode_connect_and_read_key(vmid: int, user: str, timeout_s: int = 10) -
765
778
  return {
766
779
  "ok": False,
767
780
  "error": "timed out waiting for portacode key files",
768
- "stdout": (out or "").strip(),
769
- "stderr": (err or "").strip(),
781
+ "stdout": (exit_out or "").strip(),
782
+ "stderr": (exit_err or "").strip(),
770
783
  "history": history,
771
784
  }
772
785
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: portacode
3
- Version: 1.4.12.dev8
3
+ Version: 1.4.12.dev9
4
4
  Summary: Portacode CLI client and SDK
5
5
  Home-page: https://github.com/portacode/portacode
6
6
  Author: Meena Erian
@@ -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=nE85_ZPmwxcGnUUwZo-c56maL3k35W0GWwB3dFJmT-o,719
4
+ portacode/_version.py,sha256=668tKeXH3yS3aDZZCVfpH0iZLHQBrnhANFyo3U_UO7I,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=9YYIZFf1uMcB67vBqPA14gQd14-QZo-DX8eS7mekF14,53103
25
+ portacode/connection/handlers/proxmox_infra.py,sha256=3niOt7a_SiIc1w1ttpdd5EUCPEbn5iIXqF1ICjMrbG8,53478
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.dev8.dist-info/licenses/LICENSE,sha256=2FGbCnUDgRYuQTkB1O1dUUpu5CVAjK1j4_p6ack9Z54,1066
67
+ portacode-1.4.12.dev9.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.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,,
93
+ portacode-1.4.12.dev9.dist-info/METADATA,sha256=tdgA96CBjBD2vmvw6YxPUuKb02U3pGI_8Anoo69rQqE,13051
94
+ portacode-1.4.12.dev9.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
95
+ portacode-1.4.12.dev9.dist-info/entry_points.txt,sha256=lLUUL-BM6_wwe44Xv0__5NQ1BnAz6jWjSMFvZdWW3zU,48
96
+ portacode-1.4.12.dev9.dist-info/top_level.txt,sha256=TGhTYUxfW8SyVZc_zGgzjzc24gGT7nSw8Qf73liVRKM,41
97
+ portacode-1.4.12.dev9.dist-info/RECORD,,