Skip to main content

napalm-amt

NAPALM driver for Intel Active Management Technology (AMT), the management controller built into Intel vPro business desktops, mini PCs and notebooks, over DMTF WS-Management. Built on napalm-device-types. Written for netOrk.

Status: early development. One driver, amt (napalm_amt.AmtDriver), a ManagementControllerDriver from napalm-device-types like the server BMC drivers in napalm-redfish. It reads the machine's identity, hardware, firmware, power state and event log, reports what AMT listens on, and switches the machine's power. It is tested against Intel's published recordings of an AMT 12 (NUC9). Recordings of the first real test devices, two Lenovo ThinkCentre M910x (AMT 11.x), are still to come.

Why a driver of its own

AMT does the job of a server BMC (power control and inventory while the operating system is down or the machine is off), but speaks a different protocol: no Redfish and no IPMI, only WS-Management (SOAP, CIM classes) on port 16992, or 16993 with TLS. It shares nothing with napalm-redfish beyond the role, so it lives here.

Layout

Entry point Transport Scope
amt WS-Management over HTTP (16992) or HTTPS (16993), HTTP Digest auth Read, plus power control; no reset of AMT itself

optional_args: port (16992; 16993 means TLS), tls (overrides what the port implies), verify_ssl (True, a CA file path, or False), retries (1).

The WS-Management client in napalm_amt/wsman.py is self-contained (requests, and defusedxml to parse the answers). Neither pywsman (a C binding) nor python-amt (unmaintained, power only) is used.

What AMT knows, and what it does not

AMT reads the machine's SMBIOS: manufacturer, model, serial number, system UUID, CPUs, DIMMs, drives (sizes only), BIOS version. It has no temperature, fan or power-supply readings on client platforms, no core counts, and no drive models. Where it knows nothing, the driver says so (None, empty) and does not guess. See docs/amt-map.md.

AMT shares the machine's network controller. In DHCP mode it also uses the operating system's IP address. netOrk keeps one device per address, so give AMT a static IP address of its own in the MEBx (docs/lenovo-m910x.md).

Documents

Development

The rules are in STANDARDS.md.

python -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/pytest --cov
.venv/bin/ruff format --check . && .venv/bin/ruff check . && .venv/bin/mypy napalm_amt

Conventions

These follow the other drivers in the NAPALM organisation:

  • Role bases declare, they never implement. Generic logic goes into napalm-device-types, vendor mechanics stay here.
  • Parsing lives in pure functions (napalm_amt/parsers/), tested on recorded responses under tests/fixtures/<source>/, with a COMMANDS.txt listing the request behind each file.

Metadata

Release files for napalm-amt 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for napalm-amt 0.2.0
File Size Uploaded Provenance
napalm_amt-0.2.0.tar.gz 34.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for napalm-amt 0.2.0
File Interpreter ABI Platform
napalm_amt-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 64.4 kB

Release files / napalm_amt-0.2.0.tar.gz

Download URL napalm_amt-0.2.0.tar.gz
Size 34.3 kB
Tags Source
SHA-256 checksum
How to use checksums
36593f38cb8d16b6428966db7e21f6893552798b8e14eba22dcfd49e5870bdf8
BLAKE2b-256 checksum
How to use checksums
2d8895aa08281529f476d61e01db1080e5db83fb906d080c05e93b981bf95a22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / napalm_amt-0.2.0-py3-none-any.whl

Download URL napalm_amt-0.2.0-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
598efbcdf5954afa55f56920cdd85387ddb06860b62e068502d4ab98bc50e487
BLAKE2b-256 checksum
How to use checksums
f1b16800929c200a44448d2865b86653cd021328cc10bf98259f389988b999a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Security for napalm-amt 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page