ENAUTO 300-435 study materials
ENAUTO 300-435 study resources

ENAUTO 300-435: Network Programmability Foundation

ENAUTO 300-435 · Work through your exam, one topic at a time.

All guide sections

Network Programmability Foundation

Domain 1, Network Programmability Foundation, tests the software-engineering layer beneath the other four domains: how automation change is delivered, how code and configuration are versioned, how data is serialised, and how a script authenticates to an API. Questions are scenario judgements more than syntax drills.

Delivery models and CI/CD

Waterfall gates a release behind sequential sign-off; agile ships in short increments; lean removes work that adds no value. Continuous integration means every commit to trunk triggers an automated build and test run. Continuous delivery means every build that passes is deployable, with the release decision left to a human. Infrastructure as code applies that pipeline to device configuration, and idempotency, where running the same change twice leaves the same state, is what makes it safe.

Git mechanics

A branch is a movable pointer to a commit. clone copies a remote repository locally; fetch downloads new commits without touching your working tree; pull is fetch plus merge, or plus rebase if configured. merge creates a merge commit and preserves history; rebase replays your commits onto a new base and rewrites their hashes. A conflict occurs only when two commits touch the same lines. A fork is a server-side copy used to propose changes via pull request.

Data formats

JSON has objects, arrays, strings, numbers, booleans and null; it forbids comments and trailing commas. XML is element-based, needs a single root, and carries namespaces. YANG is a modelling language, not an encoding: it defines the schema that NETCONF (XML), RESTCONF (JSON or XML) and gNMI (protobuf) carry.

Python essentials

requests handles verbs, headers and basic-auth tuples; json.loads turns a response body into dictionaries; credentials belong in environment variables or a vault, never in committed source.

Worked example

An engineer forks a repo, commits to feature/qos and opens a pull request; main has since advanced. Correct sequence: git fetch origin, git rebase origin/main on the feature branch, resolve the conflict, git add the resolved files, git rebase --continue, then git push --force-with-lease. Rebasing is safe because the branch is personal and unreviewed; rewriting shared main would break every other clone. --force-with-lease refuses the push if a teammate pushed meanwhile, where plain --force would discard their commits silently.

Traps that cost marks

  • Calling YANG a data format such as XML or JSON.
  • Rebasing a shared branch, or merging when the requirement is linear history.
  • Assuming pull never rebases.
  • Hard-coding passwords instead of reading the environment.