Sheet CCNA Automation 200-901 CCNAAUTO v1.1 Python,
APIs, Git, Docker, YANG, NETCONF, RESTCONF & Network
Automation September 2026 Updated
This exam assesses mastery of Cisco DevNet Associate (200-901 DEVASC v1.1) and WGU D416 competencies,
including Python network automation, REST API consumption and design, Git version control workflows, Docker
containerization, YANG data modeling, NETCONF/RESTCONF protocols, and infrastructure-as-code practices.
Questions require applied reasoning across software development, API security, model-driven programmability,
and modern CI/CD pipelines for network operations. It contains 50 multiple-choice questions, each with four
distractors and a fully worked rationale that explains why the keyed answer is correct. Questions are organized
into clearly labelled sections that mirror the major content areas of the course. Targeted learning outcomes
include: Construct and debug Python scripts that consume REST APIs and parse JSON/XML responses for
network automation tasks.; Differentiate and apply Git branching, merging, and collaboration workflows to
manage network automation source code.; Evaluate YANG models and select appropriate
NETCONF/RESTCONF operations to configure and retrieve device state.; Design and build Docker containers
for network automation tools while implementing secure API authentication and CI/CD pipelines.. Every item has
been reviewed for clinical accuracy, current guidelines, and clarity so that students can study with confidence and
self-correct as they work through the bank. Use it as a high-yield review immediately before the exam, or as a
structured practice tool during the unit - the rationales double as concise teaching notes. The recommended
Section 1: General (Questions 1-50)
1 In a Python script using requests, which exception must be caught to handle a 401
Unauthorized from a RESTCONF device?
A) requests.exceptions.ConnectionError
B) requests.exceptions.HTTPError, after calling response.raise_for_status()
C) requests.exceptions.Timeout
D) requests.exceptions.RequestException
Answer: B
Rationale: HTTPError is raised by raise_for_status() when the server returns a
4xx/5xx status, including 401. ConnectionError, Timeout, and generic
RequestException do not specifically indicate an HTTP error status; they cover
network-level failures. Catching RequestException would also catch HTTPError,
but it is too broad and does not directly address the 401 status semantics.
2 A team must revert a specific commit on a shared branch without rewriting
history. Which Git command is appropriate?
A) git reset --hard <commit>
B) git revert <commit>
C) git rebase -i <commit>
,D) git checkout <commit> -- .
Answer: B
Rationale: git revert creates a new commit that undoes the changes of the specified
commit, preserving history-safe for shared branches. git reset --hard rewrites local
history and discards commits, causing divergence. Interactive rebase also rewrites
history. git checkout only restores files to the working tree without creating a revert
commit.
3 In a YANG model, which statement correctly describes a leafref compared to a
leaf-list?
A) A leafref references an existing leaf's value, while a leaf-list defines multiple
instances of a leaf.
B) A leafref defines a single value, while a leaf-list references another leaf.
C) A leafref and leaf-list are synonymous in YANG 1.1.
D) A leafref can only reference a leaf-list, not a leaf.
Answer: A
Rationale: A leafref is a type that points to the value of another leaf (or leaf-list) in
the data tree, enabling referential integrity. A leaf-list is a collection of multiple leaf
instances of the same type. They serve different purposes: leafref for referencing,
leaf-list for storing multiple values. Options B, C, and D incorrectly swap or conflate
these definitions.
4 Which Dockerfile instruction best minimizes final image size when building a
Python network automation tool?
A) Use a single RUN apt-get update && apt-get install -y ... layer.
B) Use multi-stage builds to copy only the virtual environment into a slim base
image.
C) Add a .dockerignore file to exclude the .git directory.
D) Use the latest tag for the base image to ensure updates.
Answer: B
Rationale: Multi-stage builds allow compiling dependencies in an intermediate stage
and copying only the necessary artifacts (e.g., virtual environment) into a minimal
final image, drastically reducing size. Combining RUN commands reduces layers
but does not remove build-time dependencies. .dockerignore helps but is not the
primary size-reduction technique. Using latest is discouraged for reproducibility and
may increase size.
, 5 When designing a REST API for network devices, which HTTP status code best
indicates a successful POST that created a resource?
A) 200 OK
B) 201 Created
C) 204 No Content
D) 202 Accepted
Answer: B
Rationale: 201 Created is the standard response for a POST that successfully creates
a new resource, often including a Location header. 200 OK is generic success, 204
No Content indicates success with no body (often for DELETE or PUT), and 202
Accepted means the request is being processed asynchronously. Only 201
specifically denotes resource creation.
6 In a NETCONF <edit-config> operation, which attribute ensures the configuration
is merged without deleting existing siblings?
A) operation="replace"
B) operation="merge"
C) operation="create"
D) operation="delete"
Answer: B
Rationale: The merge operation adds or updates the specified configuration data
while preserving existing sibling nodes not mentioned. Replace overwrites the entire
configuration at that level, potentially deleting unspecified siblings. Create fails if
the node already exists, and delete removes the node. Merge is the default and safest
for partial updates.
7 Which Python library is specifically designed for parsing and generating
YANG-modeled data and interacting with NETCONF servers?
A) requests
B) ncclient
C) paramiko
D) netmiko
Answer: B
Rationale: ncclient is a Python library that implements NETCONF and is used to
manage network devices, supporting YANG-modeled operations. requests is for
HTTP, paramiko is SSH, and netmiko is a multi-vendor SSH library that abstracts
CLI interactions but does not natively handle NETCONF/YANG. Thus ncclient is