Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bgp_communities facts handling for empty member lists. #319

Merged

Conversation

kerry-meyer
Copy link
Collaborator

@kerry-meyer kerry-meyer commented Dec 30, 2023

SUMMARY

The change set merged for PR #251 (bgp_communities - Add support for replaced and overridden states: #251) introduced a crash exposure in the "facts" file for the case in which a configured BGP community list exists, but has no members. If this configuration case exists, any attempt to gather Ansible "facts" for the bgp_communities resource module fails with a crash during parsing of the configuration for the BGP community list with the empty member list. As a result, all playbook tasks fail for this resource module.

The crash occurs due to an attempt to access a non-existent "type" element of the "result" dict for the current BGP Community list to determine how to parse the "member" attributes. (No value was being set for the "type" element when the "member" list did not exist.)

The revised handling proposed in this PR handles the "problem" case by saving the parsed BGP community list result as a "standard" type list with default attribute values.

GitHub Issues

N/A

ISSUE TYPE
  • Bugfix Pull Request
COMPONENT NAME

sonic_bgp_communities

OUTPUT

Summary regression test result with the fix installed, plus an added integration test case to generate the "problem" configuration case and verify that it is correctly handled during subsequent configuration requests:

2.3.0_bgp_comm_fix_with_no-mem_cfg_integration test_regression-2024-01-02-22-58-14.pdf

Full regression test log for the test run for same test run (with the fix installed, plus an added integration test case to generate the "problem" configuration case and verify that it is correctly handled during subsequent configuration requests):

2.3.0_bgp_only_nomem_fix_pr_nomem_cfg_with_new_testcase_uninstrumented_permit_mismatch.log

Summary regression test result with the fix installed and the "problem" case configured:

2.3.0_bgp_comm_fix_with_no-mem_cfg_pr_regression-2023-12-29-17-21-05.pdf

Full regression test log with the fix installed and the "problem" case configured:

2.3.0_bgp_comm_nomem_fix_pr_nomem_cfg.log

Summary regression test result without the fix installed and the "problem" case configured:
2.3.0_bgp_comm_nomem_nofix_regression-2023-12-29-16-36-29.pdf

Example traceback for the crash fixed by this PR:

