zscams 2.0.4__py3-none-any.whl → 2.0.6__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.
- zscams/agent/config.yaml +1 -1
- zscams/agent/configuration/freebsd_service.j2 +20 -0
- zscams/agent/configuration/{service.j2 → linux_service.j2} +1 -0
- zscams/agent/src/core/backend/bootstrap.py +4 -3
- zscams/agent/src/services/reverse_ssh.py +2 -1
- zscams/agent/src/services/ssh_forwarder.py +2 -1
- zscams/deps.py +13 -1
- {zscams-2.0.4.dist-info → zscams-2.0.6.dist-info}/METADATA +1 -4
- {zscams-2.0.4.dist-info → zscams-2.0.6.dist-info}/RECORD +11 -10
- {zscams-2.0.4.dist-info → zscams-2.0.6.dist-info}/WHEEL +0 -0
- {zscams-2.0.4.dist-info → zscams-2.0.6.dist-info}/entry_points.txt +0 -0
zscams/agent/config.yaml
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# PROVIDE: zscams
|
|
4
|
+
# REQUIRE: NETWORKING
|
|
5
|
+
# KEYWORD: shutdown
|
|
6
|
+
|
|
7
|
+
. /etc/rc.subr
|
|
8
|
+
|
|
9
|
+
name="zscams"
|
|
10
|
+
rcvar="zscams_enable"
|
|
11
|
+
|
|
12
|
+
# Execution command and arguments
|
|
13
|
+
command="{ python_exec }"
|
|
14
|
+
command_args="-m zscams"
|
|
15
|
+
|
|
16
|
+
# User to run the process
|
|
17
|
+
zscams_user="{user_to_run_as}"
|
|
18
|
+
|
|
19
|
+
load_rc_config $name
|
|
20
|
+
run_rc_command "$1"
|
|
@@ -6,7 +6,7 @@ from typing import cast
|
|
|
6
6
|
from zscams.agent.src.core.backend.client import backend_client
|
|
7
7
|
from zscams.agent.src.support.configuration import reinitialize
|
|
8
8
|
from zscams.agent.src.support.logger import get_logger
|
|
9
|
-
from zscams.agent.src.support.os import create_system_user, install_service
|
|
9
|
+
from zscams.agent.src.support.os import create_system_user, install_service, is_freebsd
|
|
10
10
|
from zscams.agent.src.support.ssh import add_to_authorized_keys
|
|
11
11
|
from zscams.agent.src.support.cli import prompt
|
|
12
12
|
|
|
@@ -67,10 +67,11 @@ def install_zscams_systemd_service(user_to_run_as: str):
|
|
|
67
67
|
import zscams
|
|
68
68
|
|
|
69
69
|
BASE_DIR = Path(zscams.__file__).resolve().parent
|
|
70
|
-
|
|
70
|
+
filename = "linux_service.j2" if is_freebsd() else "freebsd_service.j2"
|
|
71
|
+
template_path = f"{BASE_DIR}/agent/configuration/{filename}.j2"
|
|
71
72
|
with open(template_path) as f:
|
|
72
73
|
template = f.read()
|
|
73
74
|
|
|
74
75
|
rendered_config = template.format(**data)
|
|
75
76
|
|
|
76
|
-
install_service("zscams.service", rendered_config)
|
|
77
|
+
install_service("zscams" if is_freebsd() else "zscams.service", rendered_config)
|
|
@@ -3,6 +3,7 @@ import json
|
|
|
3
3
|
import os
|
|
4
4
|
import sys
|
|
5
5
|
from zscams.agent.src.support.logger import get_logger
|
|
6
|
+
from zscams.agent.src.support.filesystem import resolve_path
|
|
6
7
|
|
|
7
8
|
logger = get_logger("autossh_service")
|
|
8
9
|
|
|
@@ -17,7 +18,7 @@ params = json.loads(params_env)
|
|
|
17
18
|
LOCAL_PORT = params.get("local_port", 4422)
|
|
18
19
|
SERVER_SSH_USER = params.get("server_ssh_user", "ssh_user")
|
|
19
20
|
REVERSE_PORT = params.get("reverse_port", 2222)
|
|
20
|
-
PRIVATE_KEY = params.get("private_key") # Path to RSA key
|
|
21
|
+
PRIVATE_KEY = resolve_path(params.get("private_key")) # Path to RSA key
|
|
21
22
|
SSH_OPTIONS = params.get("ssh_options", [])
|
|
22
23
|
CHECK_INTERVAL = 120 #
|
|
23
24
|
|
|
@@ -3,6 +3,7 @@ import json
|
|
|
3
3
|
import os
|
|
4
4
|
import sys
|
|
5
5
|
from zscams.agent.src.support.logger import get_logger
|
|
6
|
+
from zscams.agent.src.support.filesystem import resolve_path
|
|
6
7
|
|
|
7
8
|
logger = get_logger("autossh_service")
|
|
8
9
|
|
|
@@ -19,7 +20,7 @@ LOCAL_PORT = params.get("local_port", 4422)
|
|
|
19
20
|
REMOTE_PORT = params.get("remote_port", 4422)
|
|
20
21
|
REMOTE_HOST = params.get("remote_host", "localhost")
|
|
21
22
|
SERVER_SSH_USER = params.get("server_ssh_user", "ssh_user")
|
|
22
|
-
PRIVATE_KEY = params.get("private_key") # Path to RSA key
|
|
23
|
+
PRIVATE_KEY = resolve_path(params.get("private_key")) # Path to RSA key
|
|
23
24
|
SSH_OPTIONS = params.get("ssh_options", [])
|
|
24
25
|
CHECK_INTERVAL = 120 #
|
|
25
26
|
|
zscams/deps.py
CHANGED
|
@@ -15,6 +15,18 @@ def ensure_native_deps():
|
|
|
15
15
|
platform.system().lower() != "freebsd"
|
|
16
16
|
and platform.system().lower() != "zscaleros"
|
|
17
17
|
):
|
|
18
|
+
# --- Linux/Standard Path ---
|
|
19
|
+
# On Linux, we just use pip to install the missing pieces
|
|
20
|
+
# We use 'PyYAML' instead of 'yaml' for pip
|
|
21
|
+
deps_map = ["cryptography", "pyyaml", "psutil"]
|
|
22
|
+
# Identify which modules are actually missing
|
|
23
|
+
missing_mods = [mod for mod in deps_map if not is_installed(mod)]
|
|
24
|
+
if not missing_mods:
|
|
25
|
+
return # Everything is already installed
|
|
26
|
+
print(f"--> Installing via pip: {missing_mods}")
|
|
27
|
+
subprocess.run(
|
|
28
|
+
[sys.executable, "-m", "pip", "install"] + missing_mods, check=True
|
|
29
|
+
)
|
|
18
30
|
return
|
|
19
31
|
|
|
20
32
|
# 1. Define what we need and how FreeBSD names them
|
|
@@ -81,6 +93,6 @@ def ensure_native_deps():
|
|
|
81
93
|
print("--> Please restart your command to apply changes.")
|
|
82
94
|
sys.exit(0)
|
|
83
95
|
except subprocess.CalledProcessError:
|
|
84
|
-
print("--> Error: Failed to install packages. Check your internet connection.")
|
|
96
|
+
print(f"--> Error: Failed to install packages. Check your internet connection.")
|
|
85
97
|
print(f"--> Manual command: sudo pkg install {' '.join(targets)}")
|
|
86
98
|
sys.exit(1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: zscams
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.6
|
|
4
4
|
Summary: Async TLS tunnel client with SNI routing, auto-reconnect, and health checks
|
|
5
5
|
Author: OCD - Cairo Software Team
|
|
6
6
|
Maintainer: OCD - Cairo Software Team
|
|
@@ -11,10 +11,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
-
Requires-Dist: PyYAML ; sys_platform != "freebsd"
|
|
15
|
-
Requires-Dist: cryptography ; sys_platform != "freebsd"
|
|
16
14
|
Requires-Dist: getmac
|
|
17
|
-
Requires-Dist: psutil ; sys_platform != "freebsd"
|
|
18
15
|
Requires-Dist: requests
|
|
19
16
|
Description-Content-Type: text/markdown
|
|
20
17
|
|
|
@@ -2,13 +2,14 @@ zscams/__init__.py,sha256=xAeDJU2cSBrdspt5aVRTYIzAbGSGvn-CtGV4qc7moQ0,59
|
|
|
2
2
|
zscams/__main__.py,sha256=J3ArryUM5B-nVwMMNPmDGRHctehDF9ZaGGHfLHiP1jI,1055
|
|
3
3
|
zscams/agent/__init__.py,sha256=CKNRkV_frJyFrnFU0Nrf6xp4Ja4a_w7j7qrja_h8VUU,2976
|
|
4
4
|
zscams/agent/certificates/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
zscams/agent/config.yaml,sha256=
|
|
5
|
+
zscams/agent/config.yaml,sha256=0DuIENHlSoo6nRg4Xa0ZljHGgDGQiWSEX8b_uRMtpS0,2542
|
|
6
6
|
zscams/agent/configuration/config.j2,sha256=DLkSd-opbPzFLvNipnPLx-OsUpISlZprPzabYjPF1-E,2659
|
|
7
|
-
zscams/agent/configuration/
|
|
7
|
+
zscams/agent/configuration/freebsd_service.j2,sha256=d0Nh6WJFGw7PhO_dfUjECx2NXTGagalvuIE0aulXIYE,309
|
|
8
|
+
zscams/agent/configuration/linux_service.j2,sha256=UOrGrXvBK2mFit_b3QxUAKgZhG-dmKV8-45bksxL4NE,225
|
|
8
9
|
zscams/agent/keys/autoport.key,sha256=hZBmtw_nLsZwe11LYlwLL-P_blQ_qpUDpFwvqOZDZFE,1679
|
|
9
10
|
zscams/agent/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
11
|
zscams/agent/src/core/__init__.py,sha256=CEDwvbxojtNZOfOOFBj-URg4Q0KB0cq9AqIiD0uzPic,24
|
|
11
|
-
zscams/agent/src/core/backend/bootstrap.py,sha256=
|
|
12
|
+
zscams/agent/src/core/backend/bootstrap.py,sha256=Dvh6Hesy9M-5zX4iQxvSSlX6HD2Ty4vU5EG_nyHWQks,2463
|
|
12
13
|
zscams/agent/src/core/backend/client.py,sha256=xZw2GuOVw6Ek-QI9OaUO4rqzIrs4xGwiPizBLCH89fo,10123
|
|
13
14
|
zscams/agent/src/core/backend/exceptions.py,sha256=osMbVb_ZGvrGbw5cOCMG1s4yBLukJl7T8TITCcVPyXA,383
|
|
14
15
|
zscams/agent/src/core/backend/update_machine_info.py,sha256=9chBdvsLeLVf5DsvSHiUO9xQpXSbDgqhdnrUwxyoKUM,474
|
|
@@ -19,8 +20,8 @@ zscams/agent/src/core/tunnel/__init__.py,sha256=BvJmqtjliO-UvmEguOwky8KSGLY_w8xq
|
|
|
19
20
|
zscams/agent/src/core/tunnel/tls.py,sha256=EIRR7aLq6BkW6jUVseM1YCqm7E_UDVSQ9CffQri2U6U,2006
|
|
20
21
|
zscams/agent/src/core/tunnels.py,sha256=FwYi9cV3V7c_su5cEgXmyNdr8VyfCBKzU5olvi2MzBw,1736
|
|
21
22
|
zscams/agent/src/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
zscams/agent/src/services/reverse_ssh.py,sha256
|
|
23
|
-
zscams/agent/src/services/ssh_forwarder.py,sha256=
|
|
23
|
+
zscams/agent/src/services/reverse_ssh.py,sha256=nAALz2pjaSAmax8Q_ojjuVfaUb2ZaB9UpR-nuv3iwMQ,2156
|
|
24
|
+
zscams/agent/src/services/ssh_forwarder.py,sha256=RSlEhxxbeNmEUhnolWEA1tjSzQyaXsnJHpayf1LDYCs,2298
|
|
24
25
|
zscams/agent/src/services/system_monitor.py,sha256=7VeSYHbr1Lv8tGVg0AMMd5_o7EgMGuRDlxJjxpGM27g,7529
|
|
25
26
|
zscams/agent/src/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
27
|
zscams/agent/src/support/cli.py,sha256=6Y0zokhwhWcsmjEosGqq_kMqF3tn4juPpsBmQax1Oyc,1221
|
|
@@ -33,9 +34,9 @@ zscams/agent/src/support/openssl.py,sha256=jLSv8ajIw1YfNdBhz4KSvNp-cARLXY9-7qdzn
|
|
|
33
34
|
zscams/agent/src/support/os.py,sha256=g2TYgRLvb1snl236m-TKNqFe6jLTFyIT3YOH9cCKY8Y,4769
|
|
34
35
|
zscams/agent/src/support/ssh.py,sha256=J9-XsVc6fGdcTN9CsfmgDRaMnfaWluDUaPGug7BVl6Q,812
|
|
35
36
|
zscams/agent/src/support/yaml.py,sha256=bKsQzXHAgjCxkGzPR8bgaUPB-QHMR3AMEVuvn4RRpnA,1188
|
|
36
|
-
zscams/deps.py,sha256=
|
|
37
|
+
zscams/deps.py,sha256=D2WEI7dLoMnPl_OL7NOSXe-k25p1FFeeGsY1Mh7IIEw,3630
|
|
37
38
|
zscams/lib/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
-
zscams-2.0.
|
|
39
|
-
zscams-2.0.
|
|
40
|
-
zscams-2.0.
|
|
41
|
-
zscams-2.0.
|
|
39
|
+
zscams-2.0.6.dist-info/METADATA,sha256=sP8qC6GUenw7tAGmBfNWC5TBFUR9Arhml9APowQ48Ug,6805
|
|
40
|
+
zscams-2.0.6.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
41
|
+
zscams-2.0.6.dist-info/entry_points.txt,sha256=IXiMYjEq4q0tUiD9O7eCWhqKBuOssXrMW42siTBAgG8,47
|
|
42
|
+
zscams-2.0.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|