- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
of NAPALM/driver-standard; .github/ goes.
- requires-python >=3.10 (napalm-device-types needs it), CHANGELOG,
py.typed, SPDX license string, Issues and Changelog links; a dev extra
with floors.
- napalm-device-types >=4.21.1 is declared: officeconnect.py imports
SwitchDriver and FingerprintRule from it, but the package did not list it.
- urllib3 gets a true floor (>=1.23): unbounded, the lowest job installed a
version that does not import on Python 3.10.
- mypy strict for the package; napalm_hpe_officeconnect.officeconnect is
exempt for now (4 errors: three ClassVar fingerprint attributes the base
declares as instance variables, one bare dict), recorded in the quality
baseline. Coverage floor 91 % (measured 91.83 %).
These switches have no CLI at all — no SSH, no Telnet and no ArubaOS-Switch
REST API — so the ProCurve driver cannot serve them despite the shared
vendor. The only management surface is the web UI, which ships its table
data as JavaScript array literals; those parse with ast.literal_eval, so
the driver needs no HTML parser and no dependency beyond napalm/requests.
Read-only by design: the platform exposes a single administrator account
with no privilege levels, and serves HTTPS only after a certificate has
been uploaded, so the polling credential is necessarily the admin
credential over a plain channel.
Implements get_facts, get_interfaces, get_vlans, get_vlans_detail and
get_mac_address_table, plus HTTP/SNMP fingerprints for discovery.
Tested against an HPE OfficeConnect 1820 8G PoE+ (65W), J9982A, PT.02.19.