Generators
Generators query live devices and create assertion files based on current state.
Available generators
Section titled “Available generators”| Generator | Description |
|---|---|
interfaces | Interface oper-status for each interface |
bgp | BGP session-state and peer-as for each neighbor |
ospf | OSPF adjacency-state for each neighbor |
lldp | LLDP system-name for each neighbor |
system | Hostname and software-version |
netsert generate <generator> -t <target> [flags]| Flag | Description |
|---|---|
-t, --target | Target device(s) |
-c, --config | Config file path |
-u, --username | gNMI username |
-p, --password | gNMI password |
--insecure | Skip TLS verification |
-o, --output | Output file (default: stdout) |
Examples
Section titled “Examples”Generate interface assertions
Section titled “Generate interface assertions”$ 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: UPGenerate BGP assertions
Section titled “Generate BGP assertions”$ 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"Save to file
Section titled “Save to file”netsert generate interfaces -t spine1:6030 -o baseline.yamlWorkflow
Section titled “Workflow”- Baseline: Generate assertions from known-good state
- Review: Check the generated file
- Test: Run assertions against devices
- Commit: Add to version control
$ 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