Courseiva

Juniper Networks Automation and DevOps, Associate (JNCIA-DevOps, JN0-224) (JNCIA-DevOps) (JNCIA-DevOps) — Questions 151225

307 questions total · 5pages · All types, answers revealed

Page 2

Page 3 of 5

Page 4
151
Multi-Selectmedium

When designing an automation workflow that uses the Junos REST API for configuration management, which THREE practices ensure robust execution? (Choose three)

Select 3 answers
A.Configure HTTPS (jpagent https) to encrypt credentials and configuration payloads in transit.
B.Specify correct Content-Type headers matching the payload format (e.g., JSON).
C.Always reboot the Routing Engine after every GET request.
D.Validate response status codes (e.g., checking for 200, 201, 204) before assuming success.
E.Send raw VT100 terminal escape sequences inside the HTTP body.
AnswersA, B, D

Using HTTPS prevents plaintext credential and configuration transmission.

Why this answer

Robust REST workflows should handle HTTP status codes, use HTTPS for secure transport, and properly structure payloads with appropriate Content-Type headers.

152
Multi-Selecteasy

Which TWO HTTP response status codes indicate a successful Junos REST API request where data was successfully retrieved or modified? (Choose two)

Select 2 answers
A.404 Not Found
B.200 OK
C.401 Unauthorized
D.204 No Content
E.500 Internal Server Error
AnswersB, D

200 OK indicates successful GET or update execution.

Why this answer

200 OK and 204 No Content (or 201 Created) indicate successful API execution depending on the method.

153
MCQmedium

When you issue a NETCONF <get-config> request for the running configuration, why might the request fail or return empty on certain Junos platforms?

A.Running configuration can only be accessed using CLI commands, never NETCONF.
B.The <running/> datastore capability is supported, but explicit locking rules or device state might restrict it if unsupported parameters are sent.
C.The <running/> tag must always be accompanied by a password attribute.
D.Junos does not support reading the running configuration datastore via NETCONF.
AnswerB

Junos supports running datastore retrieval, but strict adherence to capability negotiation is required.

Why this answer

In standard NETCONF (RFC 6241), the running datastore must be supported, but Junos requires candidate configuration usage for edits; however, running is supported for reading. If it fails, it is often due to datastore capability support.

154
MCQeasy

Which python module is part of the standard library that can be used to parse XML responses returned by NETCONF?

A.netconf.parser
B.xml.etree.ElementTree
C.xml2dict
D.json
AnswerB

ElementTree is standard in Python for XML parsing.

Why this answer

Python's built-in xml.etree.ElementTree module provides tools for parsing and navigating XML data.

155
MCQhard

During a NETCONF session with a Junos device, an automation script issues an RPC to load a configuration. The device returns a response containing an <rpc-error> tag. What does this indicate?

A.The Junos routing engine is operating at 100% CPU capacity.
B.The NETCONF session has successfully terminated with a normal exit code.
C.The physical optical link on the management port has failed.
D.The configuration or RPC request failed validation, syntax checking, or execution constraints on the device.
AnswerD

Correct. <rpc-error> signals a failure in processing the request.

Why this answer

An <rpc-error> tag in NETCONF indicates that the request could not be processed successfully due to syntax, permission, or validation errors.

156
MCQeasy

A network engineer is establishing a version control workflow for network configurations using Git. Which Git command should the engineer use to stage newly created configuration template files in the local repository working directory so they are included in the next commit?

A.git clone
B.git commit
C.git push
D.git add
AnswerD

git add stages new or modified files for the next commit.

Why this answer

The git add command stages changes in the working directory, moving them to the staging area (index) to prepare them for a commit.

157
Multi-Selecthard

When executing raw XML RPCs via PyEZ, which THREE approaches or parameters can be used to handle or inspect the response XML? (Choose two) -> Wait, let's make it THREE since the prompt requires HALF of multi-select to be 'Which THREE'. Let's verify prompt: 'HALF use 'Which TWO', HALF use 'Which THREE'.' Total multi-select = 6. 3 use TWO, 3 use THREE. Let's make this one THREE. Which THREE approaches...

Select 3 answers
A.Using dev.rpc.to_dict() to automatically serialize all RPC outputs
B.Using etree.tostring(response, encoding='unicode') to view raw XML text
C.Using lxml.etree methods directly on the returned element object
D.Using json.loads() directly on the RPC response object
E.Using XPath expressions to search specific nodes within the response element
AnswersB, C, E

Correct. Converting the XML element to string helps inspect raw output.

Why this answer

RPC responses can be converted, queried with XPath, or printed as strings.

158
MCQmedium

An automation script reads a configuration template where boolean values are represented as 'yes' and 'no' in YAML. When parsed using PyYAML in Python, how are these values interpreted?

A.They are converted to integer 1 and 0 values.
B.They are interpreted as Python boolean True and False values.
C.They remain as literal string objects ('yes' and 'no').
D.The parser raises a ConstructorError because only 'true' and 'false' are valid.
AnswerB

Correct. PyYAML automatically converts 'yes' and 'no' into native boolean types.

Why this answer

In YAML 1.1 (which PyYAML predominantly implements), unquoted words like 'yes', 'no', 'true', 'false', 'on', and 'off' are automatically parsed into native boolean values.

159
Multi-Selecthard

When serializing Python data structures to JSON for Junos automation payloads, which THREE parameters can be passed to json.dumps() to control formatting and readability? (Choose three)

