portacode 1.4.15.dev11__py3-none-any.whl → 1.4.15.dev12__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.15.dev11'
32
- __version_tuple__ = version_tuple = (1, 4, 15, 'dev11')
31
+ __version__ = version = '1.4.15.dev12'
32
+ __version_tuple__ = version_tuple = (1, 4, 15, 'dev12')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -618,6 +618,24 @@ def _guess_package_manager_from_template(template: str) -> str:
618
618
  return "apt"
619
619
 
620
620
 
621
+ def _detect_package_manager(vmid: int) -> str:
622
+ candidates = [
623
+ ("apt", "apt-get"),
624
+ ("dnf", "dnf"),
625
+ ("yum", "yum"),
626
+ ("apk", "apk"),
627
+ ("pacman", "pacman"),
628
+ ("zypper", "zypper"),
629
+ ]
630
+ for name, binary in candidates:
631
+ res = _run_pct(vmid, f"command -v {binary} >/dev/null 2>&1")
632
+ if res.get("returncode") == 0:
633
+ logger.debug("Detected package manager %s inside container %s", name, vmid)
634
+ return name
635
+ logger.warning("Unable to detect package manager inside container %s; defaulting to apt", vmid)
636
+ return "apt"
637
+
638
+
621
639
  def _get_storage_type(storages: Iterable[Dict[str, Any]], storage_name: str) -> str:
622
640
  for entry in storages:
623
641
  if entry.get("storage") == storage_name:
@@ -1095,7 +1113,16 @@ def _bootstrap_portacode(
1095
1113
  total_steps: Optional[int] = None,
1096
1114
  default_public_key: Optional[str] = None,
1097
1115
  ) -> Tuple[str, List[Dict[str, Any]]]:
1098
- actual_steps = steps if steps is not None else _build_bootstrap_steps(user, password, ssh_key)
1116
+ if steps is not None:
1117
+ actual_steps = steps
1118
+ else:
1119
+ detected_manager = _detect_package_manager(vmid)
1120
+ actual_steps = _build_bootstrap_steps(
1121
+ user,
1122
+ password,
1123
+ ssh_key,
1124
+ package_manager=detected_manager,
1125
+ )
1099
1126
  results, ok = _run_setup_steps(
1100
1127
  vmid,
1101
1128
  actual_steps,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: portacode
3
- Version: 1.4.15.dev11
3
+ Version: 1.4.15.dev12
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=xmWnbzztE5Rc80b-QMEet19V4hm80qIDp1evukvT-mY,721
4
+ portacode/_version.py,sha256=Onnf1SIY68AMKoWtMkpxq_B6Sw_RYyZQ86CKs_MVF84,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=GX2IE1J0YX5GHnqqn__e_wpag_Lsa-cWVRQ82MZnbjU,67267
25
+ portacode/connection/handlers/proxmox_infra.py,sha256=aPVc55P8b0EqK4JGCw68EDZSscaBmYzH1DaxgRi3W0s,68061
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.dev11.dist-info/licenses/LICENSE,sha256=2FGbCnUDgRYuQTkB1O1dUUpu5CVAjK1j4_p6ack9Z54,1066
68
+ portacode-1.4.15.dev12.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.dev11.dist-info/METADATA,sha256=YjU_cRf0I5P6zz-KmGOslg3APj4CL8IgOHbP13Z6T1U,13052
95
- portacode-1.4.15.dev11.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
96
- portacode-1.4.15.dev11.dist-info/entry_points.txt,sha256=lLUUL-BM6_wwe44Xv0__5NQ1BnAz6jWjSMFvZdWW3zU,48
97
- portacode-1.4.15.dev11.dist-info/top_level.txt,sha256=TGhTYUxfW8SyVZc_zGgzjzc24gGT7nSw8Qf73liVRKM,41
98
- portacode-1.4.15.dev11.dist-info/RECORD,,
94
+ portacode-1.4.15.dev12.dist-info/METADATA,sha256=dwNd_5apDmi-D2oDUKfEzBfEWsG7tzgjMSK0VwczFnE,13052
95
+ portacode-1.4.15.dev12.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
96
+ portacode-1.4.15.dev12.dist-info/entry_points.txt,sha256=lLUUL-BM6_wwe44Xv0__5NQ1BnAz6jWjSMFvZdWW3zU,48
97
+ portacode-1.4.15.dev12.dist-info/top_level.txt,sha256=TGhTYUxfW8SyVZc_zGgzjzc24gGT7nSw8Qf73liVRKM,41
98
+ portacode-1.4.15.dev12.dist-info/RECORD,,