chore: adopt the NAPALM driver standard
driver / standard (pull_request) Successful in 15s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 44s
driver / test (3.10) (pull_request) Successful in 46s
driver / test (3.11) (pull_request) Successful in 45s
driver / test (3.12) (pull_request) Successful in 42s
driver / test (3.13) (pull_request) Successful in 38s
driver / lowest (pull_request) Successful in 22s
driver / security (pull_request) Successful in 45s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m30s
driver / publish (pull_request) Skipped

- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
  of NAPALM/driver-standard; .github/ is gone.
- requires-python >=3.10 (napalm-device-types needs it), LICENSE file,
  py.typed, setuptools>=77 with the SPDX license string, Issues and
  Changelog links on git.netork.io, napalm-device-types>=4.21.1 from PyPI,
  floors on the dev extra.
- mypy strict for the whole package, no module exempt: optional_args is
  dict[str, Any] | None.
- tests/quality_baseline.json records get_facts and get_route_to, over
  complexity 10. Coverage floor 95 % (measured 95.67 %).
- CHANGELOG.md in Keep a Changelog form; the README says no host output is
  recorded yet, links napalm-device-types in the NAPALM org and pypsrp on
  PyPI.
This commit is contained in:
Christian Manivong committed 2026-10-23 08:49:27 +02:00
1 parent 989e826b34
commit d43d697700
9 files changed
+288 -67

No files matched your search

+24 -5
View File
@@ -1,10 +1,21 @@
# napalm-windows
NAPALM driver for Windows Server 2016+ and Windows 10/11, part of the netOrk
driver family built on [`napalm-device-types`](https://git.netork.io/christianmanivong/napalm-device-types).
driver family built on [`napalm-device-types`](https://git.netork.io/NAPALM/napalm-device-types).
Driver name: `windows` · Role: `OSDriver` · Transport: PowerShell Remoting
(PSRP) over WinRM via [`pypsrp`](https://github.com/jborean93/pypsrp).
(PSRP) over WinRM via [`pypsrp`](https://pypi.org/project/pypsrp/).
## Tested against
Not recorded yet: the fixtures under `tests/fixtures/synthetic/` are the JSON the scripts
are designed to emit, not output recorded from a host.
## Install
```bash
pip install napalm-windows
```
## How it works
@@ -58,13 +69,17 @@ remote UAC strips the admin token. Domain accounts are not affected.
| `winrm_auth` | `negotiate` | pypsrp auth protocol (`negotiate`, `ntlm`, `kerberos`, `credssp`, `basic`) |
| `ssl_verify` | `True` | validate the WinRM certificate |
## Tests and fixtures
## Development
The rules are in [STANDARDS.md](https://git.netork.io/NAPALM/driver-standard/src/branch/main/STANDARDS.md).
```bash
pip install -e ".[dev]"
pytest
python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytest --cov
```
## Tests and fixtures
`tests/fixtures/synthetic/` holds the JSON the scripts are *designed* to emit.
To record the real thing from a host:
@@ -74,3 +89,7 @@ python tools/harvest.py <host> <user> <label> [--port 5985] [--insecure]
Output lands in `tools/harvest-out/` (gitignored); scrub it before copying
anything into `tests/`.
## License
Apache-2.0, see [LICENSE](LICENSE).