Skip to content

dcnm_links (3.8.1): KeyError line 2483 #526

@allenrobel

Description

@allenrobel

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Ansible Version and collection version

DCNM version

  • V 3.8.1
  • V 3.9.0

Affected module(s)

  • dcnm_links

Ansible Playbook

---
- name: Deploy in-band BGP sessions for telemetry
  hosts: tme-cls1
  gather_facts: false

  tasks:
    # INTER-FABRIC

    - name: Create Links including optional parameters
      cisco.dcnm.dcnm_links:
        state: merged                                            # choose from [merged, replaced, deleted, query]
        src_fabric: tme-dc4
        config:
          - dst_fabric: tme-external             # Destination fabric
            src_interface: Ethernet1/3                      # Interface on the Source fabric
            dst_interface: Ethernet1/49                      # Interface on the Destination fabric
            src_device: tme-dc4-spine1              # Device on the Source fabric
            dst_device: tme-nxos-1            # Device on the Destination fabric
            template: ext_fabric_setup                           # template to be applied, choose from
                                                                 #   [ ext_fabric_setup, ext_multisite_underlay_setup,
                                                                 #     ext_evpn_multisite_overlay_setup ]
            profile:
              ipv4_subnet: 10.33.0.1/30                        # IP address of interface in src fabric with mask
              neighbor_ip: 10.33.0.2                           # IP address of the interface in dst fabric
              src_asn: 65006                                      # BGP ASN in source fabric
              dst_asn: 65004                                      # BGP ASN in destination fabric
              mtu: 9216                                          #
              max_paths: 2                                     # optional, default is 8
              auto_deploy: false
              peer1_description: "Description of source"         # optional, default is ""
              peer2_description: "Description of dest"           # optional, default is ""
              peer1_cmds:                                        # Freeform config for source interface
                - no shutdown                                    # optional, default is ""
              peer2_cmds:                                        # Freeform config for destination interface
                - no shutdown                                    # optional, default is ""                                 # optional, default is false

          - dst_fabric: tme-external             # Destination fabric
            src_interface: Ethernet1/4                      # Interface on the Source fabric
            dst_interface: Ethernet1/49                      # Interface on the Destination fabric
            src_device: tme-dc4-spine1              # Device on the Source fabric
            dst_device: tme-nxos-2            # Device on the Destination fabric
            template: ext_fabric_setup                           # template to be applied, choose from
                                                                 #   [ ext_fabric_setup, ext_multisite_underlay_setup,
                                                                 #     ext_evpn_multisite_overlay_setup ]
            profile:
              ipv4_subnet: 10.33.0.5/30                        # IP address of interface in src fabric with mask
              neighbor_ip: 10.33.0.6                           # IP address of the interface in dst fabric
              src_asn: 65006                                      # BGP ASN in source fabric
              dst_asn: 65004                                      # BGP ASN in destination fabric
              mtu: 9216                                          #
              max_paths: 2                                     # optional, default is 8
              auto_deploy: false                                 # optional, default is false
              peer1_description: "Description of source"         # optional, default is ""
              peer2_description: "Description of dest"           # optional, default is ""
              peer1_cmds:                                        # Freeform config for source interface
                - no shutdown                                    # optional, default is ""
              peer2_cmds:                                        # Freeform config for destination interface
                - no shutdown                                    # optional, default is ""

          - dst_fabric: "tme-external"             # Destination fabric
            src_interface: "Ethernet1/3"                      # Interface on the Source fabric
            dst_interface: "Ethernet1/50"                      # Interface on the Destination fabric
            src_device: "tme-dc4-spine2"              # Device on the Source fabric
            dst_device: "tme-nxos-1"            # Device on the Destination fabric
            template: ext_fabric_setup                           # template to be applied, choose from
                                                                 #   [ ext_fabric_setup, ext_multisite_underlay_setup,
                                                                 #     ext_evpn_multisite_overlay_setup ]
            profile:
              ipv4_subnet: 10.33.0.9/30                        # IP address of interface in src fabric with mask
              neighbor_ip: 10.33.0.10                           # IP address of the interface in dst fabric
              src_asn: 65006                                      # BGP ASN in source fabric
              dst_asn: 65004                                      # BGP ASN in destination fabric
              mtu: 9216                                          #
              max_paths: 2                                     # optional, default is 8
              auto_deploy: false                                 # optional, default is false
              peer1_description: "Description of source"         # optional, default is ""
              peer2_description: "Description of dest"           # optional, default is ""
              peer1_cmds:                                        # Freeform config for source interface
                - no shutdown                                    # optional, default is ""
              peer2_cmds:                                        # Freeform config for destination interface
                - no shutdown                                    # optional, default is ""

          - dst_fabric: "tme-external"             # Destination fabric
            src_interface: "Ethernet1/4"                      # Interface on the Source fabric
            dst_interface: "Ethernet1/50"                      # Interface on the Destination fabric
            src_device: "tme-dc4-spine2"              # Device on the Source fabric
            dst_device: "tme-nxos-2"            # Device on the Destination fabric
            template: ext_fabric_setup                           # template to be applied, choose from
                                                                 #   [ ext_fabric_setup, ext_multisite_underlay_setup,
                                                                 #     ext_evpn_multisite_overlay_setup ]
            profile:
              ipv4_subnet: 10.33.0.13/30                        # IP address of interface in src fabric with mask
              neighbor_ip: 10.33.0.14                           # IP address of the interface in dst fabric
              src_asn: 65006                                      # BGP ASN in source fabric
              dst_asn: 65004                                      # BGP ASN in destination fabric
              mtu: 9216                                          #
              max_paths: 2                                     # optional, default is 8
              auto_deploy: false                                 # optional, default is false
              peer1_description: "Description of source"         # optional, default is ""
              peer2_description: "Description of dest"           # optional, default is ""
              peer1_cmds:                                        # Freeform config for source interface
                - no shutdown                                    # optional, default is ""
              peer2_cmds:                                        # Freeform config for destination interface
                - no shutdown                                    # optional, default is ""        
        deploy: true

Debug Output

https://gist.github.com/allenrobel/eb29e0239dfc35f88cdf334448848073

Expected Behavior

Playbook should run successfully.

Actual Behavior

KeyError on line 2483 (version 3.8.1), or line 2507 (version 3.9.0)

The code hasn't changed in 3.9.0. Below is the unprotected access.

            if (
                wlink["nvPairs"]["PEER1_CONF"]
                != hlink["nvPairs"]["PEER1_CONF"]
            ):

Steps to Reproduce

Run the attached playbook.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions