Repository: aristanetworks/avd
Pull request #5282: Feat(eos_cli_config_gen): Added the support for list of ip domain in ip name server groups
Author: login: MaheshGSLAB
Labels: name: role: eos_cli_config_gen
description: issue related to eos_cli_config_gen role
name: state: CI Updated
description: CI scenario have been updated in the PR
name: state: Documentation role Updated
name: rn: Feat(eos_cli_config_gen)
name: one approval
description: This PR has one approval and is only missing one more.
Created: 2025-04-09T12:44:20Z | Merged: 2025-04-22T17:11:31Z

## Change Summary

In schema ip_domain_list mentioned as str but we can have multiple ip domain in one server group. Deprecated the older key and added new kew with list of str.

## Related Issue(s)

Fixes #5277 

## Component(s) name

`arista.avd.eos_cli_config_gen`

## Proposed changes
new key ip_domain_lists: <list[str]> and deprecate the old one ip_domain_list: < str > for removal in 6.0. Added the ip_name_server_groups into the input-variables.md

## How to test
Run molecule

## Checklist

### User Checklist

<!-- Add your own checklist using MD syntax and by replacing N/A -->
- N/A

### Repository Checklist

<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code has been rebased from devel before I start
- [x] I have read the [**CONTRIBUTING**](https://avd.arista.com/stable/docs/contribution/overview.html) document.
- [x] My change requires a change to the documentation and documentation have been updated accordingly.
- [x] I have updated [molecule CI](https://github.com/aristanetworks/avd/tree/devel/ansible_collections/arista/avd/molecule) testing accordingly. (check the box if not applicable)


Linked issue #5277: eos_cli_config_gen: `ip_name_server_groups` schema doesn't support multiple ip domain-list
Schema:
```yaml
  ip_name_server_groups:
    type: list
    primary_key: name
    items:
      type: dict
      keys:
        name:
          type: str
        name_servers:
          type: list
          primary_key: ip_address
          allow_duplicate_primary_key: true
          items:
            type: dict
            keys:
              ip_address:
                type: str
                description: IPv4 or IPv6 address for DNS server.
              vrf:
                description: VRF Name.
                type: str
                required: true
                convert_types:
                - int
              priority:
                description: Priority value (lower is first).
                type: int
                convert_types:
                - str
                min: 0
                max: 15
        dns_domain:
          type: str
        ip_domain_list:
          type: str  # <-- list?
          description: Set domain names to complete unqualified host names.
```
`ip_domain_list` is a str but should probably be a list?

On EOS supports multiple ip domain-list entries:
```bash
ip name-server group DNS_Servers
   name-server vrf MGMT 8.8.8.8
   name-server vrf MGMT 10.22.30.1
   dns domain labsphere.cc
   ip domain-list google.com
   ip domain-list nhl.com
```

Also, maybe I'm blind but it looks like the documentation is missing for this data model: https://avd.arista.com/devel/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.html

Linked issue comments: user: login: gmuloc
created_at: 2025-04-09T08:16:49Z
body: indeed it was missed during the review process.

Let's address it like this: create a new key `ip_domain_lists: <list[str>` and deprecate the old one for removal in 6.0
author_association: CONTRIBUTOR

Diff:
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
index 7d27372ae2c..097c8db016c 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
@@ -455,6 +455,15 @@ ip name-server vrf TEST 2001:db8::2 priority 3
 
 ##### mynameserver0
 
+###### IP Domain List
+
+| IP Domain |
+| --------- |
+| atd.lab.com |
+| avd.lab.com |
+
+###### Name Server
+
 | IP Address | VRF | Priority |
 | ---------- | --- | -------- |
 | 1.1.1.1 | default | 0 |
@@ -465,7 +474,13 @@ ip name-server vrf TEST 2001:db8::2 priority 3
 
 DNS Domain: arista.avd.com
 
-IP Domain List: domain-list1
+###### IP Domain List
+
+| IP Domain |
+| --------- |
+| domain-list1 |
+
+###### Name Server
 
 | IP Address | VRF | Priority |
 | ---------- | --- | -------- |
@@ -489,6 +504,8 @@ ip name-server group mynameserver0
    name-server vrf default 1.1.1.1 priority 0
    name-server vrf default 8.8.8.8
    name-server vrf default 2.2.2.2 priority 1
+   ip domain-list atd.lab.com
+   ip domain-list avd.lab.com
 !
 ip name-server group mynameserver1
    name-server vrf default 1.1.1.1
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg
index 6d225432a5e..fb9b4c2bdfc 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg
@@ -483,6 +483,8 @@ ip name-server group mynameserver0
    name-server vrf default 1.1.1.1 priority 0
    name-server vrf default 8.8.8.8
    name-server vrf default 2.2.2.2 priority 1
+   ip domain-list atd.lab.com
+   ip domain-list avd.lab.com
 !
 ip name-server group mynameserver1
    name-server vrf default 1.1.1.1
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ip-name-server-groups.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ip-name-server-groups.yml
index 7a1eaef5dc2..f4b8808af3b 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ip-name-server-groups.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ip-name-server-groups.yml
@@ -1,7 +1,8 @@
 ---
 ip_name_server_groups:
   - name: mynameserver1
-    ip_domain_list: domain-list1
+    ip_domain_lists:
+      - domain-list1
     dns_domain: arista.avd.com
     name_servers:
       - ip_address: 8.8.8.8
@@ -24,6 +25,9 @@ ip_name_server_groups:
         priority: 3
 
   - name: mynameserver0
+    ip_domain_lists:
+      - avd.lab.com
+      - atd.lab.com
     name_servers:
       - ip_address: 8.8.8.8
         vrf: default
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg
index a8cc4f87808..021f065e6c8 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/intended/configs/host1.cfg
@@ -5,6 +5,10 @@ no aaa root
 !
 transceiver qsfp default-mode 4x10G
 !
+ip name-server group mynameserver1
+   dns domain arista.avd.com
+   ip domain-list domain-list1
+!
 hostname host1
 !
 interface Port-Channel2
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/ip-name-server-groups.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/ip-name-server-groups.yml
new file mode 100644
index 00000000000..c8e6a37934d
--- /dev/null
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen_deprecated_vars/inventory/host_vars/host1/ip-name-server-groups.yml
@@ -0,0 +1,5 @@
+---
+ip_name_server_groups:
+  - name: mynameserver1
+    ip_domain_list: domain-list1
+    dns_domain: arista.avd.com
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md
index 596fb7a8e2f..66c0c3b0496 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/input-variables.md
@@ -469,6 +469,12 @@ ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-http-clie
 ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-name-servers.md
 --8<--
 
+### IP name server groups
+
+--8<--
+ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-name-server-groups.md
+--8<--
+
 ### IP SSH client source-interfaces
 
 --8<--
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-name-server-groups.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-name-server-groups.md
index 5e65d9713df..fb9640ff4b1 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-name-server-groups.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ip-name-server-groups.md
@@ -14,7 +14,9 @@
     | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vrf</samp>](## "ip_name_server_groups.[].name_servers.[].vrf") | String | Required |  |  | VRF Name. |
     | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;priority</samp>](## "ip_name_server_groups.[].name_servers.[].priority") | Integer |  |  | Min: 0<br>Max: 15 | Priority value (lower is first). |
     | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;dns_domain</samp>](## "ip_name_server_groups.[].dns_domain") | String |  |  |  |  |
-    | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;ip_domain_list</samp>](## "ip_name_server_groups.[].ip_domain_list") | String |  |  |  | Set domain names to complete unqualified host names. |
+    | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;ip_domain_list</samp>](## "ip_name_server_groups.[].ip_domain_list") <span style="color:red">deprecated</span> | String |  |  |  | Set domain names to complete unqualified host names.<span style="color:red">This key is deprecated. Support will be removed in AVD version 6.0.0. Use <samp>ip_domain_lists</samp> instead.</span> |
+    | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;ip_domain_lists</samp>](## "ip_name_server_groups.[].ip_domain_lists") | List, items: String |  |  |  | Set domain names to complete unqualified host names. |
+    | [<samp>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&lt;str&gt;</samp>](## "ip_name_server_groups.[].ip_domain_lists.[]") | String |  |  |  |  |
 
 === "YAML"
 
@@ -34,5 +36,12 @@
         dns_domain: <str>
 
         # Set domain names to complete unqualified host names.
+        # This key is deprecated.
+        # Support will be removed in AVD version 6.0.0.
+        # Use <samp>ip_domain_lists</samp> instead.
         ip_domain_list: <str>
+
+        # Set domain names to complete unqualified host names.
+        ip_domain_lists:
+          - <str>
     ```
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ip-name-server-groups.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ip-name-server-groups.j2
index 3d7b0f4595a..643a5377987 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ip-name-server-groups.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ip-name-server-groups.j2
@@ -16,12 +16,23 @@
 
 DNS Domain: {{ group.dns_domain }}
 {%         endif %}
-{%         if group.ip_domain_list is arista.avd.defined %}
+{%         if group.ip_domain_list is arista.avd.defined or group.ip_domain_lists is arista.avd.defined %}
 
-IP Domain List: {{ group.ip_domain_list }}
+###### IP Domain List
+
+| IP Domain |
+| --------- |
+{%             if group.ip_domain_list is arista.avd.defined %}
+| {{ group.ip_domain_list }} |
+{%             endif %}
+{%             for domain in group.ip_domain_lists | arista.avd.natural_sort %}
+| {{ domain }} |
+{%             endfor %}
 {%         endif %}
 {%         if group.name_servers is arista.avd.defined %}
 
+###### Name Server
+
 | IP Address | VRF | Priority |
 | ---------- | --- | -------- |
 {%             for server in group.name_servers | arista.avd.natural_sort("ip_address") %}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ip-name-server-groups.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ip-name-server-groups.j2
index 036f2b4eda1..1c7075e1169 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ip-name-server-groups.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ip-name-server-groups.j2
@@ -16,6 +16,9 @@ ip name-server group {{ name_server_group.name }}
 {%     if name_server_group.dns_domain is arista.avd.defined %}
    dns domain {{ name_server_group.dns_domain }}
 {%     endif %}
+{%     for domain in name_server_group.ip_domain_lists | arista.avd.natural_sort %}
+   ip domain-list {{ domain }}
+{%     endfor %}
 {%     if name_server_group.ip_domain_list is arista.avd.defined %}
    ip domain-list {{ name_server_group.ip_domain_list }}
 {%     endif %}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py b/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py
index e9cfb5b7b84..cc3f4e8c35f 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py
@@ -14665,13 +14665,30 @@ class NameServers(AvdList[NameServersItem]):
 
         NameServers._item_type = NameServersItem
 
-        _fields: ClassVar[dict] = {"name": {"type": str}, "name_servers": {"type": NameServers}, "dns_domain": {"type": str}, "ip_domain_list": {"type": str}}
+        class IpDomainLists(AvdList[str]):
+            """Subclass of AvdList with `str` items."""
+
+        IpDomainLists._item_type = str
+
+        _fields: ClassVar[dict] = {
+            "name": {"type": str},
+            "name_servers": {"type": NameServers},
+            "dns_domain": {"type": str},
+            "ip_domain_list": {"type": str},
+            "ip_domain_lists": {"type": IpDomainLists},
+        }
         name: str
         name_servers: NameServers
         """Subclass of AvdList with `NameServersItem` items."""
         dns_domain: str | None
         ip_domain_list: str | None
         """Set domain names to complete unqualified host names."""
+        ip_domain_lists: IpDomainLists
+        """
+        Set domain names to complete unqualified host names.
+
+        Subclass of AvdList with `str` items.
+        """
 
         if TYPE_CHECKING:
 
@@ -14682,6 +14699,7 @@ def __init__(
                 name_servers: NameServers | UndefinedType = Undefined,
                 dns_domain: str | None | UndefinedType = Undefined,
                 ip_domain_list: str | None | UndefinedType = Undefined,
+                ip_domain_lists: IpDomainLists | UndefinedType = Undefined,
             ) -> None:
                 """
                 IpNameServerGroupsItem.
@@ -14694,6 +14712,10 @@ def __init__(
                     name_servers: Subclass of AvdList with `NameServersItem` items.
                     dns_domain: dns_domain
                     ip_domain_list: Set domain names to complete unqualified host names.
+                    ip_domain_lists:
+                       Set domain names to complete unqualified host names.
+
+                       Subclass of AvdList with `str` items.
 
                 """
 
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
index 3b72fec6eca..fea4abfd730 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
@@ -5839,6 +5839,15 @@ keys:
         ip_domain_list:
           type: str
           description: Set domain names to complete unqualified host names.
+          deprecation:
+            warning: true
+            new_key: ip_domain_lists
+            remove_in_version: 6.0.0
+        ip_domain_lists:
+          type: list
+          description: Set domain names to complete unqualified host names.
+          items:
+            type: str
   ip_name_servers:
     type: list
     items:
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml
index 5e0a1c0c28f..74606bd58a5 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml
@@ -42,3 +42,12 @@ keys:
         ip_domain_list:
           type: str
           description: Set domain names to complete unqualified host names.
+          deprecation:
+            warning: true
+            new_key: ip_domain_lists
+            remove_in_version: 6.0.0
+        ip_domain_lists:
+          type: list
+          description: Set domain names to complete unqualified host names.
+          items:
+            type: str


Reviews:
user: login: Shivani-gslab
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-10T07:23:30Z
user: login: gmuloc
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-14T09:17:10Z
user: login: MaheshGSLAB
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-14T11:06:31Z
user: login: carl-baillargeon
body: LGTM. Tested locally and doc is rendered properly
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-15T12:30:34Z
user: login: gmuloc
body: There should be some change to the eos_cli_config_gen_deprecated_vars scenario to continue testing the old key
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-15T12:34:55Z
user: login: laxmikantchintakindi
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-15T16:11:39Z
user: login: MaheshGSLAB
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-16T05:47:59Z
user: login: laxmikantchintakindi
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-16T08:05:39Z
user: login: gmuloc
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-16T12:52:38Z

Review comments:
diff_hunk: @@ -42,3 +42,12 @@ keys:
         ip_domain_list:
           type: str
           description: Set domain names to complete unqualified host names.
+          deprecation:
+            warning: true
+            new_key: ip_name_server_groups[].ip_domain_lists
+            remove_in_version: 6.0.0
+        ip_domain_lists:
+          type: list
+          description: Set domain names to complete unqualified host names.
+          items:
+            type: str
path: python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml
user: login: Shivani-gslab
body: we can add a warning in the description that both of these keys should not be defined together to avoid duplicate config untill its removed in 6.0
created_at: 2025-04-10T07:22:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -42,3 +42,12 @@ keys:
         ip_domain_list:
           type: str
           description: Set domain names to complete unqualified host names.
+          deprecation:
+            warning: true
+            new_key: ip_name_server_groups[].ip_domain_lists
path: python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml
user: login: gmuloc
body: I think with this it will help trigger validation error when both keys are set
```suggestion
            new_key: ip_domain_lists
```
created_at: 2025-04-14T09:17:09Z
author_association: CONTRIBUTOR
diff_hunk: @@ -42,3 +42,12 @@ keys:
         ip_domain_list:
           type: str
           description: Set domain names to complete unqualified host names.
+          deprecation:
+            warning: true
+            new_key: ip_name_server_groups[].ip_domain_lists
path: python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ip_name_server_groups.schema.yml
user: login: MaheshGSLAB
body: Done
created_at: 2025-04-14T11:06:31Z
author_association: CONTRIBUTOR
diff_hunk: @@ -465,7 +474,13 @@ ip name-server vrf TEST 2001:db8::2 priority 3
 
 DNS Domain: arista.avd.com
 
-IP Domain List: domain-list1
+###### IP Domain List
+
+| IP Domain |
+| --------- |
+| domain-list1 |
path: ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
user: login: laxmikantchintakindi
body: Input for this needs to be replaced with new model.
created_at: 2025-04-15T16:11:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -465,7 +474,13 @@ ip name-server vrf TEST 2001:db8::2 priority 3
 
 DNS Domain: arista.avd.com
 
-IP Domain List: domain-list1
+###### IP Domain List
+
+| IP Domain |
+| --------- |
+| domain-list1 |
path: ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
user: login: MaheshGSLAB
body: We have both type of input in host file but lets move the old one to deperecated_vars molecule.
created_at: 2025-04-16T05:47:58Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-09T12:44:38Z
body: Review docs on [Read the Docs](https://ansible-avd--5282.org.readthedocs.build/en/5282/)

To test this pull request:

```sh
# Create virtual environment for this testing below the current directory
python -m venv test-avd-pr-5282
# Activate the virtual environment
source test-avd-pr-5282/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/MaheshGSLAB/ansible-avd.git@issue-5277#subdirectory=python-avd" --force
# Point Ansible collections path to the Python virtual environment
export ANSIBLE_COLLECTIONS_PATH=$VIRTUAL_ENV/ansible_collections
# Install Ansible collection
ansible-galaxy collection install git+https://github.com/MaheshGSLAB/ansible-avd.git#/ansible_collections/arista/avd/,issue-5277 --force
# Optional: Install AVD examples
cd test-avd-pr-5282
ansible-playbook arista.avd.install_examples
```

author_association: NONE
user: login: sonarqubecloud[bot]
created_at: 2025-04-22T17:12:37Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=aristanetworks_avd&pullRequest=5282) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=aristanetworks_avd&pullRequest=5282&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=aristanetworks_avd&pullRequest=5282&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=aristanetworks_avd&pullRequest=5282&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=aristanetworks_avd&pullRequest=5282&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=aristanetworks_avd&pullRequest=5282&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=aristanetworks_avd&pullRequest=5282)


author_association: NONE