Select 3 answers
A.max_depth
B.separators
C.sort_keys
D.strict_mode
E.indent
AnswersB, C, E

Correct. separators allows customizing item and key-value token dividers (e.g., removing whitespace).

Why this answer

Parameters like indent, sort_keys, and separators are standard formatting arguments for json.dumps().

160
MCQeasy

A network engineer is establishing a NETCONF session with a Junos device and needs to lock the candidate configuration to prevent concurrent modifications by other administrators. Which NETCONF operation should be executed?

A.<lock><target><candidate/></target></lock>
B.<lock-config><database>candidate</database></lock-config>
C.<get-config><source><candidate/></source><lock/></get-config>
D.<edit-config><target><candidate/></target><operation>lock</operation></edit-config>
AnswerA

This is the correct XML RPC structure to lock the candidate configuration datastore.

Why this answer

The <lock> operation allows a client to lock the configuration datastore of a device to prevent unauthorized or conflicting changes during a transaction.

161
Multi-Selectmedium

Which TWO characteristics describe JSNAPy snapshot operations? (Choose two)

Select 2 answers
A.It compiles Jinja2 configuration templates directly into Junos CLI commands.
B.It replaces PyEZ as the primary library for executing NETCONF RPC calls.
C.It saves captured operational data into snapshot files for later comparison.
D.It modifies the active configuration database automatically upon finding errors.
E.It can compare a post-change snapshot against a baseline pre-change snapshot.
AnswersC, E

Correct. JSNAPy stores operational data snapshots.

Why this answer

JSNAPy captures snapshots to XML/YAML files and compares them over time.

162
Multi-Selecteasy

Which TWO actions occur during the initial NETCONF session establishment phase between a client and a Junos device? (Choose two)

Select 2 answers
A.The client and server exchange <hello> messages to negotiate supported capabilities.
B.The client sends an immediate <commit> RPC to initialize the session.
C.The routing engine reloads its control plane daemons.
D.The client authenticates via SSH credentials before the NETCONF subsystem initializes.
E.The Junos device automatically locks the running configuration datastore.
AnswersA, D

Capability negotiation via <hello> messages is a mandatory first step in NETCONF.

Why this answer

During session establishment, SSH authentication occurs first, followed by the exchange of <hello> messages containing capabilities.

163
Multi-Selecthard

When working with the PyEZ Config utility, which THREE actions can be performed using the configuration context manager or its methods? (Choose three)

Select 3 answers
A.cu.gather_facts()
B.cu.validate()
C.cu.load(path='config.conf', format='text')
D.cu.rollback()
E.cu.upgrade_os()
AnswersB, C, D

Correct. Validating the candidate configuration checks for syntax errors.

Why this answer

The Config utility supports locking, loading configurations from various sources, validating, and rolling back.

164
Multi-Selecthard

Which THREE attributes are available within the <edit-config> operation element in NETCONF to specify the modification action on a target node? (Choose three)

Select 3 answers
A.delete
B.replace
C.append
D.modify
E.merge
AnswersA, B, E

'delete' removes the specified node and fails if it does not exist.

Why this answer

NETCONF edit-config operation attributes include merge, replace, create, delete, and remove.

165
MCQmedium

An automation engineer needs to include comments explaining complex network parameters inside a Junos automation data file. Which serialization format should the engineer select?

A.CSV
B.YAML
C.JSON
D.Pickle
AnswerB

