scrapli 2.0.0a3__py3-none-musllinux_1_1_aarch64.whl → 2.0.0a5__py3-none-musllinux_1_1_aarch64.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.
- scrapli/__init__.py +5 -5
- scrapli/auth.py +14 -7
- scrapli/cli.py +334 -66
- scrapli/cli_parse.py +1 -1
- scrapli/cli_result.py +42 -0
- scrapli/definitions/aethra_atosnt.yaml +9 -0
- scrapli/definitions/alcatel_aos.yaml +9 -0
- scrapli/definitions/arista_eos.yaml +1 -0
- scrapli/definitions/aruba_aoscx.yaml +33 -0
- scrapli/definitions/cisco_aireos.yaml +31 -0
- scrapli/definitions/cisco_asa.yaml +48 -0
- scrapli/definitions/cisco_cbs.yaml +50 -0
- scrapli/definitions/cisco_ftd.yaml +42 -0
- scrapli/definitions/cisco_nxos.yaml +2 -0
- scrapli/definitions/cumulus_linux.yaml +28 -0
- scrapli/definitions/cumulus_vtysh.yaml +42 -0
- scrapli/definitions/datacom_dmos.yaml +30 -0
- scrapli/definitions/datacom_dmswitch.yaml +32 -0
- scrapli/definitions/default.yaml +9 -0
- scrapli/definitions/dell_emc.yaml +46 -0
- scrapli/definitions/dell_enterprisesonic.yaml +40 -0
- scrapli/definitions/dlink_os.yaml +46 -0
- scrapli/definitions/edgecore_ecs.yaml +35 -0
- scrapli/definitions/eltex_esr.yaml +43 -0
- scrapli/definitions/fortinet_fortios.yaml +20 -0
- scrapli/definitions/fortinet_wlc.yaml +33 -0
- scrapli/definitions/hp_comware.yaml +31 -0
- scrapli/definitions/huawei_smartax.yaml +61 -0
- scrapli/definitions/huawei_vrp.yaml +56 -0
- scrapli/definitions/juniper_junos.yaml +3 -0
- scrapli/definitions/nokia_srlinux.yaml +13 -2
- scrapli/definitions/nokia_sros.yaml +31 -0
- scrapli/definitions/nokia_sros_classic.yaml +33 -0
- scrapli/definitions/nokia_sros_classic_aram.yaml +25 -0
- scrapli/definitions/paloalto_panos.yaml +36 -0
- scrapli/definitions/raisecom_ros.yaml +45 -0
- scrapli/definitions/ruckus_fastiron.yaml +45 -0
- scrapli/definitions/ruckus_unleashed.yaml +64 -0
- scrapli/definitions/siemens_roxii.yaml +28 -0
- scrapli/definitions/versa_flexvnf.yaml +45 -0
- scrapli/definitions/vyos_vyos.yaml +35 -0
- scrapli/definitions/zyxel_dslam.yaml +18 -0
- scrapli/ffi.py +1 -1
- scrapli/ffi_mapping.py +92 -37
- scrapli/ffi_mapping_cli.py +146 -22
- scrapli/ffi_mapping_netconf.py +28 -60
- scrapli/ffi_mapping_options.py +38 -6
- scrapli/ffi_types.py +43 -3
- scrapli/helper.py +56 -0
- scrapli/lib/{libscrapli.0.0.1-alpha.10.dylib → libscrapli.0.0.1-alpha.17.dylib} +0 -0
- scrapli/lib/{libscrapli.so.0.0.1-alpha.10 → libscrapli.so.0.0.1-alpha.17} +0 -0
- scrapli/netconf.py +36 -147
- scrapli/transport.py +71 -130
- {scrapli-2.0.0a3.dist-info → scrapli-2.0.0a5.dist-info}/METADATA +1 -1
- scrapli-2.0.0a5.dist-info/RECORD +68 -0
- scrapli-2.0.0a3.dist-info/RECORD +0 -35
- {scrapli-2.0.0a3.dist-info → scrapli-2.0.0a5.dist-info}/WHEEL +0 -0
- {scrapli-2.0.0a3.dist-info → scrapli-2.0.0a5.dist-info}/licenses/LICENSE +0 -0
- {scrapli-2.0.0a3.dist-info → scrapli-2.0.0a5.dist-info}/top_level.txt +0 -0
scrapli/__init__.py
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
from scrapli.auth import LookupKeyValue
|
4
4
|
from scrapli.auth import Options as AuthOptions
|
5
|
-
from scrapli.cli import Cli
|
5
|
+
from scrapli.cli import Cli, ReadCallback
|
6
6
|
from scrapli.netconf import Netconf
|
7
7
|
from scrapli.netconf import Options as NetconfOptions
|
8
8
|
from scrapli.session import Options as SessionOptions
|
9
9
|
from scrapli.transport import BinOptions as TransportBinOptions
|
10
|
-
from scrapli.transport import Options as TransportOptions
|
11
10
|
from scrapli.transport import Ssh2Options as TransportSsh2Options
|
12
11
|
from scrapli.transport import TelnetOptions as TransportTelnetOptions
|
13
12
|
from scrapli.transport import TestOptions as TransportTestOptions
|
14
13
|
|
15
|
-
__version__ = "2.0.0-alpha.
|
16
|
-
|
14
|
+
__version__ = "2.0.0-alpha.5"
|
15
|
+
__calendar_version__ = "2025.7.12"
|
16
|
+
__definitions_version__ = "c38ec6d"
|
17
17
|
|
18
18
|
__all__ = (
|
19
19
|
"AuthOptions",
|
@@ -21,9 +21,9 @@ __all__ = (
|
|
21
21
|
"LookupKeyValue",
|
22
22
|
"Netconf",
|
23
23
|
"NetconfOptions",
|
24
|
+
"ReadCallback",
|
24
25
|
"SessionOptions",
|
25
26
|
"TransportBinOptions",
|
26
|
-
"TransportOptions",
|
27
27
|
"TransportSsh2Options",
|
28
28
|
"TransportTelnetOptions",
|
29
29
|
"TransportTestOptions",
|
scrapli/auth.py
CHANGED
@@ -63,8 +63,8 @@ class Options:
|
|
63
63
|
lookups: a list of key/values that can be "looked up" from a connection -- used in
|
64
64
|
conjunction with platform definition templating like `__lookup::enable` where "enable"
|
65
65
|
is the key to "lookup" in the list of lookup key/values.
|
66
|
-
|
67
|
-
|
66
|
+
force_in_session_auth: unconditionally force the in session auth process.
|
67
|
+
bypass_in_session_auth: skip in session auth even if transport (telnet/bin) expect it.
|
68
68
|
username_pattern: the regex pattern to use to look for a username prompt
|
69
69
|
password_pattern: the regex pattern to use to look for a password prompt
|
70
70
|
private_key_passphrase_pattern: the regex pattern to use to look for a passphrase prompt
|
@@ -82,7 +82,8 @@ class Options:
|
|
82
82
|
private_key_path: str | None = None
|
83
83
|
private_key_passphrase: str | None = None
|
84
84
|
lookups: list[LookupKeyValue] | None = None
|
85
|
-
|
85
|
+
force_in_session_auth: bool | None = None
|
86
|
+
bypass_in_session_auth: bool | None = None
|
86
87
|
username_pattern: str | None = None
|
87
88
|
password_pattern: str | None = None
|
88
89
|
private_key_passphrase_pattern: str | None = None
|
@@ -154,10 +155,15 @@ class Options:
|
|
154
155
|
if status != 0:
|
155
156
|
raise OptionsException("failed to set auth lookup key/value")
|
156
157
|
|
157
|
-
if self.
|
158
|
-
status = ffi_mapping.options_mapping.auth.
|
158
|
+
if self.force_in_session_auth is not None:
|
159
|
+
status = ffi_mapping.options_mapping.auth.set_force_in_session_auth(ptr)
|
159
160
|
if status != 0:
|
160
|
-
raise OptionsException("failed to set
|
161
|
+
raise OptionsException("failed to set force in session auth")
|
162
|
+
|
163
|
+
if self.bypass_in_session_auth is not None:
|
164
|
+
status = ffi_mapping.options_mapping.auth.set_bypass_in_session_auth(ptr)
|
165
|
+
if status != 0:
|
166
|
+
raise OptionsException("failed to set bypass in session auth")
|
161
167
|
|
162
168
|
if self.username_pattern is not None:
|
163
169
|
self._username_pattern = to_c_string(self.username_pattern)
|
@@ -209,7 +215,8 @@ class Options:
|
|
209
215
|
f"private_key_path={self.private_key_path!r} "
|
210
216
|
f"private_key_passphrase={self.private_key_passphrase!r} "
|
211
217
|
f"lookups={self.lookups!r}) "
|
212
|
-
f"
|
218
|
+
f"force_in_session_auth={self.force_in_session_auth!r}) "
|
219
|
+
f"bypass_in_session_auth={self.bypass_in_session_auth!r}) "
|
213
220
|
f"username_pattern={self.username_pattern!r}) "
|
214
221
|
f"password_pattern={self.password_pattern!r}) "
|
215
222
|
f"private_key_passphrase_pattern={self.private_key_passphrase_pattern!r}) "
|