# The Snapshot Machine: genie learn and diff as a Change-Validation Safety Net on CML2

DevFeed: [The Snapshot Machine: genie learn and diff as a Change-Validation Safety Net on CML2](<https://devfeed.tech/articles/the-snapshot-machine-genie-learn-and-diff-as-a-change-validation-safety-net-on-cml2-30875.md>)

Original publisher: [Read original article](<https://brent.leekley.me/blog/snapshot-machine/>)

Author: Brent Leekley

Published: 2026-06-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [brent.leekley.me blog](<https://devfeed.tech/sources/brent-leekley-me-blog.md>)

Topics: [networking](<https://devfeed.tech/topics/networking.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [change-validation](<https://devfeed.tech/tags/change-validation.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [cisco-modeling-labs](<https://devfeed.tech/tags/cisco-modeling-labs.md>), [cli](<https://devfeed.tech/tags/cli.md>), [cml2](<https://devfeed.tech/tags/cml2.md>), [genie](<https://devfeed.tech/tags/genie.md>), [genie-diff](<https://devfeed.tech/tags/genie-diff.md>), [genie-learn](<https://devfeed.tech/tags/genie-learn.md>), [maintenance-window](<https://devfeed.tech/tags/maintenance-window.md>), [network-automation](<https://devfeed.tech/tags/network-automation.md>), [network-testing](<https://devfeed.tech/tags/network-testing.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [pyats](<https://devfeed.tech/tags/pyats.md>), [routing-table](<https://devfeed.tech/tags/routing-table.md>), [snapshot](<https://devfeed.tech/tags/snapshot.md>), [structured](<https://devfeed.tech/tags/structured.md>), [validation](<https://devfeed.tech/tags/validation.md>)

## AI overview

This tutorial demonstrates using Cisco Modeling Labs 2 with Genie learn and diff to validate network changes. It snapshots structured operational state before and after a maintenance change, then compares the snapshots to reveal side effects that routine show commands may miss. The source summary reports that a changed OSPF cost reroutes three destinations while adjacencies remain FULL.

## Source excerpt

Snapshot a CML2 fabric with genie learn before and after a maintenance change, then genie diff the structured state. One fat-fingered OSPF cost quietly reroutes three destinations while every adjacency stays FULL. Structured before-and-after diffs catch the side effects that show commands miss.