Correct. YAML supports inline and block comments using the hash (#) symbol.

Why this answer

YAML natively supports comments using the hash (#) symbol, whereas standard JSON does not support comments.

166
Multi-Selecthard

Which TWO of the following methods or attributes are valid ways to handle rollback operations or commit errors when using the PyEZ Config utility (cu)?

Select 2 answers
A.cu.force_commit()
B.cu.rollback(id=1)
C.cu.undo()
D.cu.commit(comment="Automated deployment", timeout=30)
E.cu.revert(rollback=0)
AnswersB, D

cu.rollback() rolls back the candidate configuration to the specified rollback index.

Why this answer

cu.rollback() reverts the candidate configuration to a previous rollback index, and cu.commit(comment=...) allows committing changes with specific options. Options B and D are correct.

167
MCQmedium

An operations team is applying DevOps principles to network automation on Junos devices. They want to ensure that all changes to device operational states and configurations are treated as disposable and repeatable. Which DevOps practice best describes rebuilding device configurations completely from centralized version-controlled templates rather than performing manual incremental hot-patches?

A.Stateful configuration drift management
B.Blue-green circuit provisioning
C.Immutable infrastructure and declarative provisioning
D.Event-driven telemetry ingestion
AnswerC

Declarative provisioning and immutable approaches replace manual hot-patches with clean, version-controlled configuration generation.

Why this answer

Infrastructure as Code (IaC) and immutable infrastructure treat configurations as reproducible artifacts generated from source control rather than mutable, long-lived states modified ad-hoc.

168
Multi-Selecthard

A DevOps engineer is designing a CI/CD pipeline for validating Junos configuration changes prior to deployment. Which THREE actions are typically performed during the automated CI pipeline 'test' or 'validate' stage? (Choose THREE)

Select 3 answers
A.Performing dry-run validation checks against staging or virtual Junos instances (vSRX)
B.Immediately rebooting the production core routing engine to apply all updates
C.Running automated linters and style checks on Python automation scripts and Jinja2 templates
D.Executing static syntax and semantic validation of candidate configurations against device schemas
E.Manually logging into physical CLI consoles to troubleshoot cabling
AnswersA, C, D

Testing against virtual instances (vSRX) validates behavior against real Junos parsing logic.

Why this answer

CI validation stages typically run linting checks, static syntax validation against Junos schemas, and unit testing of templates or automation code before deployment staging.

169
MCQeasy

Which statement correctly identifies the relationship between Junos REST API and NETCONF data models?

A.Both protocols leverage the same underlying Junos data models and management infrastructure.
B.REST API bypasses all Junos data models and writes directly to kernel memory.
C.NETCONF uses YANG models, whereas REST API uses proprietary relational databases.
D.NETCONF is deprecated in favor of REST API for all Junos configuration tasks.
AnswerA

REST API and NETCONF share the same underlying Junos configuration and operational data models.

Why this answer

Both the Junos REST API and NETCONF interface with the same underlying Junos YANG data models and management infrastructure (MGD), providing different transport and encoding wrappers for the same capabilities.

170
Multi-Selectmedium

Which THREE advantages are associated with using the Junos REST API over NETCONF in lightweight automation scripts? (Choose three)

Select 3 answers
A.Ability to traverse standard HTTP/HTTPS proxies and load balancers easily.
B.Native JSON support without needing specialized XML parsing libraries like lxml.
C.Familiar HTTP verbs (GET, POST, PUT, DELETE) that align with standard web development principles.
D.Elimination of the Junos candidate configuration datastore.
E.Guaranteed multi-vendor transaction rollbacks across non-Juniper hardware.
AnswersA, B, C

HTTP-based REST traffic traverses web infrastructure and proxies easily.

Why this answer

REST API benefits include native JSON parsing support in languages like Python without extra libraries, simple HTTP request/response debugging, and easy traversal through standard web proxies.

171
MCQmedium

You are writing a Python script to retrieve the operational state of interfaces from a Junos device using NETCONF. Which XML RPC element must be enclosed within the <rpc> tag to request operational data?

A.<pull-operational>
B.<get-rpc-reply>
C.<get-config>
D.<get>
AnswerD

The <get> element allows retrieving running operational state and configuration data.

Why this answer

The <get> rpc tag is used to retrieve both configuration and operational data, whereas <get-config> is restricted to configuration data.

172
MCQeasy

In Junos XML API, what is the XML namespace associated with Junos-specific RPCs and operational tags?

A.http://www.cisco.com/ns/yang/cisco-se
B.urn:juniper:params:xml:ns:netconf:base:1.0
C.urn:ietf:params:xml:ns:netconf:base:1.0
D.http://xml.juniper.net/junos/*/junos-rpc
AnswerD

Juniper XML API RPCs utilize namespaces starting with http://xml.juniper.net/junos/.

Why this answer

Junos XML API elements use specific namespaces like http://xml.juniper.net/junos/12.1X46/junos-sw for software or general rpc namespaces.

173
MCQhard

You are writing a Python script using the PyEZ library to retrieve interface facts from a Juniper EX Series switch. The resulting data structure is stored in a Python dictionary. You need to dump this dictionary into a YAML file so it can be read by an Ansible playbook later. Which PyYAML function should you use to convert the Python dictionary into a YAML-formatted string or file stream?

A.yaml.load()
B.yaml.serialize()
C.yaml.safe_load()
D.yaml.dump()
AnswerD

yaml.dump() serializes a Python object structure into a YAML byte or string stream.

Why this answer

yaml.dump() is the standard PyYAML function used to serialize Python objects (such as dictionaries) into a YAML-formatted stream or string.

174
MCQeasy

What is the native data format returned by Junos devices when queried via REST API or NETCONF operations configured with JSON output formatting?

A.INI
B.YAML
C.CSV
D.JSON
AnswerD

Correct. Queries configured for JSON return JSON-formatted payloads.

Why this answer

When JSON output is requested from Junos REST or NETCONF, the returned data is serialized in JSON format.

175
Multi-Selectmedium

Which THREE actions can be performed using the Junos REST API operational endpoints? (Choose three)

Select 3 answers
A.Directly modify the startup configuration file on the hard disk.
B.Fetch interface packet counters and operational states.
C.Retrieve system hardware and software inventory details.
D.Format and partition local storage solid-state drives.
E.Execute custom operational RPCs like 'get-route-information'.
AnswersB, C, E

Interface operational statistics are accessible via operational REST paths.

Why this answer

Operational endpoints in Junos REST API support retrieving system information, fetching interface operational counters, and executing custom RPCs.

176
MCQmedium

When using Jinja2 templates in Python to generate configurations, how can you load a template file from disk prior to rendering it with variables?

A.Template(open('template.j2').read())
B.template.open('template.j2')
C.import_template('template.j2')
D.jinja2.load_file('template.j2')
AnswerA

Correct. Initializing Jinja2 Template with the read string of a file is a standard loading approach.

Why this answer

Environment and FileSystemLoader are used to load templates from a directory path.

177
Multi-Selecthard

When working with PyYAML in Python for Junos automation scripts, which THREE of the following practices enhance script security and robustness? (Choose three)

Select 3 answers
A.Always using yaml.safe_load() instead of yaml.load() to prevent arbitrary code execution.
B.Catching yaml.scanner.YAMLError exceptions to handle malformed configuration syntax gracefully.
C.Storing unencrypted credentials directly inside YAML global anchors.
D.Relying on yaml.load() to automatically execute embedded Python object constructors.
E.Using yaml.safe_dump() when generating output configurations for consistency.
AnswersA, B, E

Correct. yaml.safe_load() mitigates security vulnerabilities by restricting deserialization.

Why this answer

Using safe loading methods, verifying file existence, and handling scanner errors properly are best practices when processing external YAML configurations.

178
MCQhard

When modifying a Junos device configuration using the PyEZ Config table-driven or Context manager (with Config(dev) as cu:), what is the default behavior regarding locking the candidate configuration?

A.It locks the global database and forces all other users into maintenance mode.
B.It requires an explicit cu.lock() call before any load operation can take place.
C.It automatically locks the candidate configuration upon entry and unlocks it upon exit.
D.It locks the running configuration and restarts the mgd daemon.
AnswerC

Automatic locking is a core feature of the PyEZ Config context manager to ensure transactional safety.

Why this answer

When entering the Config context manager in PyEZ, it automatically locks the candidate configuration database to prevent concurrent edits and unlocks it upon exiting the context.

179
Multi-Selectmedium

Which THREE principles are foundational to the DevOps movement when applied to network engineering? (Choose three)

Select 3 answers
A.Continuous monitoring and feedback loops for network telemetry
B.Strict siloing of operational teams from software developers
C.Relying solely on annual manual network audits
D.Culture of shared responsibility and rapid learning from failures
E.Automation of repetitive provisioning and configuration tasks
AnswersA, D, E

Correct. Monitoring provides feedback on changes and health.

Why this answer

Foundational DevOps principles include automation, continuous feedback, culture/collaboration, and transparency.

180
Multi-Selecteasy

A network engineer is exploring the core components of the Junos automation architecture. Which TWO components are native Junos daemons or automation frameworks directly involved in script execution or API processing? (Choose TWO)

Select 2 answers
A.jsd (Junos Script Daemon)
B.snmpd (Simple Network Management Protocol Daemon)
C.sshd (Secure Shell Daemon)
D.mgd (Management Daemon)
E.httpd (Hypertext Transfer Protocol Daemon)
AnswersA, D

jsd is responsible for running local automation scripts on Junos devices.

Why this answer

jsd (Junos Script Daemon) executes local SLAX and Python event scripts, and mgd (Management Daemon) processes XML/NETCONF/JSON-RPC automation requests.

181
MCQmedium

An automation engineer is writing a Python script to push configurations to a Junos device. The script loads a YAML data file containing interface descriptions. One description contains a colon without a following space (e.g., 'Interface:Primary'). What error will PyYAML raise when attempting to parse this file?

A.TypeError
B.ScannerError
C.YAMLSemanticError
D.JSONDecodeError
AnswerB

Correct. Missing whitespace after a colon violates YAML mapping rules, resulting in a ScannerError.

Why this answer

In YAML, a colon must be followed by a whitespace character to be recognized as a mapping key-value separator. If no space follows, PyYAML raises a ScannerError or MappingValuesError.

182
MCQeasy

Which Junos automation architecture component provides standardized, model-driven interfaces using NETCONF and gRPC/gNMI to manage and monitor Junos devices?

A.The Junos CLI pipe filter 'match' command
B.Junos XML API and schema definitions
C.Proprietary screen-scraping CLI scripts running in a crontab daemon
D.The physical console cable attached to the Routing Engine
AnswerB

Correct. Junos XML API via NETCONF and RPCs provides structured data modeling.

Why this answer

Junos API and data modeling components like NETCONF and gRPC provide structured, programmatic access to the Junos control plane.

183
MCQmedium

You are utilizing PyEZ Table and View abstractions to parse interface statistics. Which base class must your custom Table class inherit from to map to Junos XML output?

A.jnpr.junos.rpchandler.RPC
B.jnpr.junos.device.Device
C.jnpr.junos.factory.Table
D.jnpr.junos.utils.config.Config
AnswerC

Table is the primary base class for structured operational data parsing in PyEZ.

Why this answer

To leverage PyEZ Table/View mapping for operational commands, your custom table class must inherit from 'jnpr.junos.factory.Table'.

184
MCQhard

An automation script needs to convert a JSON string containing Juniper interface statistics into a YAML format to maintain consistency with existing Ansible variable files. When performing this conversion, which structural capability does YAML support that standard JSON does not?

A.Support for comments
B.Support for numeric floating-point values
C.Support for boolean data types
D.Support for nested arrays
AnswerA

YAML supports inline comments using the '#' character, whereas JSON does not support comments.

Why this answer

YAML natively supports complex keys (such as using objects or tuples as keys) and comments, whereas standard JSON requires all keys to be strings and does not support comments.

185
Multi-Selectmedium

Which THREE tasks are typical responsibilities of a network DevOps engineer managing a Junos infrastructure? (Choose three)

Select 3 answers
A.Manually crimping CAT6 Ethernet cables in the wiring closet
B.Writing and maintaining Python automation scripts and Jinja2 templates
C.Managing Git repositories, branch policies, and pull request workflows
D.Configuring and maintaining CI/CD pipeline tools (e.g., GitLab CI, GitHub Actions)
E.Manually rebooting every switch in the data center daily
AnswersB, C, D

Correct. Scripting and templating are core tasks.

Why this answer

DevOps engineers write automation code, build CI/CD pipelines, and manage version control systems.

186
MCQhard

You want to run a JSNAPy verification test via Python code. Which Python class should you import and instantiate to execute the snapshot comparison programmatically?

A.from jnpr.jsnapy.verify import VerifyEngine
B.from jnpr.junos.utils.jsnapy import JSNAPy
C.from jnpr.jsnapy.runner import JSNAPyRunner
D.from jnpr.jsnapy import SnapAdmin
AnswerD

Correct. SnapAdmin is the core Python class for JSNAPy operations.

Why this answer

The JSNAPy class is imported from jnpr.jsnapy to execute snapshot checks programmatically.

187
MCQhard

When loading configuration changes via PyEZ using cu.load(format='xml', action='update'), what is the precise impact of the 'update' action compared to 'merge' or 'override'?

A.It overwrites the entire candidate configuration, discarding all prior uncommitted changes.
B.It completely replaces the running configuration with the provided payload.
C.It merges configuration changes with the existing candidate configuration, modifying or adding specified nodes while preserving unreferenced nodes.
D.It deletes the matching hierarchy nodes entirely before inserting new ones.
AnswerC

The update action applies incremental updates matched by identifiers.

Why this answer

The 'update' action merges configuration elements based on matching keys or identifiers, allowing precise modification of existing hierarchical statements without replacing entire blocks.

188
MCQeasy

In JSNAPy, what file format is used to define test cases and expected operational states?

A.INI
B.YAML
C.XML
D.JSON
AnswerB

Correct. JSNAPy configuration and test files are written in YAML format.

Why this answer

JSNAPy uses YAML configuration files for defining tests and expected values.

189
Multi-Selecteasy

Which TWO of the following are valid primitive data types in JSON? (Choose two)

Select 2 answers
A.String
B.Function
C.Boolean
D.Undefined
E.Symbol
AnswersA, C

Correct. Strings are a fundamental primitive type in JSON.

Why this answer

JSON primitive types include strings, numbers, booleans, and null. Arrays and objects are composite types.

190
MCQhard

When comparing error handling between NETCONF and the Junos REST API, how are protocol-level errors communicated back to the client?

A.NETCONF embeds error details inside XML <rpc-error> tags, whereas REST API uses standard HTTP status codes accompanied by structured error response bodies.
B.NETCONF uses HTTP status codes, while REST API uses XML <rpc-error> tags.
C.NETCONF and REST API both use identical JSON error envelopes defined by RFC 7807.
D.Both protocols rely exclusively on system syslog files to report errors to the client API.
AnswerA

NETCONF relies on XML RPC error tags, while REST uses standard HTTP status codes and response bodies.

Why this answer

NETCONF communicates errors via XML <rpc-error> elements embedded in the response envelope. The Junos REST API leverages standard HTTP status codes (such as 400 Bad Request, 401, 403, 404, 500) combined with detailed error payloads in the response body.

191
Multi-Selecteasy

Which TWO tools or protocols can be used to interact with the Junos XML API besides NETCONF over SSH? (Choose two)

Select 2 answers
A.Junos PyEZ library
B.Syslog over UDP port 514
C.XML API over HTTP/HTTPS (mgmt daemon)
D.RADIUS authentication protocol
E.SNMP v3 traps
AnswersA, C

PyEZ uses NETCONF under the hood to execute XML API calls.

Why this answer

Junos XML API can be accessed via NETCONF over SSH or via HTTP/HTTPS using the Junos XML API over HTTP server.

192
Multi-Selecthard

Which THREE error-tag values defined in NETCONF RFC 6241 may be returned by a Junos device when an edit-config operation fails validation? (Choose three)

Select 3 answers
A.syntax-timeout
B.invalid-value
C.data-exists
D.buffer-overflow
E.missing-element
AnswersB, C, E

'invalid-value' is returned when a configuration value is out of range or malformed.

Why this answer

RFC 6241 error-tags include invalid-value, missing-element, data-exists, and in-use.

193
Multi-Selecteasy

Which TWO benefits does NETCONF provide over traditional screen-scraping CLI automation? (Choose two)

Select 2 answers
A.Structured data representation (XML) that eliminates the need for complex regular expression parsing.
B.Automatic generation of physical fiber cabling diagrams.
C.Elimination of any need for authentication credentials.
D.Formal transaction semantics with built-in validation and error reporting (<rpc-error>).
E.Requirement for lower bandwidth links by compressing all payloads into binary audio streams.
AnswersA, D

Structured XML responses avoid fragile regex scraping.

Why this answer

NETCONF provides structured XML/YANG data formats and reliable error handling compared to fragile CLI screen scraping.

194
Multi-Selecteasy

Which TWO characteristics are true regarding the Junos REST API? (Choose two)

Select 2 answers
A.It requires client-side compilation of proprietary C++ libraries.
B.It supports both JSON and XML data formats.
C.It requires a persistent SSH session for every transaction.
D.It is managed by the jpagent service daemon.
E.It runs on TCP port 830 exclusively.
AnswersB, D

Junos REST API natively handles both JSON and XML representation formats.

Why this answer

The Junos REST API runs on jpagent (default port 3000 for HTTP and 3443 for HTTPS) and natively supports both JSON and XML data formats.

195
MCQhard

An automation script makes a REST API request to modify a Junos configuration. To ensure that the changes are validated and committed in a single workflow step without leaving dangling candidate changes, how can the commit parameter be handled?

A.Issue an HTTP GET request to /api/configuration/commit.
B.Set the Transfer-Encoding header to 'commit'.
C.Include the 'action=commit' query parameter or commit body flag with the configuration request.
D.Send a separate SSH command because REST cannot commit configurations.
AnswerC

Commit query parameters or action flags instruct the REST API daemon to commit the candidate changes immediately.

Why this answer

The Junos REST API allows query parameters or header flags (such as '?action=commit' or dedicated commit instructions) to automatically commit changes made during a configuration modification request.

196
Multi-Selecthard

Which THREE error-type values are defined in the NETCONF protocol specification (RFC 6241) for categorizing <rpc-error> messages? (Choose three)

Select 3 answers
A.rpc
B.hardware
C.transport
D.protocol
E.kernel
AnswersA, C, D

'rpc' is a valid NETCONF error-type for RPC envelope issues.

Why this answer

RFC 6241 defines transport, rpc, protocol, and application error types.

197
MCQeasy

What is the primary delimiter used to separate key-value pairs in a JSON object?

A.Comma (,)
B.Forward slash (/)
C.Semicolon (;)
D.Period (.)
AnswerA

Correct. Commas separate elements within JSON objects and arrays.

Why this answer

JSON object key-value pairs are separated by commas (,).

198
MCQhard

An automation developer is designing a tool that interacts with multiple network vendors, including Juniper Junos. They evaluate using Junos REST API versus NETCONF. Which workflow advantage does the REST API offer over NETCONF in web-centric application environments?

A.REST API leverages standard HTTP/HTTPS transport infrastructure, making it easily traversable through web proxies and adaptable to modern web frameworks using native JSON.
B.REST API completely replaces the Junos candidate configuration datastore with a real-time database.
C.REST API natively supports XML parsing, whereas NETCONF only supports binary protocols.
D.REST API guarantees atomic multi-device commits across different vendors without controllers.
AnswerA

HTTP/HTTPS transport and native JSON make REST ideal for web-centric integration compared to SSH-based NETCONF.

Why this answer

REST APIs natively integrate with standard HTTP load balancers, web proxies, firewalls inspectable by HTTP/HTTPS, and standard web application frameworks without needing specialized SSH tunnel management or XML parser libraries.

199
MCQhard

A Python script processes a YAML configuration template for Junos BGP neighbors. The configuration contains a multi-line banner string description. Which YAML block scalar indicator preserves newlines exactly as written in the text block?

A.The pipe symbol (|)
B.The ampersand symbol (&)
C.The greater-than symbol (>)
D.The asterisk symbol (*)
AnswerA

Correct. The literal style indicator (|) preserves newlines in multi-line strings.

Why this answer

In YAML, the pipe symbol (|) denotes a literal scalar style, which preserves newlines within multi-line strings.

200
MCQeasy

What is the standard IETF RFC that defines the core NETCONF protocol architecture and operations?

A.RFC 8040
B.RFC 6241
C.RFC 4253
D.RFC 7950
AnswerB

RFC 6241 specifies the Network Configuration Protocol (NETCONF).

Why this answer

RFC 6241 is the definitive IETF standard defining the NETCONF Configuration Protocol.

201
Multi-Selecthard

Which THREE parameters can be included within a Junos NETCONF <commit> RPC request to customize commit behavior? (Choose three)

Select 3 answers
A.<confirm-timeout> integer </confirm-timeout>
B.<confirmed/>
C.<max-rollback-files> integer </max-rollback-files>
D.<comment> describing the change </comment>
E.<encryption-key> string </encryption-key>
AnswersA, B, D

<confirm-timeout> specifies the rollback timeframe for confirmed commits.

Why this answer

Junos commit RPC options include comment, confirmed, and check (validate).

202
MCQhard

You are writing a Python automation script that processes configuration data. The script reads a YAML file containing Junos firewall filters, modifies them, and writes them back out. However, you notice that all the original comments in the file are stripped out in the output. What is the fundamental reason for this behavior in standard PyYAML dump operations?

A.The yaml.safe_dump() function explicitly deletes comments for security reasons.
B.Comments are stripped during parsing because they are not part of the YAML data model.
C.YAML specification mandates that all comments are ephemeral and cannot be serialized.
D.Comments must be re-injected using the 'preserve_comments=True' parameter.
AnswerB

Correct. Parsers drop comments since data structures only contain keys, values, and sequence items.

Why this answer

PyYAML parses YAML files into abstract syntax trees (AST) or Python native data structures, discarding comments during the parsing phase because comments are not part of the data model.

203
MCQhard

You are writing a script that uses PyEZ to load a partial configuration merge. By default, what configuration database mode does the Config utility lock and load into?

A.The rescue configuration database
B.The candidate configuration database
C.A private configuration database instance
D.The global active configuration database
AnswerB

Correct. The standard target for PyEZ configuration loads is the candidate database.

Why this answer

By default, PyEZ loads configuration changes into the candidate configuration database.

204
MCQmedium

When managing Junos configuration changes in a team environment, why is atomic configuration rollback capability crucial during automated deployments?

A.It compresses the configuration database to save NVRAM storage space.
B.It allows the router to dynamically rewrite Python scripts into C++ for faster execution.
C.It automatically backs up the entire Junos OS image to an external TFTP server.
D.It ensures that either all configuration statements in a transaction are applied successfully or none are, preventing partial/corrupt states.
AnswerD

Correct. Atomicity guarantees all-or-nothing transaction execution.

Why this answer

Atomic rollbacks ensure that if a change set fails validation or causes a network fault, the system can revert cleanly to the previous working state without partial application.

205
MCQhard

An automation script attempts to load a configuration snippet using NETCONF <edit-config> with operation="delete" on a container statement. What happens if the specified container does not currently exist in the candidate configuration?

A.The device ignores the request and returns an OK response.
B.The device converts the operation to a merge automatically.
C.The device returns a NETCONF rpc-error indicating the node does not exist.
D.The device automatically creates the container as an empty object.
AnswerC

The 'delete' operation requires the target node to exist, otherwise it triggers an error.

Why this answer

The delete operation fails if the target node does not exist, whereas remove is silent if absent.

206
MCQeasy

What is the purpose of the <hello> element exchanged immediately after establishing a NETCONF SSH session?

A.To exchange supported protocol capabilities and namespace identifiers.
B.To authenticate the SSH username and password.
C.To request an immediate reboot of the Junos routing engine.
D.To lock the candidate configuration database automatically.
AnswerA

The <hello> element enables capability negotiation between client and server.

Why this answer

The <hello> element is used by both client and server to exchange supported capabilities and session parameters.

207
MCQeasy

What is the primary function of a version control system (VCS) like Git in a Junos automation workflow?

A.To track configuration history, enable collaboration, and provide a single source of truth for network designs.
B.To act as a high-speed packet forwarding engine for BGP routes.
C.To compile Python automation scripts into binary executables.
D.To monitor real-time CPU utilization on Junos routing engines.
AnswerA

Correct. VCS provides history tracking, collaboration, and a source of truth.

Why this answer

A VCS tracks changes over time, enabling collaboration, rollback, and audit trails.

208
Multi-Selecthard

Which THREE distinct operational states or configuration views can be queried using specific Junos XML API RPCs? (Choose three)

Select 3 answers
A.System information via <get-system-information>
B.BGP routing table via <get-bgp-kernel-table>
C.Chassis inventory via <get-chassis-inventory>
D.Firewall filter logs via <get-security-packet-capture>
E.Interface information via <get-interface-information>
AnswersA, C, E

<get-system-information> queries device software, model, and uptime.

Why this answer

Junos XML API provides dedicated RPCs for system information, interface information, and chassis inventory.

209
Multi-Selectmedium

In a CI/CD pipeline configured for Junos network changes, which THREE automated testing steps are typically performed before production deployment? (Choose three)

Select 3 answers
A.Physical replacement of router power supply units
B.Manual approval of physical fiber patch cables by a security guard
C.Static code linting of YAML data and Jinja2 templates
D.Dry-run candidate configuration validation on a test Junos device or virtual instance
E.Automated schema validation against YANG models
AnswersC, D, E

Correct. Linting catches formatting and syntax errors.

Why this answer

Pipelines typically include syntax validation, schema validation, and dry-run commit checks.

210
MCQeasy

What type of brackets enclose an array in a JSON document?

A.Curly braces ({ })
B.Square brackets ([ ])
C.Angle brackets (< >)
D.Parentheses (( ))
AnswerB

Correct. Square brackets denote arrays in JSON.

Why this answer

Arrays in JSON are enclosed within square brackets ([ and ]).

211
MCQmedium

When an automation script issues a POST request to create a new static route via the Junos REST API, what HTTP status code indicates that the resource was successfully created?

A.200 OK
B.302 Found
C.204 No Content
D.201 Created
AnswerD

HTTP 201 Created is the standard response code for successfully creating a new resource via POST.

Why this answer

In standard HTTP REST semantics, a successful creation request resulting in a new resource returns HTTP status code 201 Created.

212
MCQmedium

When writing a Python script that connects to multiple Junos devices concurrently using PyEZ, which Python module is commonly used to manage thread pooling and parallel execution?

A.jnpr.junos.parallel
B.multiprocessing.device
C.asyncio.netconf
D.concurrent.futures
AnswerD

Correct. concurrent.futures provides high-level APIs for executing tasks asynchronously using threads or processes.

Why this answer

Concurrent futures or threading modules handle parallel execution in Python.

213
MCQeasy

An automation engineer is writing a Python script using Juniper PyEZ to connect to a Junos device. Which context manager approach is best practice to ensure the Device session is properly closed even if an exception occurs?

A.dev = Device(host="192.168.1.1"); dev.start_session()
B.with Device(host="192.168.1.1", user="admin", passwd="secret") as dev:
C.dev = Device(host="192.168.1.1"); dev.open(autoclose=True)
D.dev = Device(host="192.168.1.1").connect()
AnswerB

The context manager automatically opens the connection upon entry and safely closes it upon exit.

Why this answer

Using the 'with Device(host=...) as dev:' context manager guarantees that the open() and close() methods are handled automatically, even if runtime errors occur inside the block.

214
MCQeasy

Which transport protocol is mandated by RFC 6241 as the standard secure connection mechanism for NETCONF when operating in typical Junos enterprise automation environments?

A.HTTPS
B.SSH
C.gRPC
D.TLS
AnswerB

NETCONF over SSH (TCP port 830 by default) is the standard transport protocol.

Why this answer

RFC 6241 specifies NETCONF over Secure Shell (SSH) as the standard secure transport protocol.

215
MCQmedium

When executing a configuration change via the Junos REST API, what is the role of the HTTP DELETE method?

A.To clear operational state counters such as interface packet counters.
B.To terminate an active REST API session and revoke the auth token.
C.To delete a specific configuration hierarchy or statement from the candidate configuration.
D.To discard the entire candidate configuration.
AnswerC

HTTP DELETE maps to deleting configuration elements in the candidate datastore.

Why this answer

In the context of the Junos REST API, the HTTP DELETE method is used to remove a specific configuration object or subtree, analogous to deleting a statement in the Junos CLI or removing an element in NETCONF.

216
MCQhard

When writing a Python script using PyEZ, how should you handle connection timeout exceptions when attempting to connect to an unreachable Junos device?

A.except NetconfConnectionError:
B.except ConnectError:
C.except DeviceOpenError:
D.except socket.timeout:
AnswerB

Correct. ConnectError is raised by jnpr.junos.exception when a connection cannot be established.

Why this answer

PyEZ raises ConnectError when it fails to establish a NETCONF session with the target device.

217
MCQeasy

Which Junos XML API output format option allows requesting the output as plain text instead of structured XML?

A.output="ascii"
B.encoding="plain"
C.format="text"
D.type="string"
AnswerC

Adding format='text' to a Junos RPC requests CLI-like text output instead of XML.

Why this answer

Junos XML API allows requesting ASCII/text output format by appending the format='text' attribute to RPC requests.

218
Multi-Selecthard

In a Junos NETCONF automation workflow, what happens during a lock operation on the configuration database? (Choose two)

Select 2 answers
A.Exclusive write access is acquired for the requesting session, preventing concurrent configuration modifications by other users or scripts.
B.The physical routing engine is immediately powered down to prevent hardware wear.
C.An unlock operation must be performed (or session closed) to release the lock for other processes.
D.All operational state monitoring (such as 'show route') is permanently disabled.
E.All firewall filters on all interfaces are automatically deleted.
AnswersA, C

Correct. Locking prevents race conditions.

Why this answer

Locking a configuration database prevents other users or processes from making conflicting changes until unlocked.

219
MCQmedium

You are writing a script that parses NETCONF responses from Junos. You encounter an element named <ok/> inside an <rpc-reply>. What does this indicate?

A.The SSH tunnel has been successfully authenticated.
B.The NETCONF operation completed successfully with no error or data payload to return.
C.The candidate configuration has uncommitted changes.
D.The device CPU utilization is normal.
AnswerB

An <ok/> tag is returned for operations like commit or edit-config when successful.

Why this answer

The <ok/> tag indicates that the requested NETCONF operation executed successfully with no data to return.

220
Multi-Selecteasy

Which TWO tools or platforms are commonly used for version control and hosting of Junos automation code repositories? (Choose two)

Select 2 answers
A.Adobe Photoshop
B.Microsoft Word
C.GitHub
D.VLC Media Player
E.GitLab
AnswersC, E

Correct. GitHub is a leading Git repository hosting platform.

Why this answer

Git is the standard version control system, hosted on platforms like GitHub or GitLab.

221
MCQmedium

When using Jinja2 inheritance, which tag is placed in a base template to indicate where child templates can insert their custom content?

A.{% block block_name %} ... {% endblock %}
B.{{ super() }}
C.{% insert block_name %}
D.{% child_content %}
AnswerA

Correct. The block tag defines override points in Jinja2 template inheritance.

Why this answer

The block tag defines regions that child templates can override.

222
MCQeasy

An automation engineer is writing a Python script to parse a Juniper Junos NETCONF reply received in XML format and needs to convert it into a native Python dictionary for internal processing. Which built-in library should the engineer use to convert the structured XML tree?

A.xml.etree.ElementTree
B.pickle
C.yaml
D.json
AnswerA

Correct. xml.etree.ElementTree provides functions to parse XML strings and files into hierarchical tree structures.

Why this answer

xml.etree.ElementTree is a standard Python library used for parsing and navigating XML data structures. While JSON and YAML are common serialization formats, NETCONF protocol responses natively return XML, which must be parsed before data manipulation.

223
MCQhard

An automation script attempts to unlock a candidate configuration datastore that was previously locked by a different NETCONF session. Which RPC is required to force-terminate that session and release the lock?

A.<kill-session><session-id>...</session-id></kill-session>
B.<unlock target="candidate" force="true"/>
C.<release-lock session-id="..."/>
D.<close-session><session-id>...</session-id></close-session>
AnswerA

<kill-session> forcefully terminates the specified session ID and releases its locks.

Why this answer

The <kill-session> RPC allows terminating another active NETCONF session, which automatically releases any locks held by that session.

224
MCQeasy

Which of the following describes the fundamental structural difference between JSON and YAML regarding syntax design?

A.YAML requires all keys to be enclosed in double quotes, whereas JSON does not.
B.YAML does not support lists or arrays.
C.JSON relies on explicit punctuation like braces and brackets, whereas YAML relies heavily on indentation.
D.JSON supports comments natively, whereas YAML does not.
AnswerC

Correct. JSON uses structural syntax tokens, while YAML uses indentation.

Why this answer

JSON relies explicitly on structural characters (curly braces, brackets, quotes, commas) to define hierarchies, whereas YAML primarily relies on indentation and whitespace.

225
Multi-Selectmedium

Which TWO tasks are typically automated using Python and PyEZ in a network DevOps pipeline? (Choose two)

Select 2 answers
A.Direct packet capture inspection at Layer 1 physical media levels
B.Writing device firmware assembly code
C.Automated pushing of validated Jinja2-generated configurations to candidate databases
D.Automated pre-check and post-check operational verification during maintenance windows
E.Compiling Junos kernel device drivers in C++
AnswersC, D

Correct. Pushing generated configs via PyEZ Config is standard practice.

Why this answer

PyEZ automates configuration deployments and operational data gathering.

Page 2

Page 3 of 5

Page 4

All pages