File "/home/kerry/.ansible/collections/ansible_collections/ansible/netcommon/plugins/module_utils/network/common/facts/facts.py", line 135, in get_network_resources_facts
inst.populate_facts(
File "/home/kerry/.ansible/collections/ansible_collections/dellemc/enterprise_sonic/plugins/module_utils/network/sonic/facts/bgp_communities/bgp_communities.py", line 111, in populate_facts
resources = self.get_bgp_communities()
File "/home/kerry/.ansible/collections/ansible_collections/dellemc/enterprise_sonic/plugins/module_utils/network/sonic/facts/bgp_communities/bgp_communities.py", line 77, in get_bgp_communities
if result['type'] == 'expanded':
fatal: [sonic1]: FAILED! => {

ADDITIONAL INFORMATION

Checklist:
  • I have performed a self-review of my own code to ensure there are no formatting, linting, or security issues
  • I have verified that new and existing unit tests pass locally with my changes
  • I have not allowed coverage numbers to degenerate
  • I have maintained at least 90% code coverage
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • I have maintained backward compatibility or have provided any relevant "breaking_changes" descriptions in a "fragment" file in the "changelogs/fragments" directory of this repository.
  • I have provided a summary for this PR in valid "fragment" file format in the "changelogs/fragments" directory of this repository branch. Reference : Ansible Change Log Document
How Has This Been Tested?

Re-run the failing regression test suite with the fix installed.

  • Verify that the crash occurs consistently with the "problem" configuration case present and without the fix installed.

  • Verify that the crash does not occur with the "problem" configuration case present and with the fix installed.

  • Problem configuration from a raw Openconfig "GET":

{
"openconfig-bgp-policy:community-sets": {
"community-set": [
{
"community-set-name": "bgp_no_mem",
"config": {
"openconfig-bgp-policy-ext:action": "PERMIT",
"community-set-name": "bgp_no_mem",
"match-set-options": "ANY"
},
"state": {
"openconfig-bgp-policy-ext:action": "PERMIT",
"community-set-name": "bgp_no_mem",
"match-set-options": "ANY"
}
}
]
}
}

Copy link
Collaborator

@santhosh-kt santhosh-kt left a comment

Choose a reason for hiding this comment

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

Looks good to me.

…mber list config handling; Add the standard module name prefix to the fragment file for this PR.
@kerry-meyer kerry-meyer merged commit 63e2ea8 into ansible-collections:main Jan 3, 2024
16 checks passed
@kerry-meyer kerry-meyer deleted the bgp_community_no_member_fix branch June 25, 2024 06:25
kerry-meyer added a commit that referenced this pull request Aug 19, 2024
…2.x branch) target 2.x (#439)

* Update CHANGELOG.rst

* Change NTP module name (#114)

* Moved CHANGELOG.rst to meet redhat certification requirements (#115)

* Moved CHANGELOG.rst to meet redhat certification requirements

* Updated changelog path

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Create ignore-2.15.txt

I'm adding an "ignore-2.15.txt" file to the "tests/sanity" directory to allow passing Ansible sanity tests on the new Ansible core 2.15 branch.

* Add SONIC logging ansible module (#111)

* Add SONIC logging ansible module

* Change as resource model changed

* Correct typo in model example

* Address review comments

* Deleted port name split (#119)

* Adding template for CODEOWNERS for DellEmc Enterprise SONiC ansible c… (#120)

* Adding template for CODEOWNERS for DellEmc Enterprise SONiC ansible collections

* Updated review comments

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* updated the review comments

Signed-off-by: kannankvs <kannan_kvs@dell.com>

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* Add server "prefer" attribute to NTP module (#118)

* Add PREFER attribute to NTP module

* Add more regression test cases

* Allow use of the OC Yang compliant vlan range delimiter ".." in new SONiC images (#124)

* Allow use of the OC Yang compliant vlan range delimiter ".." in new SONiC images

The l2_interface "facts" facility previously accepted only the "-" character/string
as a vlan "range" delimiter for specifying allowed trunking vlans to be configured
on an interface. Recent SONiC images have modified the implementation to use the
OC Yang compliant ".." string instead. (e.g. The range previously specified as
"5-7" is now specified as "5..7".)

This change set provides a modified, backward compatible implementation for
l2_interface "facts" gathering by allowing and handling either of these
options for the vlan trunking allowed range string delimiter.

* Fix Ansible sanity errors.

* Add "stable-2.14" to our test matrix (#126)

The Ansible core team has announced that the Ansible core "2.14" version is stable and should be added to collection workflow test matrices.

This PR is to add it to the Dell enterprise_sonic test matrix.

* Updated test cases to reflect cvl neighbor validation code changes. (#127)

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Removed the vxlan co-req restriction for the evpn_nvo and source_ip attributes (#130)

* Removed the vxlan co-req restriction for the evpn_nvo and source_ip attribute

* Corrected misnaming

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Make NTP minpoll and maxpoll config together (#129)

* Make NTP minpoll and maxpoll config together

* Change as models changed

* Added docs folder and a committers guide file  (#125)

* Added docs folder and a commiters guide file within the folder

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* updated file permission

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* Updated comments as suggested

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* addressed errors

Signed-off-by: kannankvs <kannan_kvs@dell.com>

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* Adding templates to Issue section (#123)

* Adding templates for Issue section

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* addressed review comments

* Addressed comments in .yml file as suggested

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* addressed errors

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* Updated review comments

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* Addressed comments

Signed-off-by: kannankvs <kannan_kvs@dell.com>

Signed-off-by: kannankvs <kannan_kvs@dell.com>

* Add interface speed and more attributes (#128)

* Add interface speed and more attributes

* Address review comments

* More changes

* Address review commit

* Address review comments

* Fix sanity error

* Address review comments

* Add get default interface speed

* Provided workaround for SONiC mgmt vrf bug (#146)

* Provided workaround for SONiC mgmt vrf bug

* Addressed review comments

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add Enterprise SONiC "dhcp_relay" resource module (#131)

* Add Enterprise SONiC "dhcp_relay" resource module

* Update sonic_dhcp_relay.py

* Update delete all handling

* Address review comments

* playbook support for vlan trunk ranges (#149)

* Provide playbook support for vlan trunk ranges in the SONiC l2_interfaces resource module:

- Change the argspec to use a string instead of an integer when specifying a vlan or
a vlan range.
- Add handling to support a "vlan" argument that specifies a vlan range in the form "X-Y".
- provide correct tracking of commands sent to the device after eliminating requested
configuration that is already present on the device.
- Fix bugs causing incorrect reporting of the original playbook command "invocation" and
the final set of commands sent to the device.
- Add regression test cases to cover the possible overlap conditions between trunk vlans
and ranges configured on the device and requested additions or deletions of trunk vlans
and ranges.

* Fix Ansible sanity errors for automatic string format field numbering.

* Fix remaining sanity errors.

* Updated the description of the trunk "vlan" argument to incorporate a vlan range

* Modified trunk vlan argument descriptions, added vlan trunk range examples

* Fix "trailing whitespace" sanity errors.

* Added BGP rd and rt attributes (#141)

* Added BGP rd and rt attributes

* Addressed review comments

* Fixed sanity error

* Fixed sanity error

* Fixed sanity error

* Addressed review comments

* Removed extra bgp

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add new attributes to MCLAG resource model (#145)

* Add NTP placed and overridden states to NTP module (#151)

* Add replaced and overridden states to logging module (#150)

* Add replaced and overridden states to logging module

* Move send_requests to utils.py

* Fix sanity issue

* To trigger sanity check

* Add replaced and overridden states support to VRFS module (#156)

* Add replaced and overridden to System module (#159)

* Add replaced and overridden to System module

* Move some lines

* Add port group module (#132)

* Add port group module

* Change TEST_KEYS

* Add IP neighbor global configuration Ansible module (#140)

* Add IP neighbor global configuration Ansible module

* Remove not-neccessary TEST_KEYS

* Fixed collection sanity check errors (#160)

* Fixed sanity check error

* Fixed sanity check errors

* Fixed sanity check errors

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Support template under docs folder (#162)

* Support template under docs folder

This PR has been raised, as the original [PR#143](https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/143) was closed due to deletion of head repository

* updated review comments

updated review comments

* Fix sanity errors caused by deletion of Ansible Netcommon utilities (#172)

* Fix sanity errors caused by deletion of Ansible Netcommon utility functions.

Ansible recently merged changes in the Ansible Netcommon repo that eliminated the
source functions for several utilities imported into modules in the enterprise_sonic
collection. The affected utility functions are available in the ansible/ansible
(library) repo and have been there since the earliest Ansible core version
that is currently supported. Because of this, the source of the imports
can be changed in the enterprise_sonic collection without introducing any
downward compatibility problems.

* Deleted an unintentional extra line from the change set.

* Update required ansible.netcommon version (#176)

* Add common unit test module and 'dhcp_relay' resource module unit tests (#148)

* [unit test] pylint disable unused-import in compat/mock.py (#179)

* Adding Maintainers Guide (#164)

This PR has been raised as the original [PR#136](https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/136) has been closed due deletion of head repository.

* Update sanity test and code coverage workflows (#181)

* Additional information file under docs folder (#161)

* Create ADDITIONAL_INFORMATION.md

* Updated review comments

Updated review comments

* BGP AddressFamily (bgp_af) module Unit test code added (#183)

* BGP AddressFamily (bgp_af) module Unit test code added

* bgp_af_ut Fix: sonic_module modified to handle NULL dict.

* Fixed regression failures for aaa, mclag, and port_breakout modules (#180)

* Fixed regression failures for aaa, mclag, and port_breakout modules

* Changed broken uri

* Updated test case

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Fix in bgp_af UT due to recent changes in bgp_af module (#191)

* Template for Pull Request (#167)

* Template for Pull Request

This is PR is an extension of [PR#121](https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/121) and [PR#139](https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/139). We have added all the comments from PR121 to this PR and have commented it below.

@kerry-meyer Thanks for creating these guideline. I have posted some minor comments/questions inline.

kerry-meyer In the PR description, please provide any relevant details on recommended procedures and/or tools for measuring code coverage (if any).

KVSK We have commented the below statement under additional information section to handle this code coverage measurement.
"Measure the code coverage before and after the change by running the UT and ensure that the "coverage after the change" is not less than the coverage "before the change". Note that the unit testing coverage can be manually executed using the pytest tool or ansible-test tool."

kerry-meyer Please change this to:
I have maintained backward compatibility or have provided any relevant "breaking_changes" descriptions in a "fragment" file in the "changelogs/fragments" directory of this repository.

KVSK Addressed as suggested.

kerry-meyer What does "vetting" mean in this requirement? Is there a recommended procedure to check for "security issues" (or is this a judgement call for the PR submitter)?

KVSK Have requested the technical team to comment on this.

kerry-meyer Please add an item for documentation requirements:
I have provided a summary for this PR in valid "fragment" file format in the "changelogs/fragments" directory of this repository branch. (REF: "https://docs.ansible.com/ansible/devel/community/development_process.html#changelogs-how-to")

KVSK Addressed as suggested.

kerry-meyer Please add a sentence here:
If no Github issues are affected, please indicate this with "N/A".

KVSK Addressed as suggested.

* updated review comments

updated review comments

* BGP Unit test code added (#182)

* BGP Unit test code added

* bgp_ut: Added delete all and delete for few more params

* Added Contributors Guide (#165)

* Added Contributors Guide

This PR has been raised as the original [PR#134](https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/134) has been closed due deletion of head repository.

* Updated review comments

Updated review comments

* Updated review comments

Updated review comments

* Updated review comments

Updated review comments

* updated review comments

updated review comments

* BGP AS PATHS module unit test cases added (#184)

* BGP AS PATHS module unit test cases added

* bgp_as_paths_ut: Fix1: mandatory empty as_path added in existing config; added extra test case to increase coverage

* BGP Communities module unit testing code added (#185)

* BGP Communities module unit testing code added

* bgp_communities_ut: Fix1: Added mandatory empty commmunity set in merged test case; deleted commented lines

* BGP Extended Communities Module Unit Testing Code Added (#186)

* BGP Extended Communities Module Unit Testing Code Added

* bgp_ext_communities_ut: Fix1: Added mandatory empty ext commmunity set in merged test case; deleted commented lines

* BGP Neighbors Address Family Unit Test Code Added (#188)

* BGP Neighbors Address Family Unit Test Code Added

* bgp_neighbors_af_ut: Fix1: Added mandatory empty peer-group and neighbors set in test cases; deleted commented lines

* Install dependencies from ansible-galaxy in code coverage workflow (#199)

* Updated aaa module (#195)

* Updated aaa module

* Addressed review comments

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Fixed bgp af bug (#201)

* Fixed bug

* Updated test cases

* Updated UT

* Fixed indentation

* Resolve sanity check error

* Resolved sanity check error

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* tacacs server unit testing code added (#208)

* prefix_list unit testing code added (#209)

* radius server unit testing code added (#210)

* users module unit testing code added (#213)

* vlans module unit testing code added (#214)

* vlan module unit testing code added

* vlan module unit testing:fix1:removed the output dir that got checkedin by mistake

* Create ignore-2.16.txt

Fix the following sanity error caused by the new usage of Ansible 2.16 as the "devel" sanity version.

------------------------------
ERROR: plugins/action/sonic.py:0:0: action plugin has no matching module to provide documentation

* Fix GitHub issue 205 (#224)

* unit testing code for aaa module added (#198)

* unit testing code for aaa module added

* aaa module UT-fix1-removed blanklines from python file to fix lint sanity error

* AAA UT: Modified the test cases as per the recent changes in aaa module

* Unit testing code for system module added (#223)

* unit testing code for vxlan module added (#215)

* unit testing code for vxlan module added

* corrected whitespace sanity error in test python file and corrected indentation sanity error in module python file

* static routes unit testing code added (#212)

* unit testing code for interfaces module added (#197)

* unit testing code for interfaces module added

* interfaces module UT-fix1-removed blanklines from python and yaml files to fix lint sanity errors

* Unit testing code for mclag module added (#204)

* Unit testing for ip_neighbor module added (#225)

* Ut port groups (#228)

* Unit testing for port-group module added

* port_group UT: Fixed sanity error

* Unit Testing for port_breakout module added (#229)

* Unit testing code for modules/sonic_api.py added (#218)

* Unit testing code for modules/sonic_api.py added

* removed the ansible-test-sanity-yamllint.json that got checked in by mistake in tests/output directory. tests/output directory itself is removed now

* Unit testing code for modules/sonic_facts.py added (#222)

* Unit testing for logging module added (#226)

* Unit testing for logging module added

* Modified the mocking method for send_requests; reused config_side_effect instead of introducing new mocking method

* Updated remove_default_entries function (#233)

* Updated remove_default_entries function

* Corrected typo

* Removed unnecessary code

* Resolved deletion issues

* Resolved sanity check failures

* Added function to remove defaults

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Fix GitHub issue 194 (#230)

* Resolved l3 interfaces bug (#231)

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* BGP Neighbors module unit testing code added (#187)

* BGP Neighbors module unit testing code added

* bgp_neighbors_ut: Fix1: Added mandatory empty peer-group and neighbors set in test cases; deleted commented lines

* bgp_neighbors_ut: Fix2: Duplicate keys deleted to fix sanity/lint errors

* Added additional test case to get 70 pcercentage coverage

* bgp_neighbors UT: Fix1: Added mandatory variables in existing PG config

* l3_interfaces unit testing code added (#202)

* l3_interfaces unit testing code added

* l3_interfaces_ut:fix1:added replaced and overridden values in documentation

* Removed the temporary addition of replaced and overridden options from plugins.

* Added few combinations in test case to increase coverage even without replaced and overridden

* lag_interfaces unit testing code added (#203)

* lag_interfaces unit testing code added

* lag_interfaces_ut:fix1:added replaced and overridden values in documentation

* Removed the temporary addition of replaced and overridden options from plugins.

* added few combinations to increase coverage percentage without replaced and overridden

* unit testing code for l2_interfaces module added (#200)

* unit testing code for l2_interfaces module added

* l2_interfaces_ut:fix1:added replaced and overridden values in documentation

* Removed the temporary addition of replaced and overridden options from plugins.

* Added few combinations to increase ceoverage percentage without replaced and overridden

* BGP neighbors module underwent an enhancemnet w.r.t default checks. BGP Neighbors UT started failing after that. Corrrected those UT failures by ehancing the UT (#245)

* Created Issue Triage file (#166)

* Created Issue Triage file

This PR has been raised as the original [PR#135](https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/135). And has been closed due deletion of head repository.

* Updated review comments

Updated review comments

* Updated review comments

Updated review comments

* Updated comments

Updated comments

* updated the review comments

updated the review comments

* Updated the comments

Updated the comments

* updated comments

updated comments

* updated the comments

updated the comments

* Ut ntp (#207)

* Unit testing code for NTP added

* Added test cases for replaced and overridden for NTP unit testing

* unit testing code for vrfs module added (#216)

* unit testing code for vrfs module added

* removed whitespaces before colon in yaml file

* Added support for replaced and overridden in UT for VRFs

* Add release fragments (#232)

* Add release fragments

* Add TACACS server pull request fragment

* Add RADIUS server replaced and overridden pull request fragment

* Change to address review comments

* Unit testing code for modules/sonic_command.py added (#219)

* Unit testing code for modules/sonic_command.py added

* Enhanced UT code to validate the output from sonic_command module

* removed unwanted print and debug statements which in turn resolved the sanity errors

* Add Enterprise SONIC LLDP Global module (#171)

* LLDP Global module

* addressed error

* lldp test files modifed

* updated config file

* corrected rest path

* Addressed sanity error

* updated scripts

* Add Enterprise SONiC "acl_interfaces" resource module (#173)

* Add Enterprise SONiC "acl_interfaces" resource module

* Handle empty input

* Add Enterprise SONiC "l2_acls" resource module (#174)

* Add Enterprise SONiC "l2_acls" resource module

* Handle empty input

* Add Enterprise SONiC "l3_acls" resource module (#175)

* Add Enterprise SONiC "l3_acls" resource module

* Handle empty input

* Added BFD module (#177)

* Added BFD module

* Deleted unused imports

* Changed copyright year

* Addressed review comment and added fragment

* Addressed review comment

* Fixed variable reference issue

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Unit testing code for modules/sonic_config.py added (#220)

* Unit testing code for modules/sonic_config.py added

* Enhanced UT code to validate the output from sonic_config module

* removed unwanted print and debug statements which in turn resolved the sanity errors

* Added CoPP module (#152)

* Added CoPP module

* removed unused diff parameter

* fixed sanity check error

* fixed sanity check errors

* removed unnecessary variable redeclaration

* Deletdd unused file

* Added fragment

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Added MAC module (#157)

* Added MAC module

* merge

* Reverted some changes

* fixed sanity check error

* fixed sanity check error

* fixed sanity check errors

* Removed unused functions

* Replaced double quotes with single quotes

* Changed function to remove default entries

* Fixed sanity check error

* Removed unnecessary check

* Moved variable

* Changed copyright year

* Updated tasks and added fragment

* Added cleanup test

* Addressed review comment

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Added support for replaced and overridden states to vxlan module (#247)

* Added support for replaced and overridden states to vxlan module

* Updated UT

* Updated UT

* Added fragment

* Restored code and made minor changes

* Revert "Restored code and made minor changes"

This reverts commit f1bc2f25d7982607fd8ca471a977dad8431e623a.

* Changed test case names to be uniform

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Removed repetitive get_diff call in replace function (#254)

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* bgp_af - Add support for 'replaced' and 'overridden' states (#246)

* bgp_af - Add support for 'replaced' and 'overridden' states

* Update changelog

* Update copyright

* Add replaced and overridden states for port_group module (#227)

* Add replaced and overridden states for port_group module

* Address review comments

* Removed space between PortChannel and ID (#257)

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Change ip_neighbor module replaced state design (#253)

* Change ip_neighbor module replaced state design

* Address more review comment

* Fix sonic_logging module regression issue (#258)

* Fix sonic_logging module regression issue

* Add fragment

* Lag-interface replaced and overridden states (#196)

* Lag-interface replaced and overridden states

* Address review comments

* Address more review comment

* Added support for replaced and overridden to the aaa module (#237)

* Added support for replaced and overridden to the aaa module

* Added fragment

* Rename 237-replaced-overridden-for-aaa-resource-module.yaml to 237-aaa-replaced-overridden-support.yaml

* Addressed review comment

* Added descriptions for replaced and overriden states

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Added fragments for 2.1.0 (#248)

* Added fragments for 2.1.0

* Fixed sanity check error

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add support for replaced, overridden states in l2_interfaces module (#221)

* Add support for replaced, overridden states in l2_interfaces module

* Handle empty input

* Add changelog

* Fix UT cases

* Increased command timeout for interfaces test cases (#260)

* Increased command timeout for interfaces test cases

* Added fragments

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Added route-map-process-delay attribute to BGP module (#244)

* Added route-map-process-delay attribute to BGP module

* Fixed typo

* Added fragment

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* bgp_as_paths - Fix issues in merged and deleted states (#250)

* dhcp_relay - Add support for 'replaced' and 'overridden' states (#249)

* dhcp_relay - Add support for 'replaced' and 'overridden' states

* Update changelog

* bgp - Add support for 'replaced' and 'overridden' states (#240)

* bgp - Add support for 'replace' and 'overridden' states

* Update unit tests

* Address review comments

* Handle 'rt_delay' option

* Add replaced and overridden states for sonic_vlans module (#217)

* Add replaced and overridden states for sonic_vlans module

* Address review comments

* Remove unused function

* Change unit test

* Address more review comments

* Change unit test

* Add dellemc.enterprise_sonic to module name

* fix typo

* Fix typo

* Add replaced and overridden states support for TACACS server resource module (#235)

* Add replaced and overridden states support for TACACS server resource module

* Add more change

* Address review comments

* Address review comment

* Added support for replaced and overridden states to users module (#242)

* Added support for replaced and overridden states to users module

* Fixed UT failures

* Added fragment

* Rename 242-replaced-overridden-for-users-resource-module.yaml to 242-users-replaced-overridden-support.yaml

* Removed unused functions

* Update changelogs/fragments/242-users-replaced-overridden-support.yaml

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Addressed review comments

* Addressed review comment

* Addressed comment

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Addressed review comment

* Revert "Addressed review comment"

This reverts commit dee6a44598f2785259ec9c39e915325d5db0336c.

* Addressed review comment

* Changed overridden method to update delete state

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>
Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Add replaced and overridden states support for sonic_radius_server module (#239)

* Add replaced and overridden states support for sonic_radius_server module

* Address review comment

* Address review comments

* Changed timeout to apply to delete test case only (#261)

* Increased command timeout for interfaces test cases

* Added fragments

* Changed timeout to only apply to the delete test case

* Moved timeout to delete test case

* Removed timeout from task template

* Changed fragment

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Added support for replaced and overridden states to static routes (#236)

* Added replaced and overridden for static routes

* Added fragment

* Removed repetitive function call

* Addressed review comment

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add Enterprise SONiC "Vlan Mapping" Resource Module (#193)

* Added vlan-mapping to dell collection, working facts file

* Working module for Q&Q
Start of regression tests

* Added config for vlan mapping that supports states:
deleted, merged, replaced, overridden

* Regression tests for the vlan mapping resource module
that test merged, deleted, replaced, overridden

* Fix for module errors when running sanity checks

* Fixed error when portchannels not initialized
causing error during regression tests

* Added checks to see if vlan mapping is supported
on the switch and if it is enabled

* Sanity test fixes for facts file

* Removed unused imports that resultes in
sanity check errors

* Fixed typos and added state update for del commands
when replaced is running

* Fixes for the replaced state
 - Fixed replaced state not updating values when it should if diff = []
 - Fixed replaced state not updading values when it should if values
were deleted
 - Fixed the function that checks for matches to match all values
stopping it from attemping to delete extra values

* Added support for replaced and overridden states to prefix lists module (#255)

* Removed repetitive get_diff call from replaced

* Revert "Removed repetitive get_diff call from replaced"

This reverts commit ff8f87f5195f45ccba87aab8114c9f88f914b6e1.

* Added support for replaced and overridden states to prefix_lists module

* Resolved sanity check failure and added fragment

* Removed unused import

* Added descriptions for replaced and overridden states

* Updated replaced and overridden methods

* Addressed review comment

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Initial commit for the sonic_route_maps resource module (#259)

* Initial commit for the sonic_route_maps resource module

- Provide data definitions (argspec), new code modules, and additions/change
to existing files in the Enterprise SONiC Ansible collection to implement
"facts" collection for configuration handled by the "sonic_route_maps"
resource module.

- Provide "module" argument specification documentation, module base
execution code, and user examples for adding, modifying, deleting,
replacing, and overriding route map configuration.

- Define automated regression test cases to verify correct functionality of the
route maps resource module.

* Fix sanity errors.

* Incorporate code review feedback and change regression test names

- Multiple changes are included to address review comments for simplifying and
generalizing the functional code.

- The route map "main.yml" regression test file is modified to provide a more
conveniently sorted list of test sections in regression logs. (Ordering
is modified to be by test number instead of by the test item description.)

* Modified the "FIXME" comment for removing current match peer configuration when a
new value has been requested for this attribute: It is now just a "Note".

* Incorporate additional review comments.

* Added a mutual exclusion to the argspec and module file for the BGP community "none" attribute:

The exclusion prevents configuring the "none" attribute at the same time as other
attributes.

* Added sonic_route_maps to the integration regression test list.

* Fixed the copyright notice in the argspec file.

* Adding missing words (Coyright 2023) to the copyright notice.

* Update plugins/module_utils/network/sonic/config/route_maps/route_maps.py

Co-authored-by: stalabi1 <54641848+stalabi1@users.noreply.github.com>

* Update plugins/module_utils/network/sonic/config/route_maps/route_maps.py

Co-authored-by: stalabi1 <54641848+stalabi1@users.noreply.github.com>

* Add a fix for optimized "replaced" state deletion of "set" nested items.

* Update plugins/module_utils/network/sonic/config/route_maps/route_maps.py

Temporarily merging the PR "community" optimization fix to remove branch conflicts.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update plugins/module_utils/network/sonic/config/route_maps/route_maps.py

Temporary commit of extcommunity optimization change to resolve Git branch contention.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Adding refresh of cmd_set_top after refreshing it's parent dict.

* Fixed a sanity error caused by an extra blank line added with the most recent channges.

---------

Co-authored-by: stalabi1 <54641848+stalabi1@users.noreply.github.com>
Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Vlan mapping 2.1.0: Removed Platform Specific Checks (#262)

* Added vlan-mapping to dell collection, working facts file

* Working module for Q&Q
Start of regression tests

* Added config for vlan mapping that supports states:
deleted, merged, replaced, overridden

* Regression tests for the vlan mapping resource module
that test merged, deleted, replaced, overridden

* Fix for module errors when running sanity checks

* Fixed error when portchannels not initialized
causing error during regression tests

* Added checks to see if vlan mapping is supported
on the switch and if it is enabled

* Sanity test fixes for facts file

* Removed unused imports that resultes in
sanity check errors

* Fixed typos and added state update for del commands
when replaced is running

* Fixes for the replaced state
 - Fixed replaced state not updating values when it should if diff = []
 - Fixed replaced state not updading values when it should if values
were deleted
 - Fixed the function that checks for matches to match all values
stopping it from attemping to delete extra values

* Removed checks for vlan mapping enabled/supported on switch
due to issues with platform differences

* Add fragment file and change version to 2.1.0 (#264)

* Add fragment file and change version to 2.1.0

* add more fragment files

* add more fragment files

* Added missing fragments (#263)

* Added missing fragments

* Update changelogs/fragments/176-update-netcommon-version.yaml

Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

* Update changelogs/fragments/199-code-coverage-workflow-fix.yaml

Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

* Update changelogs/fragments/176-update-netcommon-version.yaml

Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>
Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

* Fragment files for release 2.1.0: Covering PRs 124, 149, and 172 (#265)

* Fragment files for release 2.1.0: Covering PRs 124, 149, and 172

* Update changelogs/fragments/172-module-utils-import-remove-empties-from-ansible-lib.yaml

changed incorrect "module" name "sonic_module_utils" to the corrected plugin name "module_utils"

* Fixed fragment format errors to address a sanity failure.

* Create the Release Note for the enterprise_sonic v2.1.0 Ansible colle… (#266)

* Create the Release Note for the enterprise_sonic v2.1.0 Ansible collection release.

* Fix a release summary fragment file sanity error: Delete blank lines

* Correct new contributor names added in the galaxy.yml file.

* Fix incorrect categorization of changes, incorrect descriptions, and formatting errors.

* More formatting changes...

* Removed the empty "Major Changes" section.

* Reverted aaa breaking changes (#269)

* Reverted aaa breaking changes

* Added fragment

* Updated copyright year

* Reverted playbook

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Galaxy yml fix (#270)

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Change the "galaxy" dependency statement for Ansible Netcommon to allow installation of any release after 5.0.0.

- Remove the temporary workaround merged to avoid installation of the bug in Netcommon version 5.0.0: Allow
installation of any Netcommon release after 5.0.0. This allows installation of the latest tagged release for
Ansible Netcommon, which contains the fix for the problem created with the 5.0.0 release plus additional
updates.

- Update the enterprise_sonic release number in preparation for releasing a minor version of the enterprise_sonic
collection that addresses backing out of a "breaking" fix in the AAA module and also the removal of the temporary
workaround for the Ansible Netcommon bug.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Change the enterprise_sonic version number to 2.2.0

In accordance with a request from Ansible for corrected semantic versioning associated
with "breaking" changes and backing out of breaking changes, the "MINOR" version number
for this "fix" release is being incremented instead of just the "PATCH" version.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Add a fragment file for updating the galaxy.yml file and update other changelog files.

The additional changes beyond adding the new fragment file are to move "leftover"
fragment files that were not incorporated into the 2.1.0 release notes into the
changelogs/archive_fragments/2.1.0 directory and add the corresponding updates
to the changelogs/changelog.yaml file.

* Release Note for the enterprise_sonic v2.2.0 (#271)

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Provide release notes for the 2.2.0 version of the enterprise_sonic Ansible Network Resource Module Collection

- Provide a summary fragment to generate the release note summary.
- Fix non-conformant old fragments in the changelogs/changelog.yaml to generate correct CHANGELOG.rst output
for this release and for future releases.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Correct grammar and changelog format problems in the "changelogs/changelog.yaml" file and re-generate the CHANGELOG.rst file

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Made additional corrections in the changelog.yaml file and re-generated the CHANGELOG.rst file.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Added an accidentally deleted fragment for logging.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Corrected the name of the "aaa" module to "sonic_aaa"

* Update changelogs/archive_fragments/2.2.0/v2.2.0_summary.yaml

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Fix an additional typo and a swapped line.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Updated the release date to today and added a hyphen between the month and day.

---------

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Resolved regression failures (#273)

* Resolved regression failures

* Addressed review comments

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add Ansible support for all port breakout modes currently supported by SONiC (#276)

* Add Ansible support for all port breakout modes provided with the z9432f

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Add Ansible support for all port breakout modes currently supported by SONiC

- Add support for all currently supported port breakout modes.
- Fix deficiencies and duplication in test case definitions for the port_breakout resource module.
- Add a 10 second pause between test sections to avoid SONiC errors due to back-to-back
port breakout configuration commands.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Add a changelog fragment file.

* Update changelogs/fragments/276-add-new-port-breakout-modes.yaml

Fix incorrect specification of the PR number in the fragment file.

Co-authored-by: stalabi1 <54641848+stalabi1@users.noreply.github.com>

---------

Co-authored-by: stalabi1 <54641848+stalabi1@users.noreply.github.com>

* Enable contiguous execution of all regression integration tests on an S5296f. (#277)

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Enable contiguous execution of all regression integration tests on an S5296f.

- Modify/add interface names to avoid port group interfaces for the "interfaces" test.
- Remove "interfaces" and "l3_interfaces" test cases that delete all interface
configuration to prevent disabling the Management 0 interface connection.

These changes are a prerequisite for enabling automated regression test execution.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Add a changelog fragment file for this PR.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Change the fragment type from "trivial_changes" to "minor_changes".

* Playbook check and diff modes util and radius-server implemetation (#279)

* Playbook check and diff modes util and radius-server implemetation

* Add fragment file

* Fix sanity errors

* Address review comments

* Address review comment

* [workflow] Add workflow to check for changelog fragments in PR (#274)

* [workflow] Add workflow to check for changelog fragments in PR

* Skip changelog for new_resource_module labelled PRs

* [workflow] Change trigger of changelog workflow to run only for PRs (#282)

* Fix the bgp CLI automated regression test external playbook failure  (#283)

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Fix the bgp CLI test base_cfg_path derivation of the bgp role_path by avoiding relative pathing from the possibly external playbook_dir.

* Signed-off-by: Kerry Meyer <kerry.meyer@dell.com>

Fix changelog numbering to match the PR number and set the component name to bgp.

* Add diff and check modes support for NTP module (#281)

* Add diff and check modes support for NTP module

* Add fragment file

* Address review comments

* Address review comment

* TACACS diff and check modes

* Address review comments

* Fix sanity errors

* Address review comment

* Add diff check modes support for vrfs logging and ip_neighbor modules (#285)

* Add diff and check modes support for vrfs logging and ip_neighbor modules

* Add fragment file

* Add mgmt VRF handling to VRFS module (#293)

* Add mgmt VRF handling to VRFS module

* Add fragment file

* Fix unit test error

* Fix unit test error

* Address review comments

* Address review comment

* Fix sanity error

* Add more check

* Add MGMT VRF replaced handling (#298)

* Add MGMT VRF replaced handling

* Add fragment file

* Add Public Key Infra SONiC module (#280)

* Add Public Key Infra SONiC module

* remove commented code

* Fix replaced method, add examples

* update version

* Address PR comments

* Fix replaced order, add initial unit test

* Fix facts path, add delete UT

* Fix replaced case, add overridden and replaced UTs

* Add fragment for pki

* Fix bool values

* Rename fragment

* Add other examples in pki module

* Fis handling of replaced

* Update ocsp urls to FQDN url

* Remove commented code

* Remove fragment file

* Don't delete lists and dicts in replace

* Remove commented code

* Address comments

* Rename attributes to use _ instead of -

* Delete field instead of all in delete UT

* Remove extra start of doc yaml lines

* Formatting

* Add imports

* formatting

* formatting

* Delete non-specified leaf keys in replace operation

* Check if old value is list or dict

* formatting

* formatting

* address comments

* Fix delete behavior of trust stores in overridden

* Fix tests according to review comments

* Address comments

* Fix pep8 errors

---------

Co-authored-by: sdl <sdklfgj@zdjklfcom>
Co-authored-by: Eric Seifert <Eric_E_Seifert@dell.com>

* Added STP module (#286)

* Added STP module

* Fixed sanity error

* Updated bridge priority description for pvst amd rapid pvst

* Updated model

* Addressed review comments

* Fixed sanity check errors

* Remove vlan-id deletion

* Remove vlan-id delete

* Remove vlan-id delete

* Remove vlan-id delete

* Addressed review comments

* Updated test cases and replaced coded

* updated unit test cases

* Updated unit test cases

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* port_breakout - Add support for 'replaced' and 'overridden' states (#291)

* [test] Generate regression test report based on verbosity (#294)

* [test] Generate regression test report based on verbosity

* Add changelog fragment

* bgp_as_paths - Add support for 'replaced' and 'overridden' states (#290)

* Fixed BGP neighbors prefix-limit bug (#289)

* Fixed BGP neighbors prefix-limit bug

* Added fragment

* Fixed BGP neighbors AF prefix-limit bug

* Updated test case

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Check and diff modes support for l2- and lag-interfaces modules (#303)

* Check and diff modes support for l2- and lag-interfaces modules

* Add fragment file

* Add sanity ignore file

* Corrected commands list for delete state (#302)

* Added STP module

* Fixed sanity error

* Updated bridge priority description for pvst amd rapid pvst

* Updated model

* Addressed review comments

* Fixed sanity check errors

* Remove vlan-id deletion

* Remove vlan-id delete

* Remove vlan-id delete

* Remove vlan-id delete

* Addressed review comments

* Updated test cases and replaced coded

* updated unit test cases

* Updated unit test cases

* Corrected commands list for delete state

* Adding fragment

* Fixed sanity error

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add check and diff modes support for system and port group modules (#284)

* Add check and diff modes support for system and port group modules

* Add fragment file

* Fix sanity error

* Fix sanity error

* Vlans and interfaces resource modules check and diff modes support (#301)

* Vlans and interfaces resource modules check and diff modes support

* Add fragment file

* Fix sanity error

* Fix sanity error

* Fix sanity error

* Fix sanity error

* Fix sanity error

* Fix sanity error

* Fix sanity error

* Change unit test script

* Fix unit test error

* Add method line back

* Fix sanity error

* Change fragment files (#309)

* bgp_ext_communities - Add support for replaced and overridden states (#252)

* bgp_ext_communities - Add support for replaced and overridden states

* Create 252-replaced-overridden-for-bgp-ext-communities-module.yaml

* Fixing replaced and overridden cases

* Fixing failed unit test cases

* Refactoring and Adding UT testcases

* Improving code coverage and fixing issues

* Addressing review comments

* Added another overridden testcase

* Review changes

* removing if and changing examples

* as_path to bgp_ext_communities

* sanity fix

* Addressing error log message

* bgp_communities - Add support for replaced and overridden states (#251)

* bgp_communities - Add support for replaced and overridden states

* Update UT testcases and changelogs

* Fixing replaced and overridden cases

* Fixing sanity errors

* Refactoring code changes and added UT cases

* Handling corner case in overridden

* Refactoring code changes

* Minor changes

* Addressing review comments

* Review changes

* Sanity fix

* Addressing errors messages

* Update examples

* Added new testcase in overridden

* Change deleted state design for interfaces module (#310)

* Change deleted state design for interfaces module

* Add fragment file

* Fix sanity errors

* Change unit test script

* Fix leggacy sanity errors - type() to isinstance()

* Fix sanity error

* Fix unit test sanity error

* Address review comment

* Fix sanity error

* More change

* More change

* Add more UT cases

* users and aaa module diff and check modes (#304)

* users and aaa module diff and check modes

* Add fragment file

* Change fragment file

* Add documentation for check mode

* static_route module diff and check mode (#313)

* static_route diff and check mode

* Add fragment file

* Add fragment file

* Add more UT cases

* Add more UT cases to increase coverage

* Diff and check modes support for acl_interfaces l2_acls and l3_acls modules (#306)

* Diff and check modes support for acl_interfaces l2_acls and l3_acls modules

* add fragment file

* Fix sanity error

* Change fragment file

* Add documents for after(generated)

* Address review comments

* mclag - Add support for VLAN range, replaced and overridden states (#288)

* mclag - Add VLAN range support for 'unique_ip' and 'peer_gateway' options

* mclag - Add support for replaced and overridden states

* Update replaced state behavior

* l3_interfaces - Add support for replaced and overridden states (#241)

* l3_interfaces - Add support for replaced and overridden states

* Create 241-replaced-overridden-for-l3-interfaces-module.yaml

* Renaming test cases names

* Updating overridden exception case

* Updating UT testcases for replaced and overridden

* Addressing overridden review comment

* Minor change wrt regression

* Adding remove_default_entries for replaced and overridden

* Dhcp snooping interface names update (#305)

* Create dhcp_snooping branch + copy scaffold files

* Format the argspec file

- Conform to standard Python indentation conventions.

* Add dhcp_snooping as an option in facts files

- Change double quotes to single in argspec.

* Facts implementation for dhcp_snooping

* DHCP Snooping config and regression testing

- Update argspec and documentation to reflect fixes in model.

* Fix requested changes and sanity test errors

- Removed ANSIBLE_METADATA section.
- Updated version.
- Fixed whitespace errors.
- Fixed import errors.

* Change version to 2.3.0

* add setup for interfaces in regression tests

* combine trusted interface settings into intf_name

* dhcp unit tests and commenting config

* code review fixes, fix replaced replacing source bindings

* fix mispelling typo

* fix bugs in merge state idempotency

* fix commands accuracy, de-duplicate requests sent in replaced

* update documentation wording for clarity

* fix documentation for sanity tests

* bug fix overridden sending duplicate reequests, replaced merging missing information, responses to review

* add regression tests for source binding

* remove drafting file accidentally committed

* fix regression test errors, overridden state not setting a bit of config

* fixes to merged state and unit tests, style fix to interface name check in facts

* fix typo in regression test case name

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* mirror CLI reporting of verify_mac setting, fix wrong IP versions in tests

* clean trailing whitespace

* expand source_bindings in tests with all settings for a binding

* sanity tests and cleanup

* bug fix delete replaced should only delete source bindings of requested family

* bug fix UT

* fix sanity test failure

---------

Co-authored-by: simon_nathans <simon.nathans@dell.com>
Co-authored-by: simon-nathans <137438930+simon-nathans@users.noreply.github.com>
Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Add UTs for BFD, COPP, and MAC modules (#287)

* Updated state examples and updated code for UT

* Added UTs for BFD, COPP, and MAC

* Added fragment

* Addressed review comments

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add UT for ACL modules (#316)

* Add UT for ACL modules

* Resolve sanity failures

* Change config diff utility function (#318)

* Change config util

* Fix sanity error

* Add fragment file

* Fix sanity error

* Address review comment

* Address more review comments

* Interface - Add support for replaced and overridden states (#314)

* Interface - Add support for replaced and overridden states

* With bugfixes

* Sanity fix

* Fix bgp_communities facts handling for empty member lists. (#319)

* Fix bgp_communities facts handling for empty member lists.

* Add a changelog fragment file for this fix.

* Corrected the tense for this changelog fragment.

* Added details for this changelog fragment.

* Add automated unit and integration testing for empty bgp community member list config handling; Add the standard module name prefix to the fragment file for this PR.

* Release notes and related changes for release 2.3.0 (#320)

* Release note and related changes for release 2.3.0

* Update CHANGELOG.rst

Change fragment tense to conform to the standard.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update CHANGELOG.rst

Change fragment tense to conform to the Ansible standard.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update CHANGELOG.rst

Change the module name to conform to the enterprise_sonic standard practice.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update CHANGELOG.rst

Use the generic test component name for a test change affecting the BGP resource module tests.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update CHANGELOG.rst

Use the generic "tests" module name for consistency with fragments for other similar changes.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update CHANGELOG.rst

Add periods at the end of fragments as specified in Ansible documentation on writing a changelog fragment.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update changelogs/changelog.yaml

Update fragment descriptions to conform to the Ansible fragment syntax standard.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update changelogs/changelog.yaml

Update fragment component names for changes to "tests" to use a consistent generic component name for test changes.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update changelogs/changelog.yaml

Use present tense for code change fragment descriptions.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update CHANGELOG.rst

Remove redundant mention of l2_interfaces vlan range support introduced in a previous release.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update changelogs/changelog.yaml

Remove redundant mention of l2_interfaces vlan range support introduced in a previous release.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Fix release 2.3.0 changelog formatting errors and inconsistencies.

---------

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Upgrade the enterprise_sonic collection Ansible core version requirement to a currently supported Ansible core version. (#321)

* Update requires_ansible version in meta/runtime.yml to the oldest supported version.

* Change the ansible_python_interpreter version to 3.9 for the inventory example file.

* Meta runtime uplevel README revisions (#322)

* Update the README.md file to specify the updated ansible (core) and Python recommendations wit this release.

* Add ACL interfaces and prefix lists to the README httpapi module list.

* Add more modules to the README httpapi module list.

* Add remaining modules to the README httpapi module list.

* Add a fragment file for the README file update.

* Group DHCP modules, realign affected columns.

* Fix the BFD link in the table.

* Incorporate code review comments for the fragment file type and module table format.

* Update README.md

Added the port_group module to the module list.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update README.md

Deleted the Oxford comma near the end of the statement of supported states.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update README.md

Added the word "collection" to distinguish between our Ansible collection and the SONiC NOS.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update README.md

Added the word "collection" to distinguish between our Ansible collection and the SONiC NOS.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

---------

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Post a release note update for release 2.4.0. (#325)

* Post a release note update for release 2.4.0.

* Enclose version numbers at the ends of sentences in quotes to separate them from the period for the sentence.

* Configure the selected interface naming test mode at the start of a regression run. (#329)

* Configure the selected interface naming test mode at the start of a regression run. Use parameterized interface naming for the route map regression test.

* Add a changelog fragment file.

* Add diff and check for l3_interfaces module (#328)

* Add diff and check for l3_interfaces module

* Add fragment file

* Add some change

* Add doc

* [workflow]: Update code coverage workflow (#333)

* Vxlan external ip feature (#330)

* add vxlan external ip attribute

* add fragment file

* bugfix deleting vxlan should check external ip

* fix sanity test error

* [UT] Fix 'get_device_interface_naming_mode' mock not taking effect (#341)

* [UT] Clear intf_naming_mode in utils

* Resolve sanity failures

* Add Dell Enterprise SONiC 'image_management' module (#311)

* Add Dell Enterprise SONiC 'image_management' module

* Add warning for ignored options

* Fix dhcp_snooping regression failure (#345)

* bfd, copp and dhcp relay and snooping check and diff modes (#346)

* bfd, copp and dhcp relay and snooping check and diff modes

* Add fragment file

* Fix sanity error

* Fix sanity error

* Address review comment

* MCLAG - Add support for session-vrf command  (#299)

* SNC-30446 session-vrf command support for MCLAG in ansible

* Reverting changes in main.yml file

* Added changedlog file for PR

* Addressed review comments

* Removed trailing whitespace in sonic_mclag.py

* Added version details for mclag

* Added session_vrf for replaced and overridden test cases

* Addressed code review comments

* Addressed code review comments

---------

Co-authored-by: Thenmozhi Gopal <thenmozhi.gopal@force10networks.com>

* Sflow (#300)

* initial sflow facts

* bug fix: facts should only display confiugred data

* initial merged and deleted config states implementation

* bug fix config merged adding empty lists when it shouldn't

* initial sFlow regression tests

* implement overridden and replaced config states

* add unit tests for sFlow

* update module with examples

* bug fix replaced with no interfaces or collectors specified

* bug fix changes to replaced breaking test cases

* fix typos and inconsistent casing

* fix more typos in sflow

* cleaning up logging

* style fixes

* bug fixes

* rename missed name fixes

* last sanity test fixes - examples yaml formatting

* remove unused imports

* add small missed areas: style fix and adding to regression test list

* add global sampling rate field

* de-duplicate replaced and overridden results, bug fixing new setting not in delete handling

* fix type checking failing sanity checks

* normailze interface names, bugfixes

* fix typo in validate_normalize_config method name

* use utility methods for sflow replaced

* use unique unit test class name

* reduce overridden state delete calls

* update replaced examples to reflect recent changes

* fixing replaced examples and improving wording of documentation

* module documentation wording changes

Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

* cleanup of module documentation

* fixing merge conflict

* fixes to test cases and implement config delete interface attributes

* make deleted state filter out interface settings that do not match and fix examples and tests

* fix typos and add backwards compatibility

Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

---------

Co-authored-by: Kerry Meyer <kerry.meyer@dell.com>

* Add support for standard_extended interface-naming mode (#352)

* Add support for standard_extended interface-naming

* Fixed sanity errors

* Fixed another sanity error.

* Fix sanity error for stable-2.15

* Remove UT mock references to send_requests

* Update changelogs/fragments/352-system-standard-extended-interface-naming.yaml

Use "sonic_system" instead of "system" for the component name in the fragment.

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Update plugins/module_utils/network/sonic/utils/utils.py

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

---------

Co-authored-by: Arun Saravanan Balachandran <52521751+ArunSaravananBalachandran@users.noreply.github.com>

* Fix port_group regression failure (#355)

* Fix port_group regression failure

* Address review comment

* Fix invalid short passwords used for sonic_users regression test cases. (#356)

* prefix_lists - Fix idempotency failure and 'replaced' state handling (#354)

* bgp_af - Add support for 'import vrf' commands (#351)

* bgp_af - Add support for 'import vrf' commands

* Fix sanity failure

* Add diff and check modes support for some BGP modules (#350)

* Add diff and check modes support for some BGP modules

* Add fragment file

* Fix sanity error

* Add bgp neighbors and af check and diff modes (#360)

* Add bgp neighbors and af check and diff modes

* Add fragment file

* Change modules files

* Address review comment

* Enterprise SONiC "fips" resource module changes (#324)

* Changes for addition of Enterprise SONiC "fips" resource module

* Fixed all issues raised as part of sanity test.

* Incorporated code review comments.
1. Changed the test case accordingly.
2. Updated deleted state handling in Config.

* 1. Fix for sanity error and code coverage issue.
2. Fixed unnecessary newlines added while resolving conflicts.

* Update plugins/module_utils/network/sonic/config/fips/fips.py

Verified Regression and unit tests with the specified changes. It works fine.

Co-authored-by: xhan-dell <143125816+xhan-dell@users.noreply.github.com>

---------

Co-authored-by: Balasubramaniam K1 <balasubramaniam.k1@sncinfra-maa-01.dng.delllabs.net>
Co-authored-by: xhan-dell <143125816+xhan-dell@users.noreply.github.com>

* Add protocol option in syslog server (#317)

* Add protocol option in syslog server

* adat pep8 style

* Add changelogs

* Add diff and check modes for route_maps and prefix_lists modules (#331)

* Add diff and check modes for route_maps and prefix_lists modules

* Add fragment file

* Change GitHub workflow version to fix sanilty check error

* Merge with main

* Address review comments and fix sanity errors

* Add diff sample text for doc

* Fix GitHub issue#357 and more issues (#366)

* Fix GitHub issue#357 and more issues

* Add fragment file

* Add fragment file

* Fix sanity errors

* Fix sanity error

* mclag, port-breakout and vxlans check and diff modes (#337)

* mclag, port-breakout and vxlans check and diff modes

* Add fragment file

* Address review comments

* Why changelog filed

* Add diff and check modes support for mac, lldp and stp modules (#338)

* Add diff and check modes support for mac, lldp and stp modules

* Add fragment file

* Fix sanity errors

* Address review comments

* Add QoS Buffer module (#334)

* Add QoS Buffer module

* Update example

* Update sonic_qos_buffer.py

fixed spacing

* Remove Ansible meta data section

* Corrected indentation

* Addressed review comments

* Added error message for overridden and replaced states

* Added buffer init playbook example

* Addressed review comments

* Addressed review comments and added QoS buffer init role

---------

Co-authored-by: Shade Talabi <shade.talabi@dell.com>

* Add QoS PFC module (#348)

* Add QoS PFC module

* Updated documentation

* Addressed private review comments

* Fixed sanity error

* Update test cases

* Fixed sanity error

* Addressed review comments

---------

Co-authored-by: Shade <shade.talabi@dell.com>

* interfaces - Update Loopback interfaces handling (#364)

* interfaces - Update Loopback interfaces handling
 - Fix replaced, overridden state handling
 - Add support for description, enabled options

* Resolve sanity failure

* Resolve merge conflicts

* Update replaced state handling

* Update examples

* Auto-breakout - Module implementation (#342)

* Auto-breakout - Module implementation

* addressing comments

* Addressing comments 2, resolving UT issues

* fixing sanity error

* Resolved issue in regression

* Addressing comments 3

* BGP_neighbors_af - Add support for replaced and overridden states (#336)

* BGP_neighbors_af - Add support for replaced and overridden states

* Create 336-replaced-overridden-for-bgp-neighbors-af-module.yaml

* Update after(generated) in documentati…
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.

5 participants