How juniper/py-junos-eznc works
Junos PyEZ is a Python library for remotely managing Junos devices. The principal workflow is: a Python user creates a Device, establishes a management session, then gathers facts, retrieves operational/configuration data, or applies changes; parsed Python results are returned to the caller. Major branches also include console bootstrapping, structured resources, dynamic Table/View factories, and file/software utilities. Some orchestration modules were not sampled, so several documented capability links are intentionally conservative.
Components 22
API and Sessions
- Device API
lib/jnpr/junos/device.py - NETCONF Transport
lib/jnpr/junos/transport/tty_netconf.py - Console Bootstrap
lib/jnpr/junos/transport/tty.py - RPC Interface
lib/jnpr/junos/rpcmeta.py
Device Data
- Fact Engine
lib/jnpr/junos/facts/__init__.py - Fact Modules
lib/jnpr/junos/facts/get_route_engine_information.py - Fact Cache
lib/jnpr/junos/factcache.py - Fact Results
lib/jnpr/junos/facts/__init__.py - Operational Views
lib/jnpr/junos/op/__init__.py
Configuration
- Resource API
lib/jnpr/junos/cfg/resource.py - Config Resources
lib/jnpr/junos/cfg - Command API
lib/jnpr/junos/command/__init__.py
Factories and Parsing
- Factory Loader
lib/jnpr/junos/factory/factory_loader.py - Table Views
lib/jnpr/junos/factory/table.py - State Parser
lib/jnpr/junos/factory/state_machine.py - Resource Definitions
lib/jnpr/junos/resources/staticroutes.py
Utilities
- SSH Client
lib/jnpr/junos/utils/ssh_client.py - File Utilities
lib/jnpr/junos/utils/scp.py - Software Utilities
lib/jnpr/junos/utils/sw.py
Other components
- Python User
- Junos Device
- SSH Endpoint
Connections 24
- Python User → Device API: creates device
- Device API → NETCONF Transport: opens session
- NETCONF Transport → Junos Device: exchanges XML
- Device API → RPC Interface: dispatches RPC
- Fact Engine → Fact Modules: loads facts
- Device API → Fact Engine: gathers facts
- Fact Modules → RPC Interface: requests RPC
- RPC Interface → Junos Device: queries device
- Fact Engine → Fact Cache: caches facts
- Fact Engine → Fact Results: returns facts
- Device API → Operational Views: exposes operations
- Resource API → Device API: reads writes config
- Config Resources → Resource API: defines resources
- Command API → Device API: runs commands
- Device API → Factory Loader: loads definitions
- Factory Loader → Table Views: builds views
- Table Views → State Parser: parses output
- Resource Definitions → Factory Loader: loads YAML
- Python User → Console Bootstrap: bootstraps device
- Console Bootstrap → NETCONF Transport: starts NETCONF
- File Utilities → SSH Client: uses SSH
- SSH Client → SSH Endpoint: connects SSH
- Python User → File Utilities: transfers files
- Python User → Software Utilities: updates software