Skip to content

Conversation

@architekture
Copy link
Collaborator

  • Added base ADVA ConfigParser class and two subclasses (FSP150F2, FSP150F3)
  • Added compliance and parser testing suites, tests are successful

@itdependsnetworks
Copy link
Contributor

Can you link to the vendor this is referencing? also, not normal for us to have separation of subclasses such as FSP150F2, FSP150F3, may make sense but should have context as to the why.

@jeffkala
Copy link
Collaborator

jeffkala commented Dec 16, 2025

Can you link to the vendor this is referencing? also, not normal for us to have separation of subclasses such as FSP150F2, FSP150F3, may make sense but should have context as to the why.

This was my request because f2 and f3 have many differences and we don't know them all "yet". Also Netmiko has two different drivers for f2 and f3 so we wanted to follow suite on that front. Netmiko drivers: https://github.com/ktbyers/netmiko/blob/develop/PLATFORMS.md#:~:text=adva_fsp150f2,adva_fsp150f3

@architekture
Copy link
Collaborator Author

Corrected issues with documentation and formatting. All checks green.

Copy link
Collaborator

@jeffkala jeffkala left a comment

Choose a reason for hiding this comment

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

LGTM with suggested change to change fragment.

@itdependsnetworks
Copy link
Contributor

Please hold off on this one until I can get a look

@itdependsnetworks
Copy link
Contributor

To start, it's not clear to me what vendor this is?? Is this adtran?

@jeffkala
Copy link
Collaborator

To start, it's not clear to me what vendor this is?? Is this adtran?

ADTRAN Holdings acquired ADVA Optical Networking, these are still using Adva OS so are a different OS vs Adtran which has its own netmiko driver etc.

Co-authored-by: Jeff Kala <[email protected]>
@@ -0,0 +1,5 @@
features = [
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you test the banner feature explicitly here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We certainly can if you prefer. I had it as part of the system featureset since it's not a root-level config context as you'd see with other vendors. Happy to add a banner-specific test for both parsers.

@@ -0,0 +1,5 @@
features = [
Copy link
Contributor

Choose a reason for hiding this comment

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

Same question here.

class ADVAFSP150F3ConfigParser(ADVAConfigParser):
"""ADVA OS FSP-150 F3 ConfigParser."""

comment_chars: t.List[str] = ["#", "home", "Preparing configuration file..."]
Copy link
Contributor

Choose a reason for hiding this comment

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

Putting home here seems reasonable. That being said, just want to document the significance. Can you add a comment here describing it?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

After talking with the customer, I've modified the comment chars for both parsers. Apparently the ADVA OS requires the use of home (or exit, depending on version) to return to the default context; you can't switch config contexts like you can with Cisco before continuing.

The parser classes have been updated and the full_received mock files have been updated accordingly.

Maximilian Francis added 2 commits December 30, 2025 13:26
# Deep copy the reverse, where there is no actual translation happening with special
# consideration for OS's not in netmiko.
_MAIN_LIB_MAPPER = copy.deepcopy(NETMIKO_LIB_MAPPER)
_MAIN_LIB_MAPPER["adva_fsp150f2"] = "adva_fsp150f2"
Copy link
Contributor

Choose a reason for hiding this comment

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

These should be added to netmiko, as they are in there: https://ktbyers.github.io/netmiko/PLATFORMS.html

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Moved platform mapping from MAIN_LIB_MAPPER to NETMIKO_LIB_MAPPER.

),
ConfigLine(config_line=" pae authentication-control enable", parents=()),
ConfigLine(config_line=" pae authentication-control enable", parents=("configure system",)),
ConfigLine(config_line="exit", parents=()),
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think there should ever be a case where a ConfigLine() is exactly the same. I could be wrong about this, but would want to make sure we are all in sync.

@itdependsnetworks
Copy link
Contributor

We should probably meet internally on this one, it's a bit complicated and don't know what the correct path forward is.

Maximilian Francis added 2 commits January 13, 2026 16:36
…terface. Also added explicit banner tests for both ADVA parsers. Updated docs as necessary.
Copy link
Collaborator

@jeffkala jeffkala left a comment

Choose a reason for hiding this comment

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

LGTM, for general info for @itdependsnetworks the banner test specifically were removed here since banners are in a nested block for Advas. Meaning the config to match is actually configure system and its a child line. This PR goes directly inline with the existing nokia_sros parser which functions in the same way (banner) is a nested config line.

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.

4 participants