Skip to content

Generators

Generators query live devices and create assertion files based on current state.

GeneratorDescription
interfacesInterface oper-status for each interface
bgpBGP session-state and peer-as for each neighbor
ospfOSPF adjacency-state for each neighbor
lldpLLDP system-name for each neighbor
systemHostname and software-version
Terminal window
netsert generate <generator> -t <target> [flags]
FlagDescription
-t, --targetTarget device(s)
-c, --configConfig file path
-u, --usernamegNMI username
-p, --passwordgNMI password
--insecureSkip TLS verification
-o, --outputOutput file (default: stdout)
Terminal window
$ netsert generate interfaces -t spine1:6030 -u admin -p admin --insecure
assertions:
- target: spine1:6030
path: interfaces[Ethernet1]/state/oper-status
expect: UP
- target: spine1:6030
path: interfaces[Ethernet2]/state/oper-status
expect: UP
Terminal window
$ netsert generate bgp -t leaf1:6030 -u admin -p admin --insecure
assertions:
- target: leaf1:6030
path: bgp[default]/neighbors[10.0.0.1]/state/session-state
expect: ESTABLISHED
- target: leaf1:6030
path: bgp[default]/neighbors[10.0.0.1]/state/peer-as
expect: "65000"
Terminal window
netsert generate interfaces -t spine1:6030 -o baseline.yaml
  1. Baseline: Generate assertions from known-good state
  2. Review: Check the generated file
  3. Test: Run assertions against devices
  4. Commit: Add to version control
Terminal window
$ netsert generate interfaces -t spine1:6030 -o baseline.yaml
$ cat baseline.yaml
$ netsert run -f baseline.yaml
$ git add baseline.yaml && git commit -m "Add interface baseline"
  • Generate from known-good state (after maintenance, not during outage)
  • Review generated files before committing
  • Use generators as a starting point, then customize
  • LLDP generator skips management interfaces automatically
  • OSPF generator handles “not configured” gracefully