Skip to content

TRANSCEIVER-109: Add 400ZR / 800ZR operational mode transition and inventory persistence test - #6218

Open
vjarial-web wants to merge 4 commits into
openconfig:mainfrom
vjarial-web:zr_800_operational_mode_inventory_recovery_test_code
Open

vjarial-web wants to merge 4 commits into
openconfig:mainfrom
vjarial-web:zr_800_operational_mode_inventory_recovery_test_code

Conversation

@vjarial-web

Copy link
Copy Markdown
Contributor

Implements the Ondatra test automation for TRANSCEIVER-109 (400ZR / 800ZR Operational Mode Transition and Inventory Persistence), along with metadata platform exceptions, testregistry entry, and supporting cfgplugins/transceiver telemetry helpers.

@vjarial-web
vjarial-web requested review from a team as code owners October 29, 2026 12:28
@vjarial-web
vjarial-web requested a review from rezachit October 29, 2026 12:28
@OpenConfigBot

OpenConfigBot commented Oct 29, 2026 •

Copy link
Copy Markdown

Pull Request Functional Test Report for #6218 / 79f6853

Virtual Devices

Device Test Status Test Documentation Job Raw Log
Arista cEOS status
TRANSCEIVER-109: failure
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
1e2b4fa0 Log
Cisco 8000E status
TRANSCEIVER-109: failure
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
bb334aaf Log
Cisco XRd status
TRANSCEIVER-109: failure
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
15310243 Log
Juniper ncPTX status
TRANSCEIVER-109: failure
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
53053e17 Log
Nokia SR Linux status
TRANSCEIVER-109: failure
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
72711430 Log
Openconfig Lemming status
TRANSCEIVER-109: failure
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
ad411953 Log

Hardware Devices

Device Test Status Test Documentation Raw Log
Arista status
TRANSCEIVER-109: pending authorization
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
Cisco status
TRANSCEIVER-109: pending authorization
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
Juniper status
TRANSCEIVER-109: pending authorization
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence
Nokia status
TRANSCEIVER-109: pending authorization
TRANSCEIVER-109: 400ZR / 800ZR Operational Mode Transition and Inventory Persistence

Help

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request implements the Ondatra test automation for TRANSCEIVER-109, which validates the operational mode transitions and inventory persistence of 400ZR and 800ZR coherent optics. The changes include the core test logic, necessary platform-specific deviations, and supporting infrastructure to handle transceiver state, inventory snapshots, and optical telemetry across multiple vendors.

Highlights

  • New Test Implementation: Added the zr_800_operational_mode_inventory_recovery_test to validate 400ZR/800ZR operational mode transitions and inventory persistence.
  • Platform Exceptions: Updated metadata.textproto with platform-specific deviations for Arista, Nokia, Cisco, and Juniper to ensure test compatibility.
  • Infrastructure Support: Introduced new telemetry and configuration helpers in internal packages to support complex transceiver state validation and inventory monitoring.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new end-to-end test suite for 400ZR/800ZR operational mode transition and inventory persistence (TRANSCEIVER-109), along with supporting configuration and telemetry helper functions. The review feedback highlights several critical issues: compilation errors in internal/cfgplugins/interface.go due to mismatched argument counts in updateOpticalChannelConfig calls, a blocking synchronous ygnmi.Watch call in StartOnChangeInventoryWatcher that will cause the test to hang, and a style guide violation where configuration is pushed before registering cleanup operations with t.Cleanup.

Comment thread internal/cfgplugins/interface.go Resolved
Comment thread internal/cfgplugins/interface.go Resolved
Comment thread internal/cfgplugins/interface.go Resolved
@vjarial-web

Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements the TRANSCEIVER-109 test suite for 400ZR/800ZR operational mode transitions and inventory persistence, along with associated helper functions in cfgplugins, components, and transceiver telemetry packages. The review feedback highlights three critical issues: a blocking call to ygnmi.Watch in StartOnChangeInventoryWatcher that should be run in a background goroutine, the need to use a deferred function to guarantee traffic is stopped on early exit or failure, and a bug in the Arista deviation path of OpticalChannelComponentFromPortWithRetry where a failed transceiver lookup results in an invalid optical channel name instead of a test failure.

Comment thread internal/components/components.go Resolved
@vjarial-web
vjarial-web force-pushed the zr_800_operational_mode_inventory_recovery_test_code branch from 35cf562 to 79f6853 Compare November 9, 2026 08:13

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants