Dict, List and Optional were used in 30 annotations without an import;
from __future__ import annotations kept that from failing until
something resolved them (typing.get_type_hints raised NameError).
Closes#29
The driver filled run_device_action with an application's remediations
and their values: community "public", "Managed by netOrk", the
caller's address guessed from ss and a /24 ufw rule, the proxy from an
optional_args key.
It implements napalm-device-types' fix templates instead (4.12), and
the caller supplies every value:
- configure_snmp_agent(settings): net-snmp installed, snmpd.conf with
one rocommunity line per allowed source, udp/161 opened in ufw or
iptables for those sources only, snmpd enabled and restarted. Every
step reads its exit status. A community, source or text that would
break the file is refused.
- configure_package_proxy(url): apt's 00proxy, or removed for "".
- grant_container_engine_access(user): usermod -aG docker for the user
named.
- ensure_package(name): from the base package, over get_packages and
install_package.
run_device_action, its four _action_* methods and the unused
apt_update_upgrade are gone. The sudo hint no longer names an
application's settings.
BREAKING CHANGE: run_device_action is removed; callers use the
templates. Requires napalm-device-types 4.12.
Closes#27