summaryrefslogtreecommitdiffstats
path: root/collections-debian-merged/ansible_collections/dellemc/os6
diff options
context:
space:
mode:
Diffstat (limited to 'collections-debian-merged/ansible_collections/dellemc/os6')
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/.github/workflows/ansible-test.yml33
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/.gitignore387
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/COPYING675
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/FILES.json2980
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/MANIFEST.json37
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/README.md98
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/changelogs/CHANGELOG.rst89
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/changelogs/changelog.yaml104
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/changelogs/config.yaml30
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_aaa.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_acl.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_bgp.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_interface.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lag.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lldp.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_logging.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_ntp.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_qos.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_snmp.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_system.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_users.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vlan.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vrrp.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_xstp.md1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/docs/roles.rst94
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/meta/runtime.yml8
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/README.md21
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/group_vars/all4
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch1.yaml47
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch2.yaml47
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/os6switch.yaml13
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/os6.py95
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/os6.py88
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/os6.py73
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/os6.py278
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_command.py225
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_config.py410
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_facts.py478
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/os6.py95
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/README.md210
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/defaults/main.yml16
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/meta/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/templates/os6_aaa.j2437
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/main.os6.yaml111
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/README.md118
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/meta/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/templates/os6_acl.j2202
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/main.os6.yaml43
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/README.md153
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/templates/os6_bgp.j2255
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/inventory.yaml7
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/main.os6.yaml47
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/README.md110
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/templates/os6_interface.j294
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/main.os6.yaml28
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/README.md96
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/templates/os6_lag.j278
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/main.os6.yaml15
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/README.md114
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/meta/main.yml19
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/templates/os6_lldp.j2159
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/main.os6.yaml26
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/README.md89
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/templates/os6_logging.j236
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/main.os6.yaml10
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/README.md82
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/templates/os6_ntp.j227
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/inventory2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/main.os6.yaml9
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/test.yml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/README.md102
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/defaults/main.yml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/meta/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/templates/os6_qos.j297
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/inventory2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/main.os6.yaml73
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/test.yml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/README.md108
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/templates/os6_snmp.j294
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/main.os6.yaml23
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/README.md83
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/templates/os6_system.j234
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/main.os6.yaml9
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/README.md93
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/templates/os6_users.j237
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/main.os6.yaml10
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/README.md104
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/templates/os6_vlan.j2135
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/main.os6.yaml21
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/README.md92
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/meta/main.yml19
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tasks/main.yml16
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/templates/os6_vrrp.j272
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/main.os6.yaml14
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/LICENSE674
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/README.md117
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/defaults/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/handlers/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/meta/main.yml18
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tasks/main.yml17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/templates/os6_xstp.j2129
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/inventory.yaml6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/main.os6.yaml24
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/test.yaml5
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/vars/main.yml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/.gitignore1
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/defaults/main.yaml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/cli.yaml13
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/main.yaml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/bad_operator.yaml20
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/contains.yaml20
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/invalid.yaml28
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/output.yaml29
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/timeout.yaml19
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/defaults/main.yaml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/cli.yaml13
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/main.yaml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/backup.yaml53
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/basic.yaml38
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/defaults.yaml43
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/force.yaml41
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel.yaml42
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_block.yaml62
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_exact.yaml66
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_strict.yaml63
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel.yaml37
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_after.yaml44
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_before.yaml44
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_nonidempotent.yaml39
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/defaults/main.yaml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/cli.yaml14
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/main.yaml2
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tests/cli/facts.yaml42
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.10.txt4
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.11.txt4
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.9.txt31
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/requirements.txt4
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/__init__.py0
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_config.cfg16
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_src.cfg7
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces41
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_status48
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_transceiver_properties6
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_ip_int15
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp11
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp_remote-device_all10
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_memory_cpu3
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config124
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config__include_hostname3
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_version17
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/os6_module.py88
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_command.py108
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_config.py146
-rw-r--r--collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_facts.py105
261 files changed, 23596 insertions, 0 deletions
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/.github/workflows/ansible-test.yml b/collections-debian-merged/ansible_collections/dellemc/os6/.github/workflows/ansible-test.yml
new file mode 100644
index 00000000..e5692b0a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/.github/workflows/ansible-test.yml
@@ -0,0 +1,33 @@
+name: CI
+on:
+- pull_request
+
+jobs:
+ sanity:
+ name: Sanity (${{ matrix.ansible }})
+ strategy:
+ matrix:
+ ansible:
+ - stable-2.10
+ - devel
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Check out code
+ uses: actions/checkout@v1
+ with:
+ path: ansible_collections/dellemc/os6
+
+ - name: Set up Python 3.6
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.6
+
+ - name: Install ansible-base (${{ matrix.ansible }})
+ run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
+
+ - name: Install ansible_collections.ansible.netcommon
+ run: ansible-galaxy collection install ansible.netcommon -p ../../
+
+ - name: Run sanity tests
+ run: ansible-test sanity --docker -v --color --python 3.6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/.gitignore b/collections-debian-merged/ansible_collections/dellemc/os6/.gitignore
new file mode 100644
index 00000000..c6fc14ad
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/.gitignore
@@ -0,0 +1,387 @@
+
+# Created by https://www.gitignore.io/api/git,linux,pydev,python,windows,pycharm+all,jupyternotebook,vim,webstorm,emacs,dotenv
+# Edit at https://www.gitignore.io/?templates=git,linux,pydev,python,windows,pycharm+all,jupyternotebook,vim,webstorm,emacs,dotenv
+
+### dotenv ###
+.env
+
+### Emacs ###
+# -*- mode: gitignore; -*-
+*~
+\#*\#
+/.emacs.desktop
+/.emacs.desktop.lock
+*.elc
+auto-save-list
+tramp
+.\#*
+
+# Org-mode
+.org-id-locations
+*_archive
+
+# flymake-mode
+*_flymake.*
+
+# eshell files
+/eshell/history
+/eshell/lastdir
+
+# elpa packages
+/elpa/
+
+# reftex files
+*.rel
+
+# AUCTeX auto folder
+/auto/
+
+# cask packages
+.cask/
+dist/
+
+# Flycheck
+flycheck_*.el
+
+# server auth directory
+/server/
+
+# projectiles files
+.projectile
+
+# directory configuration
+.dir-locals.el
+
+# network security
+/network-security.data
+
+
+### Git ###
+# Created by git for backups. To disable backups in Git:
+# $ git config --global mergetool.keepBackup false
+*.orig
+
+# Created by git when using merge tools for conflicts
+*.BACKUP.*
+*.BASE.*
+*.LOCAL.*
+*.REMOTE.*
+*_BACKUP_*.txt
+*_BASE_*.txt
+*_LOCAL_*.txt
+*_REMOTE_*.txt
+
+#!! ERROR: jupyternotebook is undefined. Use list command to see defined gitignore types !!#
+
+### Linux ###
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+### PyCharm+all ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### PyCharm+all Patch ###
+# Ignores the whole .idea folder and all .iml files
+# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
+
+.idea/
+
+# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
+
+*.iml
+modules.xml
+.idea/misc.xml
+*.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### pydev ###
+.pydevproject
+
+### Python ###
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+pip-wheel-metadata/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# pyenv
+.python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# Mr Developer
+.mr.developer.cfg
+.project
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+### Vim ###
+# Swap
+[._]*.s[a-v][a-z]
+[._]*.sw[a-p]
+[._]s[a-rt-v][a-z]
+[._]ss[a-gi-z]
+[._]sw[a-p]
+
+# Session
+Session.vim
+Sessionx.vim
+
+# Temporary
+.netrwhist
+# Auto-generated tag files
+tags
+# Persistent undo
+[._]*.un~
+
+### WebStorm ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+
+# Generated files
+
+# Sensitive or high-churn files
+
+# Gradle
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+
+# Mongo Explorer plugin
+
+# File-based project format
+
+# IntelliJ
+
+# mpeltonen/sbt-idea plugin
+
+# JIRA plugin
+
+# Cursive Clojure plugin
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+
+# Editor-based Rest Client
+
+# Android studio 3.1+ serialized cache file
+
+### WebStorm Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/**/sonarlint/
+
+# SonarQube Plugin
+.idea/**/sonarIssues.xml
+
+# Markdown Navigator plugin
+.idea/**/markdown-navigator.xml
+.idea/**/markdown-navigator/
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# End of https://www.gitignore.io/api/git,linux,pydev,python,windows,pycharm+all,jupyternotebook,vim,webstorm,emacs,dotenv
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/COPYING b/collections-debian-merged/ansible_collections/dellemc/os6/COPYING
new file mode 100644
index 00000000..10926e87
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/COPYING
@@ -0,0 +1,675 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/FILES.json b/collections-debian-merged/ansible_collections/dellemc/os6/FILES.json
new file mode 100644
index 00000000..e1e8833a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/FILES.json
@@ -0,0 +1,2980 @@
+{
+ "files": [
+ {
+ "format": 1,
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": ".",
+ "chksum_type": null
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/sanity",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "af85f890e8308c443f14c4d007a2115718c37a3f0e028b200603aaee1e5c9b2a",
+ "name": "tests/sanity/ignore-2.9.txt",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c8a4ac4bfdef88e75d6e748e35a42fb4915947dfa2b7dd788626fd829600e014",
+ "name": "tests/sanity/requirements.txt",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2049a8032bd8451483531ee5f5376c9ab37a3f4f3f4194b8e04df6643cb933b1",
+ "name": "tests/sanity/ignore-2.10.txt",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6cac17a5998aa8480af2ea636ab0534293389d9e8303941d33bb591009d4f2a7",
+ "name": "tests/sanity/ignore-2.11.txt",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_facts",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_facts/os6_facts",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_facts/os6_facts/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_facts/os6_facts/tests/cli",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8317cea049586b1ac611ed0414663e3a0e6a07804f4a056ec463f3dfd8cf433d",
+ "name": "tests/integration/targets/os6_facts/os6_facts/tests/cli/facts.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_facts/os6_facts/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032",
+ "name": "tests/integration/targets/os6_facts/os6_facts/defaults/main.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_facts/os6_facts/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8b99fcd12715fcec0cba3d649252a55c86f4710650f9f2e0fdab0bb958fb88f1",
+ "name": "tests/integration/targets/os6_facts/os6_facts/tasks/main.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "81ae4136ca3d879f645bc323268dd5af5a89467b0d776010965374f56ef07eb0",
+ "name": "tests/integration/targets/os6_facts/os6_facts/tasks/cli.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_command",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_command/os6_command",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_command/os6_command/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_command/os6_command/tests/cli",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "824ab4e366ae3b1f839019886fae66bd8be5852ec91ecc40490437562df4aa70",
+ "name": "tests/integration/targets/os6_command/os6_command/tests/cli/timeout.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d3c99fb4690aa3f479f810768bcb8a147b00ec579f8581fdfde66fedc3a00e4c",
+ "name": "tests/integration/targets/os6_command/os6_command/tests/cli/invalid.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ceca17eebf5d04dcc3ec39adf08a8291d71b30e17a65b16f02c1a278b165c254",
+ "name": "tests/integration/targets/os6_command/os6_command/tests/cli/contains.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "dd6945de4ad85b2fa1373aa9c167423b41ba6ab8cd7cd766b41dea238f5518cb",
+ "name": "tests/integration/targets/os6_command/os6_command/tests/cli/bad_operator.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "aed021038fc74a5d58e1935744f8eec94725f56464f7a70aa52f43d17ed6019a",
+ "name": "tests/integration/targets/os6_command/os6_command/tests/cli/output.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_command/os6_command/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032",
+ "name": "tests/integration/targets/os6_command/os6_command/defaults/main.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_command/os6_command/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8b99fcd12715fcec0cba3d649252a55c86f4710650f9f2e0fdab0bb958fb88f1",
+ "name": "tests/integration/targets/os6_command/os6_command/tasks/main.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0c3d448b4f0a8de268734dd08d79db1ab073d9402de62d777d2d9f79340c05db",
+ "name": "tests/integration/targets/os6_command/os6_command/tasks/cli.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_config",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_config/os6_config",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_config/os6_config/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a8acbe90eb42e7161e40e560bb8ae6ef38b59992505d87390d0871fa6e8f557c",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/backup.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e6eb3df6c455d89e9e143cb424b15ccfbdf7beef726fb5ccee09f1485b146601",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/sublevel.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a5af25d5e357ad36a366a00a494d6b45b6a6a484f0d278013c0b8923d2d83c58",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_exact.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b602bf2052373f5e7e9df68adabec84d52c060842d65295907c687ca278b55a8",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_after.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "1fe97966921c1e53b7ec280a1d7d7d232d0393b8a37cc089bb5c52cfd1cab71c",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/toplevel.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c79daefb569c4128eb236e734e97de568e030ee98ed1f45d0cdd0d62570c1131",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_block.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "24225e8b46caaa034d2b40eb50591c6022ad3fd825467a1dcef84ad14eae3777",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/defaults.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8f3367a21641a0f445cff8434becc77cbc852670b29576ecde56371fc574ff5a",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/basic.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6f509679767b1c8467bcbc72f419ac24fad67d697181f4d7c1c1515373df5ad1",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_strict.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2f0876fb112582e491b8c771901f0c4abd15c2481ee1e19aca53509596032335",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/force.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "73fb7bbde923be1d01019de5a546137572ddbdd36acc4301dd4452d1faa77171",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_before.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f75521089a6b55df79214fc31e7b4b676999d191ebabb210503256901ddfe73a",
+ "name": "tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_nonidempotent.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_config/os6_config/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b6cec8117492a3110c2e9066aa77a54abd2b9774cea08d60eb42b01c51c3e032",
+ "name": "tests/integration/targets/os6_config/os6_config/defaults/main.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/integration/targets/os6_config/os6_config/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8b99fcd12715fcec0cba3d649252a55c86f4710650f9f2e0fdab0bb958fb88f1",
+ "name": "tests/integration/targets/os6_config/os6_config/tasks/main.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0c3d448b4f0a8de268734dd08d79db1ab073d9402de62d777d2d9f79340c05db",
+ "name": "tests/integration/targets/os6_config/os6_config/tasks/cli.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b5726d3ec9335a09c124469eca039523847a6b0f08a083efaefd002b83326600",
+ "name": "tests/.gitignore",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/unit",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/unit/modules",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/unit/modules/network",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/unit/modules/network/os6",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "140157fdc99fb9e439a4d3be0aad737aaceafcb6da8799c90243d548315158b8",
+ "name": "tests/unit/modules/network/os6/test_os6_command.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "tests/unit/modules/network/os6/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6c2284a2c56cb6fa05ecb3e9fb49d957309c0bd2119c6ae351d9c71eb0a3527d",
+ "name": "tests/unit/modules/network/os6/test_os6_facts.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8c42ab3958dfa26f512a20fcce57a261601797f75f8563df7ba8acb030e1af1c",
+ "name": "tests/unit/modules/network/os6/os6_module.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "tests/unit/modules/network/os6/fixtures",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9b4d1295a7098ece89dcfbdd241327022d0994c1ab53adbda8a71d43ce80c719",
+ "name": "tests/unit/modules/network/os6/fixtures/show_running-config__include_hostname",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "09a6e09bcde3874bbd0755a1a2842b6356c8b9a7f1c053c1fedcdd3423bcb4e1",
+ "name": "tests/unit/modules/network/os6/fixtures/os6_config_src.cfg",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "dbead93951c6ae31171cbe355dd89d88a862a0e27ba9911facc961056ddaf2d6",
+ "name": "tests/unit/modules/network/os6/fixtures/show_interfaces",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c4c6643ce44ee771014c871eccf320921efe5e6d9bd2d03a0940739102228f78",
+ "name": "tests/unit/modules/network/os6/fixtures/show_memory_cpu",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ece82c342beda30022b119fd410c364edeb54d55147d9f0c2a6b1afbe88f88cf",
+ "name": "tests/unit/modules/network/os6/fixtures/show_interfaces_status",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "dd90ed90e19d6d7f48492f6de1f0cea6f5775c079abf4da219aa851cebcb0cfa",
+ "name": "tests/unit/modules/network/os6/fixtures/show_version",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "175c44bf6d745d134eaec45f1422e983b498ad61785ab963d7722b1cfa94285b",
+ "name": "tests/unit/modules/network/os6/fixtures/show_ip_int",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6893a3c5f2ef207b48eb4374df58e66c8cc390da3413a7168eb3d0207dc4cad4",
+ "name": "tests/unit/modules/network/os6/fixtures/os6_config_config.cfg",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "db4102606a12c3c3c3b72d603a7289caff2c8072210368cf5f6bba0d49f3e12f",
+ "name": "tests/unit/modules/network/os6/fixtures/show_running-config",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "414b84267a6c20d6b8d7f67eb9fac07c357320d899f26dd0a784eb4580d0ddae",
+ "name": "tests/unit/modules/network/os6/fixtures/show_interfaces_transceiver_properties",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ac27540a277fa3b1094c0d0caf9581955b411f1d09f17774607e245a58f498d3",
+ "name": "tests/unit/modules/network/os6/fixtures/show_lldp",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "924e55fa0c98396d7fc365ddbd75df2037f73bbb21729433408ed61bda71ce5c",
+ "name": "tests/unit/modules/network/os6/fixtures/show_lldp_remote-device_all",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "952a955b0a6cb013c968737f63ecda29abf0449f34f3c39393b0b242781a8c2f",
+ "name": "tests/unit/modules/network/os6/test_os6_config.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6ba2d44d2272d8dd4c24b362a95ed270bee2105f7ade0150045f183270d1fc7c",
+ "name": "meta/runtime.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": ".github",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": ".github/workflows",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d2b86353e3881830dab4a73db505985b635a647a3288e1987d9069e3905ae867",
+ "name": ".github/workflows/ansible-test.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/module_utils",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/module_utils/network",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9b4ad754c7fd54be06cef308e2a6296194c708248905fc3958e316ecb6f9fdff",
+ "name": "plugins/module_utils/network/os6.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "plugins/module_utils/network/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/action",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "417ab2baa65d27eefc01cd6c130f2930f09dadfc140eeceeddca3cedb7bb11b1",
+ "name": "plugins/action/os6.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "plugins/action/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/terminal",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8ac39b1c679da46a21dc582100e3cb12fb56b6fe599464e615a08840c0b48684",
+ "name": "plugins/terminal/os6.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "plugins/terminal/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/cliconf",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "4e9d0c393cbd23b0b305b85cbf2b15b73cd996d4f8ab75e0f6a175ec6f400ab1",
+ "name": "plugins/cliconf/os6.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "plugins/cliconf/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/doc_fragments",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "051fd978ce9149eed8d1f82210faa9d09cbbaadd7440c76e01f7a2a8bfcb47bb",
+ "name": "plugins/doc_fragments/os6.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "plugins/doc_fragments/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "plugins/modules",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "name": "plugins/modules/__init__.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "83a17696f13b1a1b4a8f4c6c64d97a6febfaed6a8a2aa8480a248ee606c7e7b2",
+ "name": "plugins/modules/os6_command.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "455b54c0a3026a62aa614672d1d9b1cfc46f3bb4e55d8afe0f5210791aa8b36a",
+ "name": "plugins/modules/os6_facts.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f21de03ce85e6feb7a2057173cd9ed98babd669a6c383232fdd33952e5edae20",
+ "name": "plugins/modules/os6_config.py",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0ae0485a5bd37a63e63603596417e4eb0e653334fa6c7f932ca3a0e85d4af227",
+ "name": "COPYING",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "258e4be3cfda40797fe734b375b6f94c110c9a9bebce196fedce319a457ce720",
+ "name": ".gitignore",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "changelogs",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2b6f825d35f7a2b89f5ff73b498eeccb10165f423b5d4babbb7c1f5aaabfbb49",
+ "name": "changelogs/config.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cf587354799c7d5afc2bf2c22588c0dadd91fee610a3ad995c56aa36f6e3f148",
+ "name": "changelogs/changelog.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c210883efae9d87d82c8130d5bb85b500baa2a48a8517b28b239e8074173c057",
+ "name": "changelogs/CHANGELOG.rst",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "docs",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6a6c2890becf81f87d57ed5da9c8c3bc6872c8a7eeef4e24fcb9bd7fba1c0471",
+ "name": "docs/os6_bgp.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5a6ebdb3535baa818835da111f9c89c9eadfc0ffac539f42ad3f7b536209d490",
+ "name": "docs/os6_qos.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "944f16070757f6e903f717dfdfdfb6256faafb1c49e9ca88c6c4565b119eae87",
+ "name": "docs/os6_snmp.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "05ef9ab09f593d61256adc8a96fd2d4e3f8a2146f593969e7563907d09eb20b4",
+ "name": "docs/os6_xstp.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ac44a6208cf2c79612d543f45b0537752487b31272c26821f9633546f2c1b6c6",
+ "name": "docs/roles.rst",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9a95d328cf1bf27671bba9df1534e171a3284f2ee2423b4cccd0f7b769bb4dd8",
+ "name": "docs/os6_interface.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ee8ceb504133f6d404a928073786b95f733a86e697aae7a0bf367ece75c3fe71",
+ "name": "docs/os6_acl.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6186b5006e3bb89a11e8c7a4fc7fbb69d0f559db5b8e875497e8400dd28ae023",
+ "name": "docs/os6_lldp.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2bd34914da5ee317c0dce534b3eb907c33cefb1d2408e79a530d3155f42e673e",
+ "name": "docs/os6_vlan.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "15551d1995afdb953a0e5bd532b8ff219708236ab473b9a837ac5cdc41fc6ed5",
+ "name": "docs/os6_ntp.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f067df9f87921cd7ba6f9bf4437fb2919111a44e619f476cdc3df3e2f3b79f8d",
+ "name": "docs/os6_lag.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "82184a0e54c3f7d7cc10fade2f2ec306db907284622ba149cd989155a9488a19",
+ "name": "docs/os6_vrrp.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "263c5fc6dd50f3d00e66aa38a06710c3e754a8248d70e4cda0b1971d3be69fcd",
+ "name": "docs/os6_logging.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "31f3bfd5a7c28cdf3f614929a7592e6794d1aeb1ad44ad0dbf063a30219c4aad",
+ "name": "docs/os6_users.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b3b0a11e433186c5452577abcb41cf9dc18d36633bc3c826196f2c768255ccfd",
+ "name": "docs/os6_system.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "7cb9a2fa4b0d1b5393ac7e745fa81668f1977a6a6e9e9ca7a5970562c46829d2",
+ "name": "docs/os6_aaa.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2f14c0c53085dd3bd638b743c0633f3e033864ee15199b83478050bda953fa8b",
+ "name": "README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "playbooks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "playbooks/ibgp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "playbooks/ibgp/group_vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a4dcd6b5ab317541bc24f9ff0125cf67f9d421a6bc5a6af41105b206d5313a79",
+ "name": "playbooks/ibgp/group_vars/all",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9d3f7db46fb66d404ef752cf999295fcf7b0d22e2cd0f5dc953958c1ecf3e9d9",
+ "name": "playbooks/ibgp/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d1819a593a0da5bfb520f9cc0016d6f9a772d91b9f5fd2067f7dc9956d7dce17",
+ "name": "playbooks/ibgp/os6switch.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8e4ffdb53fb7979e97567fece37df85405c12e11da9af3b03d9a91bf3c91e62a",
+ "name": "playbooks/ibgp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "playbooks/ibgp/host_vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "809b97cd311b1815f41d16edfad0ce38b3f6e71238f139a8ac349a265d8f3b54",
+ "name": "playbooks/ibgp/host_vars/switch1.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a9f9a7e49808177dc5887e34711c3123581c7007fa3f582242f2cdedc5dad682",
+ "name": "playbooks/ibgp/host_vars/switch2.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "803c5e860e5d8a7eb300be934ce8cbd68e3e869329f9392df91b4f71d31d8a35",
+ "name": "roles/os6_xstp/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_xstp/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_xstp/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6ce58745ddc603524750b1e333257ba3ec441f83f19afd26fdf2e7f0add9dfb9",
+ "name": "roles/os6_xstp/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "372224afb6413913603cb411f026c3b45d8d6a968e66a215324074f022f5850b",
+ "name": "roles/os6_xstp/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "546039128bbdb58e82bd748f879928d0454aa88e72bcea47c4a151fdf23286e9",
+ "name": "roles/os6_xstp/templates/os6_xstp.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5993d3ce8e89d7b9611e9cf37998d1aa08fecd6a7708266a7e67524d0042f65a",
+ "name": "roles/os6_xstp/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0031377870ad92e182c393f50f6246dc3f531e28f97652a1d047bbe9c1a3cd80",
+ "name": "roles/os6_xstp/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "be4219c0315e68d60560105f4f311d2d38ffe4abc7a0243392aa626e3954450c",
+ "name": "roles/os6_xstp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "1346c427518f75ebeaa5e971bfdb1e91f50a8a8a40d02c805385b6d9784cac01",
+ "name": "roles/os6_xstp/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_xstp/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "16b4325e450c91f4cd6e5c1b26526e1955b1593d19e1411167c2707ef79cfd8d",
+ "name": "roles/os6_xstp/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a8842aa89c1070a6a4046429bdf96d68fa8fcc7b5f3ce5cc8fe1e3aed69ebd1e",
+ "name": "roles/os6_users/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_users/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_users/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "3826d6ef51782ac0fa23bd7e294af5cadc7621c70c9da81f14e7d020f5f67eb2",
+ "name": "roles/os6_users/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8152c65af2b224d448cd01f4bb71ed055f4cb68d290c8add5ff848ca018b87c1",
+ "name": "roles/os6_users/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6475570465d1c051d3d2e8726367a81ef84eabea5858fa5e126f74da11f87cd2",
+ "name": "roles/os6_users/templates/os6_users.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a573eb01484b13cead3c181c38a1de473ab9010dbb70e54186e812b4bf6a6d21",
+ "name": "roles/os6_users/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ee1e43cce86751cb7faca77c654c0c6a13755d27a8c659a740e831566f65fd28",
+ "name": "roles/os6_users/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "40bfec1ec536a53cc3eb0a85eef64b8db0a414aa86d12818e3807f8f288e9026",
+ "name": "roles/os6_users/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "08c816f5389fe337cb524d11a7cc0f39d73fabb43bb228122c4fddec77175f6e",
+ "name": "roles/os6_users/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_users/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ff9c567b8e629145a21d40a7a9c3c74180aad32e9fc1f361f3c1c72f17492e11",
+ "name": "roles/os6_users/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "7e63a91921eee58c938b7f543019705fa270472fe85ad8b9d87dc5a86d2046ff",
+ "name": "roles/os6_system/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_system/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_system/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "821cf9c0f6e08b6ec3b90ac5fcbf62dfc71780a83d0f8b71af536e28230793e8",
+ "name": "roles/os6_system/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9113d5ead08435c38a153c1aaa0613a5fdd0d27f734e1a45ae5e7282c96423ce",
+ "name": "roles/os6_system/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "780b3fa89934626febc37bd06b94f95a994b792cef2e3aa2891d486c155be436",
+ "name": "roles/os6_system/templates/os6_system.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f41706782ec6cc571afcd9c04a6168ac1d3182cbaec41fc3ee3da5cef8461b29",
+ "name": "roles/os6_system/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0d244afe331461734522bb38ca0e2e1b59aaa06ea43489b235ff8d9cb79d1364",
+ "name": "roles/os6_system/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "aca109e63d63e9833221cfabcc46b3d8cf28cad129c9a4878f0139e484193535",
+ "name": "roles/os6_system/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "43f1e0c3a3418f33b7cb2cbf8c500b56ac3b7520c144367698c008e367cb57ae",
+ "name": "roles/os6_system/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_system/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b943f9727b84d2d1689f13b899d4af67671c7297cf02837ca0b86f4ad6f582a6",
+ "name": "roles/os6_system/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d9521a1781f5f231c12566af9f6b17175e595b469596a038a7289e92e15d5e76",
+ "name": "roles/os6_logging/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_logging/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_logging/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a8ea92c60561762438c369c8332255d03cabcd3ca5002bde7ddb0addfa586992",
+ "name": "roles/os6_logging/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "be69ac8448f04d06a0c54dde157d1c4c76f1f641a49ad588c64102bdaf3e67c3",
+ "name": "roles/os6_logging/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "96c8f0e9b76943c27a02befaa17b3c0ecc878924f8f84572f2482296f4f2de7e",
+ "name": "roles/os6_logging/templates/os6_logging.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "1ca704c754fdd9ac5ef40e6f26bef56aedd9ffb4a43179efcd7d9865a9ad31e1",
+ "name": "roles/os6_logging/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "aba3fe03dfddec68b995081167c8fd268206386b6f5815ec11bec8d54e5a4080",
+ "name": "roles/os6_logging/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "034634e1325cc86a086438b12880fb70c2b4ca5730547f5edfa812964f06165f",
+ "name": "roles/os6_logging/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "94d552e53d5213567f56cfead012518b68162b5fceb70e657731bf6ebd477c70",
+ "name": "roles/os6_logging/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_logging/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "07744112f3cafab0e04f9332fb91ba656155be784ff5fbdd9269a0e70cce3b05",
+ "name": "roles/os6_logging/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "82ec73f254aead6543bc058687405e7097c20aec5cbe19433eef54ce1e259ba7",
+ "name": "roles/os6_snmp/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_snmp/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_snmp/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0e7c27518f72dfbcfc15802f8a26d8381a8dae5ef38dab5f54ba5fac7ca083b1",
+ "name": "roles/os6_snmp/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "19e27ac25bfeadd3a26601f61993620e28a890fbe2ef811304e5e252e7be0516",
+ "name": "roles/os6_snmp/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "763907e3f886c1c57f69f7e427147838e111c81229624ff3e0e7c52f13d3a423",
+ "name": "roles/os6_snmp/templates/os6_snmp.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6d2b78261f5fff90d93b85804400100f843e1fa11d14db07e4c7386fc5d74260",
+ "name": "roles/os6_snmp/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5a075e4051133ed3cb59a4146b14b7dd67265060e1fd724d17c890c3b0f5b57d",
+ "name": "roles/os6_snmp/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6d83dce278e238db0f9e04d56b60857cf7e49b72e6d6c71bdea61fc446516030",
+ "name": "roles/os6_snmp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2201e5200b746937a66a21fcc93ac8cd8b15c0c916364e5c4c7a71035788d527",
+ "name": "roles/os6_snmp/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_snmp/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "22cc58f6c76c566b6ba6697a7352dbeafc6e07aaea164a20e6874ea3fcad1f04",
+ "name": "roles/os6_snmp/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "da5e40cdaa1b7a69c4054b8d942793f93aa785c82c9da1ce415424ddecbc919d",
+ "name": "roles/os6_lldp/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_lldp/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_lldp/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d2693a92653a238f48e00a37047a95386d1b02f3115095fae8b8fe606473e769",
+ "name": "roles/os6_lldp/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0dbfa24c6644b5a06a598dd51521c4524b22d5aa20215ccf9a3a84aaafcc7061",
+ "name": "roles/os6_lldp/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9d372a3a9d65866666088e09d2dc20e397fe3dc4fbcbd3ea436f9d86f3a4b5fc",
+ "name": "roles/os6_lldp/templates/os6_lldp.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9a0a0b55d4a902ee3f304207377ecef5514903045e3e52c37b87b29afe68387c",
+ "name": "roles/os6_lldp/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0921c0bbcff88263cd4a1297bad9b1592c827b79f309be56f75a823d22f9192c",
+ "name": "roles/os6_lldp/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2e11e57e4b40bfb99c0ad7c38168b843fec9cf864953ff04e2bf78c73176e748",
+ "name": "roles/os6_lldp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d41badac74d65ae5b358513b95a0a5056967df584346aec0509b30cea1e7e746",
+ "name": "roles/os6_lldp/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lldp/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "64501abe8985be8b2be627a02a6c7f82112d1d589e19efa91180d91b181ccfe5",
+ "name": "roles/os6_lldp/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "74d6275a2afaf7fd1f23f91fc4f9f49a03d40d3626b9db180806c2cecf340c52",
+ "name": "roles/os6_vrrp/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_vrrp/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_vrrp/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "da3347db91a9316e25d2b47998a9124d89c8bb1739c70e9b97d594e9cffda9bb",
+ "name": "roles/os6_vrrp/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "1176136a75c61f0d9267805b41a1274332057eca97c97cb234890cbb277be02e",
+ "name": "roles/os6_vrrp/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8e91701f7b51dcad75504f0172806ef6f65dafb6cb246e033dd8ee8a56f5fe6f",
+ "name": "roles/os6_vrrp/templates/os6_vrrp.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "7771052c79d0f0d4d54d5a2208e88d21adb15b5db7af3354e191f42deedc5be8",
+ "name": "roles/os6_vrrp/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "3b60c1578bd9a8dc29ef85e5c873b59edeaf4da6bd6720cfaa707ec4d83a1f2a",
+ "name": "roles/os6_vrrp/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c290c23bb9b8c2cfae65e0b00d01817cab1c3b9f4e7e94f7ca45f3d592f33d1b",
+ "name": "roles/os6_vrrp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "71de967c3d4a1b11dc36e95c6258fdb8b0aef6222c759fa4957bfc8eda3c314b",
+ "name": "roles/os6_vrrp/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vrrp/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "935af9059a2903cd04efa927c9edd06dc55c612c72ba61f4347e5746354552df",
+ "name": "roles/os6_vrrp/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c2732fdca439d06e069471d14f8a87a37faee828b19e613e0312dd25363127b4",
+ "name": "roles/os6_vlan/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_vlan/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_vlan/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "96e149fd5329afa78c33edc35ab347914ee95afa22e0bf7c62fa31aeef464d56",
+ "name": "roles/os6_vlan/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6c06f4e556311c5a9dc74f2e1914164d6333c59fc620b989c205418c8d88f33b",
+ "name": "roles/os6_vlan/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6645c1ecbc6555841a261e14863b1d87f9631ade8a29fb56e866192d70cc0759",
+ "name": "roles/os6_vlan/templates/os6_vlan.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "67289fe1f09bc1ed85278eb5dc511097363d1fc753be3578f902de6e126b55f7",
+ "name": "roles/os6_vlan/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f1aebe1ba927d520109c7d3bfc483574abc369988f2524663ddc5aaba4c66d2f",
+ "name": "roles/os6_vlan/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "db20aa1cfff396930e3511a34e11d703f7e212959e802b63fa3f42afdf089d3f",
+ "name": "roles/os6_vlan/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "dca829e2d9e9fffca5a0b7d43e196606e9a160f6af26336973757a50d93d3d21",
+ "name": "roles/os6_vlan/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_vlan/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b63336230bcb66cf66017ac00ce53b27cba670fdb67c59cf3fffe72e23e73e8d",
+ "name": "roles/os6_vlan/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "22810b5b1ad7e24085bbf11547eb842ce297dc0bfb2a49d2c047551a85d2c560",
+ "name": "roles/os6_lag/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_lag/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_lag/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c8c1a8a56bd960a41e25288853ebbbc8e17b67316fabac82e28c1a1bc7cc7c5c",
+ "name": "roles/os6_lag/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cabc7457274088b5ac6661e4790aff7e913a535c67c0ce79c9610050d317b4d1",
+ "name": "roles/os6_lag/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e80b023e177c635bcf7cc9fb240ce6e3b93d38a146b1d5f7d65039d991d4e2ae",
+ "name": "roles/os6_lag/templates/os6_lag.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6a09aefebf59af427b44818dd420e1017135d3172c6dec56cfd49f975d397b97",
+ "name": "roles/os6_lag/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ba602fd62628ba43f77bdddc168ba905a58c9e6a8913f92a4939df005f3004d9",
+ "name": "roles/os6_lag/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9294b173cd96c01140bba5121848bb293e1fb3e4764fed799699c15d49d7a537",
+ "name": "roles/os6_lag/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "6bbde0ade400e3853d1cb029590a055517431c66d43dcb535728f21047e9d1fa",
+ "name": "roles/os6_lag/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_lag/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f079e29ab4ed28e77e2c106ec264dd0e58694ac078e42f6a4f3b8f0f61d9e0dc",
+ "name": "roles/os6_lag/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "63134ab7c27b4cc5a64dd03bdc10211031e811667ae27906a90e745019f3f129",
+ "name": "roles/os6_aaa/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_aaa/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_aaa/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cda0f026e47460f4983b4d10902206939991281f25fe1bedcc6333b91b4a7ce7",
+ "name": "roles/os6_aaa/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8508ca8af9718ed4ba1d3a97ae63d42fd521a36a6a383aac5a21ea5de40cf70f",
+ "name": "roles/os6_aaa/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "781463a6d4ea96eb12fff81ecfbc8c6be9621650cd6aa750619a1d47cb654094",
+ "name": "roles/os6_aaa/templates/os6_aaa.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f895a5fe5fa5f2d37d526ac71390f85ceaf939f0b09ec11e3863e1477a79f99b",
+ "name": "roles/os6_aaa/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "af0d0c9fed4994986f076864f1f93dcb041ac3c79ad5d783aec69b3a7f584c42",
+ "name": "roles/os6_aaa/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f0a6662d0137775c9eb175370cded387cf84225265add1ac11afacd60a25a67b",
+ "name": "roles/os6_aaa/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "765a854c27d68838a34cb96a1b59269a0d2397e50a0986b81764ff28e3e93c06",
+ "name": "roles/os6_aaa/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_aaa/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "72a010252bb079cff4ba6ce6c6bdf6101866a64dfd5f8eb5b835aafa43a2a312",
+ "name": "roles/os6_aaa/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "93b3ecffbb3be43fa0c310ebddc61eb0b9ba75e23268463e3a6446ee202b5704",
+ "name": "roles/os6_qos/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_qos/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbcaa96e775c2a68ff2cabdc67e4baeeae90964e2692159ce4472cf34b589df5",
+ "name": "roles/os6_qos/tests/test.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "605557eaef5f8dfc2365202894cd9b0591b77a3b77ddc5ee1e7e56884c3241a4",
+ "name": "roles/os6_qos/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e02233819b1a09844410549191813f7cc7ba360f21298578f4ba1727a27d87fc",
+ "name": "roles/os6_qos/tests/inventory",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "ca90cefe5596a51c88fd5f8a777a4f1dc9d27ba7128853f176ebf17e995d98ff",
+ "name": "roles/os6_qos/templates/os6_qos.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "07585253cf6cb7bd222744d6ddfffe8078c0aa669e257c573df25b778f5d6c9f",
+ "name": "roles/os6_qos/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "bfb1de30e19eaaa33dfafac9b3cb45767ac089dc8511c1016b8d7d23c23ece25",
+ "name": "roles/os6_qos/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "4364ba19d60713e73830321f1d32a1cf2b5bf6e45af37951a0ee796e48aabb5c",
+ "name": "roles/os6_qos/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5220e3c142d2f58f1c7d5525ac6f71c59226e82bd11b34155a5c943f41371849",
+ "name": "roles/os6_qos/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_qos/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "771c3447433962be72cf63c17f27230f4955ee666c12989ce5a485fd036733d5",
+ "name": "roles/os6_qos/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "2404b4a0ddae981fcccab3064ad96bc733e9b3698e885fc1cb26a3c10c4d6bdb",
+ "name": "roles/os6_acl/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_acl/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_acl/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "92f7529157aba5313231d21c978e0058045c1ba805fa74aa667777b7801676ef",
+ "name": "roles/os6_acl/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "3f2697959dbccac3047eb04365c52dabb8bab254b671be0d370fa5fd6c5cac79",
+ "name": "roles/os6_acl/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a25418525c08a11dd6bca320e044c2a9429af4bc5ecc7e3628bb96205022a937",
+ "name": "roles/os6_acl/templates/os6_acl.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "587357d50242ae4af4d4fe698e266b2c5b522e64f47aab9e95571acb01daaef2",
+ "name": "roles/os6_acl/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9cae65a8516d0400f6091fe2380a9a257876a08f85a39fa614dbe760a9c58fe9",
+ "name": "roles/os6_acl/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9f00b8413b2410763c2cca2a948e286e3261d156361aa7c913fba3ce3da9def3",
+ "name": "roles/os6_acl/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "abe3440632da83602afd2f067d74f6c78f0d8ceda20d7ec3a7a4a0a6efe80f0d",
+ "name": "roles/os6_acl/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_acl/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "f46d930afa0ffeff03125372f893155e379a2f3e65557e59459f04f722dfe35c",
+ "name": "roles/os6_acl/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "23f4af4ab2764fab3a88e6d7390876d3804392d6a96323a4932af3cacb6acda5",
+ "name": "roles/os6_bgp/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_bgp/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "11b4ce2f58f779973bac45a5ff5b0a86272f4e1d29cea5c8cd95d2cf194285e4",
+ "name": "roles/os6_bgp/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "37371f94256c61221fa5f52d2bdc9a7681d1950a81f94d890b9762722326eab2",
+ "name": "roles/os6_bgp/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "38cd90a98839739453a2b86bfd28367b513a5ef69fcb6a7b5190fcc2e8250e1f",
+ "name": "roles/os6_bgp/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "978118306940cb92dd374cdf91197785baae190598e0e404ed484de7a2bea385",
+ "name": "roles/os6_bgp/templates/os6_bgp.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d310c5523a47ce3dc47ed3684ddbc0dfc27469942f8c6f4c20fe90fcdcb85610",
+ "name": "roles/os6_bgp/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "3920731d533222b279bc7fde4b8947d7e47a4e6e834ed98d52a2b8149007779f",
+ "name": "roles/os6_bgp/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "09f866d5a0529aaaaba4bf0236e377b388369495fbd61fffee71f961adf6b0ff",
+ "name": "roles/os6_bgp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "9522bb923f414ccabbaf73341a226c4bc2a161b1570950bbc531a9437a277bb9",
+ "name": "roles/os6_bgp/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_bgp/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "0ae061bb81516fe4b9ab6739dcca46fe3f5b50344d4c30762438669bf6f8736e",
+ "name": "roles/os6_bgp/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "91c3c194de2106a16ee51da04a2cd57d95821298c23022aa4e856a2199763a1c",
+ "name": "roles/os6_ntp/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_ntp/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "510cf11fd5cd5f601c8da4171355892d32289ec90c1ba3d4febad6dbe746f84f",
+ "name": "roles/os6_ntp/tests/test.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c67f34a06350c4fe36d01a03d4c6c4132733715819fa568bbf7c47bab9bea937",
+ "name": "roles/os6_ntp/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e02233819b1a09844410549191813f7cc7ba360f21298578f4ba1727a27d87fc",
+ "name": "roles/os6_ntp/tests/inventory",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a1cc9d2eb86ba5b0d74edc8dbd4a29a1caba4b550597c77f4f87c59e71289edd",
+ "name": "roles/os6_ntp/templates/os6_ntp.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c4fc549ba1aa94977285f846dcc2040c4609e862d2589238b705073bc9f2c45c",
+ "name": "roles/os6_ntp/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "bbebd2d2fed07efe0555c8eb380aa715fd52089a694673bc6340d20346febbc5",
+ "name": "roles/os6_ntp/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b1d6519f386c6c11226abd13273303945beb6d1de8fd08ae5a1bea02084258d9",
+ "name": "roles/os6_ntp/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "1cfaf6cb22e9e6f3b898f7ebcf805c79996b41555e4e247420c32989b2bec638",
+ "name": "roles/os6_ntp/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_ntp/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "a1b0938b3c2642dc6730b314931bc37c95caec7303a712a12032b632bb3a069c",
+ "name": "roles/os6_ntp/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/handlers",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "06dada9df09601459174f4beef9acab7363b43e75af2c7c6232cc622c8c7c6f6",
+ "name": "roles/os6_interface/handlers/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "5883eb4c7ece1931e1b25a9071bcbe50c1eaab7b9a38d2515e1b4be29e630fb3",
+ "name": "roles/os6_interface/LICENSE",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/tests",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "cbbb3fe682723f4ac4d306230cd68e39d75611294d3ed60848cd2b4777c201c2",
+ "name": "roles/os6_interface/tests/inventory.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8e0874badbc6d9b601696717109a02439c461a1b55fa8044f8af47beafdfda00",
+ "name": "roles/os6_interface/tests/test.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "c0a8610a990c2048db010b007e7490257215a70722d9ffdaec80cb97c3b2d7b8",
+ "name": "roles/os6_interface/tests/main.os6.yaml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/templates",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b41045b5a1642a1b9fdac94a89edf172d72828b6f32489ae0ef179d61d7d47c6",
+ "name": "roles/os6_interface/templates/os6_interface.j2",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/meta",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "d10b2645e5b9caf6f2eebdf1c2079bf9ab5031c6c78e5315769f39388261de98",
+ "name": "roles/os6_interface/meta/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/vars",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "b45d0f61c394fa77e7f1641b2fc686037d847658ab8a93cd232314ff76215c81",
+ "name": "roles/os6_interface/vars/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "8687132d7272a91282bee5f0fcad7f833c3e7d4e666f7c60c02a4b9130766e87",
+ "name": "roles/os6_interface/README.md",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/defaults",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "63fd57470a2eefef819d902e96d71e49395a3d2a69e7d104ba10c42ccb475d21",
+ "name": "roles/os6_interface/defaults/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ },
+ {
+ "ftype": "dir",
+ "chksum_sha256": null,
+ "name": "roles/os6_interface/tasks",
+ "chksum_type": null,
+ "format": 1
+ },
+ {
+ "ftype": "file",
+ "chksum_sha256": "e13cffec2e2fca909ef57fde52ba0b6672f09f880573782a71916e71d5f98682",
+ "name": "roles/os6_interface/tasks/main.yml",
+ "chksum_type": "sha256",
+ "format": 1
+ }
+ ],
+ "format": 1
+} \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/MANIFEST.json b/collections-debian-merged/ansible_collections/dellemc/os6/MANIFEST.json
new file mode 100644
index 00000000..75ab14f0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/MANIFEST.json
@@ -0,0 +1,37 @@
+{
+ "collection_info": {
+ "description": "Ansible Network Collection for Dell EMC OS6",
+ "repository": "https://github.com/ansible-collections/dellemc.os6",
+ "tags": [
+ "dell",
+ "dellemc",
+ "os6",
+ "emc",
+ "networking"
+ ],
+ "dependencies": {
+ "ansible.netcommon": ">=1.0.0"
+ },
+ "authors": [
+ "Komal Patil <Komal_uttamrao_Patil@dell.com>",
+ "Senthil Ganesan Ganesan <Senthil_Kumar_Ganesa@Dell.com>"
+ ],
+ "issues": "https://github.com/ansible-collections/dellemc.os6/issues",
+ "name": "os6",
+ "license": [],
+ "documentation": "https://github.com/ansible-collections/dellemc.os6/tree/master/docs",
+ "namespace": "dellemc",
+ "version": "1.0.6",
+ "readme": "README.md",
+ "license_file": "LICENSE",
+ "homepage": "https://github.com/ansible-collections/dellemc.os6"
+ },
+ "file_manifest_file": {
+ "format": 1,
+ "ftype": "file",
+ "chksum_sha256": "a7e48e9bfcffd620d0b686687e282523cf4b2dced361730f9e9d422c05d6e008",
+ "name": "FILES.json",
+ "chksum_type": "sha256"
+ },
+ "format": 1
+} \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/README.md
new file mode 100644
index 00000000..eaa413cf
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/README.md
@@ -0,0 +1,98 @@
+# Ansible Network Collection for Dell EMC OS6
+
+## Collection contents
+
+This collection includes the Ansible modules, plugins and roles needed to privision and manage Dell EMC PowerSwitch platforms running Dell EMC OS6. Sample playbooks and documentation are also included to show how the collection can be used.
+
+### Collection core modules
+
+- **os6_command.py** — Run commands on devices running OS6
+
+- **os6_config.py** — Manage configuration on devices running OS6
+
+- **os6_facts.py** — Collect facts from devices running OS6
+
+### Collection roles
+
+These roles facilitate provisioning and administration of devices running Dell EMC OS6. There are over 15 roles available that provide a comprehensive coverage of most OS6 resources, including os6_interface, os6_aaa, os6_bgp, and os6_xstp. The documentation for each role is at [OS6 roles](https://github.com/ansible-collections/dellemc.os6/blob/master/docs/roles.rst).
+
+### Sample use case playbooks
+
+This collection inlcudes the following sample playbook that illustrate end to end use cases:
+
+ - [iBGP](https://github.com/ansible-collections/dellemc.os6/blob/master/playbooks/ibgp/README.md) — Example playbook to configure iBGP between two routers
+
+## Installation
+
+Use this command to install the latest version of the OS6 collection from Ansible Galaxy:
+
+```
+ansible-galaxy collection install dellemc.os6
+
+```
+To install a specific version, a version range identifier must be specified. For example, to install the most recent version that is greater than or equal to 1.0.0 and less than 2.0.0:
+
+```
+ansible-galaxy collection install 'dellemc.os6:>=1.0.0,<2.0.0'
+
+```
+
+## Version compatibility
+
+* Ansible version 2.10 or higher
+* Python 2.7 or higher and Python 3.5 or higher
+
+> **NOTE**: For Ansible versions lower than 2.10, use the legacy [dellos6 modules](https://ansible-dellos-docs.readthedocs.io/en/latest/modules.html#os6-modules) and [dellos roles](https://ansible-dellos-docs.readthedocs.io/en/latest/roles.html).
+
+## Sample playbook
+
+**playbook.yaml**
+
+```
+- hosts: os6_switches
+ connection: network_cli
+ collections:
+ - dellemc.os6
+ roles:
+ - os6_vlan
+
+```
+
+**host_vars/os6_sw1.yaml**
+
+```
+hostname: os6_sw1
+# Parameters for connection type network_cli
+ansible_ssh_user: xxxx
+ansible_ssh_pass: xxxx
+ansible_become: yes
+ansible_become_method: enable
+ansible_network_os: dellemc.os6.os6
+
+# Create vlan100 and delete vlan888
+os6_vlan:
+ vlan 100:
+ name: "Blue"
+ state: present
+ vlan 888:
+ state: absent
+
+
+```
+
+**inventory.yaml**
+
+```
+[os6_sw1]
+os6_sw1 ansible_host= 100.94.51.40
+
+[os6_sw2]
+os6_sw2 ansible_host= 100.94.52.38
+
+[os6_switches:children]
+os6_sw1
+os6_sw2
+
+```
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/CHANGELOG.rst b/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/CHANGELOG.rst
new file mode 100644
index 00000000..89678b44
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/CHANGELOG.rst
@@ -0,0 +1,89 @@
+======================================================================
+Ansible Network Collection for Dell EMC OS6 Release Notes
+======================================================================
+
+.. contents:: Topics
+
+v1.0.6
+======
+
+Bugfixes
+---------------
+
+- module utils fix for exit handling in multilevel parent commands
+- config module fix to handle multiline banner
+- terminal plugin fix to handle error reported by management access lists
+
+v1.0.5
+======
+
+Bugfixes
+---------------
+
+- config module fix to handle issues faced while parsing running config and fixing idempotency issue for banner config
+- command module change to keep similar changes across all dell networking OSs
+- terminal plugin fix to send "terminal length 0" command
+
+v1.0.4
+======
+
+Bugfixes
+---------------
+
+- Fix issue in using list of strings for `commands` argument for `os6_command` module
+- Fix issue in using "os6_facts" module for non-legacy n-series platofrms
+
+v1.0.3
+======
+
+Release Summary
+---------------
+
+Added bug fixes for bugs found during System Test.
+
+v1.0.2
+======
+
+Release Summary
+---------------
+
+Added changelogs.
+
+v1.0.1
+======
+
+Release Summary
+---------------
+
+Updated documentation review comments.
+
+v1.0.0
+======
+
+New Modules
+-----------
+
+- os6_command - Run commands on devices running Dell EMC os6.
+- os6_config - Manage configuration on devices running os6.
+- os6_facts - Collect facts from devices running os6.
+
+New Roles
+---------
+
+- os6_aaa - Facilitates the configuration of Authentication Authorization and Accounting (AAA), TACACS and RADIUS server.
+- os6_acl - Facilitates the configuration of Access Control lists.
+- os6_bgp - Facilitates the configuration of border gateway protocol (BGP) attributes.
+- os6_interface - Facilitates the configuration of interface attributes.
+- os6_lag - Facilitates the configuration of link aggregation group (LAG) attributes.
+- os6_lldp - Facilitates the configuration of link layer discovery protocol (LLDP) attributes at global and interface level.
+- os6_logging - Facilitates the configuration of global logging attributes and logging servers.
+- os6_ntp - Facilitates the configuration of network time protocol (NTP) attributes.
+- os6_qos - Facilitates the configuration of quality of service attributes including policy-map and class-map.
+- os6_snmp - Facilitates the configuration of global SNMP attributes.
+- os6_system - Facilitates the configuration of hostname and hashing algorithm.
+- os6_users - Facilitates the configuration of global system user attributes.
+- os6_vlan - Facilitates the configuration of virtual LAN (VLAN) attributes.
+- os6_vrrp - Facilitates the configuration of virtual router redundancy protocol (VRRP) attributes.
+- os6_xstp - Facilitates the configuration of xSTP attributes.
+
+\(c) 2020 Dell Inc. or its subsidiaries. All Rights Reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/changelog.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/changelog.yaml
new file mode 100644
index 00000000..6108d9d3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/changelog.yaml
@@ -0,0 +1,104 @@
+ancestor: null
+releases:
+ 1.0.0:
+ modules:
+ - description: Run commands on devices running Dell EMC os6.
+ name: os6_command
+ namespace: ''
+ - description: Manage configuration on devices running os6.
+ name: os6_config
+ namespace: ''
+ - description: Collect facts from devices running os6.
+ name: os6_facts
+ namespace: ''
+ roles:
+ - description: Facilitates the configuration of Authentication Authorization and Accounting (AAA), TACACS and RADIUS server.
+ name: os6_aaa
+ namespace: ''
+ - description: Facilitates the configuration of Access Control lists.
+ name: os6_acl
+ namespace: ''
+ - description: Facilitates the configuration of border gateway protocol (BGP) attributes.
+ name: os6_bgp
+ namespace: ''
+ - description: Facilitates the configuration of interface attributes.
+ name: os6_interface
+ namespace: ''
+ - description: Facilitates the configuration of link aggregation group (LAG) attributes.
+ name: os6_lag
+ namespace: ''
+ - description: Facilitates the configuration of link layer discovery protocol (LLDP) attributes at global and interface level.
+ name: os6_lldp
+ namespace: ''
+ - description: Facilitates the configuration of global logging attributes and logging servers.
+ name: os6_logging
+ namespace: ''
+ - description: Facilitates the configuration of network time protocol (NTP) attributes.
+ name: os6_ntp
+ namespace: ''
+ - description: Facilitates the configuration of quality of service attributes including policy-map and class-map.
+ name: os6_qos
+ namespace: ''
+ - description: Facilitates the configuration of global SNMP attributes.
+ name: os6_snmp
+ namespace: ''
+ - description: Facilitates the configuration of hostname and hashing algorithm.
+ name: os6_system
+ namespace: ''
+ - description: Facilitates the configuration of global system user attributes.
+ name: os6_users
+ namespace: ''
+ - description: Facilitates the configuration of virtual LAN (VLAN) attributes.
+ name: os6_vlan
+ namespace: ''
+ - description: Facilitates the configuration of virtual router redundancy protocol (VRRP) attributes.
+ name: os6_vrrp
+ namespace: ''
+ - description: Facilitates the configuration of xSTP attributes.
+ name: os6_xstp
+ namespace: ''
+ release_date: '2020-07-31'
+ 1.0.1:
+ changes:
+ release_summary: Updated documentation review comments
+ fragments:
+ - 1.0.1.yaml
+ release_date: '2020-08-04'
+ 1.0.2:
+ changes:
+ release_summary: Added changelogs.
+ fragments:
+ - 1.0.2.yaml
+ release_date: '2020-08-18'
+ 1.0.3:
+ changes:
+ release_summary: Added bug fixes for bugs found during System Test.
+ fragments:
+ - 1.0.3.yaml
+ release_date: '2020-10-09'
+ 1.0.4:
+ changes:
+ bugfixes:
+ - Fix issue in using list of strings for `commands` argument for `os6_command` module
+ - Fix issue in using "os6_facts" module for non-legacy n-series platofrms
+ fragments:
+ - 1.0.4.yaml
+ release_date: "2020-11-17"
+ 1.0.5:
+ changes:
+ bugfixes:
+ - config module fix to handle issues faced while parsing running config and fixing idempotency issue for banner config
+ - command module change to keep similar changes across all dell networking OSs
+ - terminal plugin fix to send "terminal length 0" command
+ fragments:
+ - 1.0.5.yaml
+ release_date: "2020-12-09"
+ 1.0.6:
+ changes:
+ bugfixes:
+ - module utils fix for exit handling in multilevel parent commands
+ - config module fix to handle multiline banner
+ - terminal plugin fix to handle error reported by management access lists
+ fragments:
+ - 1.0.6.yaml
+ release_date: "2020-12-18"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/config.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/config.yaml
new file mode 100644
index 00000000..f1a020eb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/changelogs/config.yaml
@@ -0,0 +1,30 @@
+changelog_filename_template: CHANGELOG.rst
+changelog_filename_version_depth: 0
+changes_file: changelog.yaml
+changes_format: combined
+keep_fragments: false
+mention_ancestor: true
+new_plugins_after_name: removed_features
+notesdir: fragments
+prelude_section_name: release_summary
+prelude_section_title: Release Summary
+flatmap: true
+sections:
+- - major_changes
+ - Major Changes
+- - minor_changes
+ - Minor Changes
+- - breaking_changes
+ - Breaking Changes / Porting Guide
+- - deprecated_features
+ - Deprecated Features
+- - removed_features
+ - Removed Features (previously deprecated)
+- - security_fixes
+ - Security Fixes
+- - bugfixes
+ - Bugfixes
+- - known_issues
+ - Known Issues
+title: Ansible Network Collection for Dell OS6
+trivial_section_name: trivial
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_aaa.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_aaa.md
new file mode 100644
index 00000000..b3d5783a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_aaa.md
@@ -0,0 +1 @@
+../roles/os6_aaa/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_acl.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_acl.md
new file mode 100644
index 00000000..6224f56a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_acl.md
@@ -0,0 +1 @@
+../roles/os6_acl/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_bgp.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_bgp.md
new file mode 100644
index 00000000..376f0e03
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_bgp.md
@@ -0,0 +1 @@
+../roles/os6_bgp/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_interface.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_interface.md
new file mode 100644
index 00000000..6b800960
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_interface.md
@@ -0,0 +1 @@
+../roles/os6_interface/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lag.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lag.md
new file mode 100644
index 00000000..623771fa
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lag.md
@@ -0,0 +1 @@
+../roles/os6_lag/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lldp.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lldp.md
new file mode 100644
index 00000000..3f367237
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_lldp.md
@@ -0,0 +1 @@
+../roles/os6_lldp/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_logging.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_logging.md
new file mode 100644
index 00000000..f9888545
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_logging.md
@@ -0,0 +1 @@
+../roles/os6_logging/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_ntp.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_ntp.md
new file mode 100644
index 00000000..dee2f2b2
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_ntp.md
@@ -0,0 +1 @@
+../roles/os6_ntp/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_qos.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_qos.md
new file mode 100644
index 00000000..d7dc1fb2
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_qos.md
@@ -0,0 +1 @@
+../roles/os6_qos/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_snmp.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_snmp.md
new file mode 100644
index 00000000..dd6f97f3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_snmp.md
@@ -0,0 +1 @@
+../roles/os6_snmp/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_system.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_system.md
new file mode 100644
index 00000000..64a2c5ec
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_system.md
@@ -0,0 +1 @@
+../roles/os6_system/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_users.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_users.md
new file mode 100644
index 00000000..2b05877b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_users.md
@@ -0,0 +1 @@
+../roles/os6_users/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vlan.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vlan.md
new file mode 100644
index 00000000..c28686f8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vlan.md
@@ -0,0 +1 @@
+../roles/os6_vlan/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vrrp.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vrrp.md
new file mode 100644
index 00000000..95a1dc26
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_vrrp.md
@@ -0,0 +1 @@
+../roles/os6_vrrp/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_xstp.md b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_xstp.md
new file mode 100644
index 00000000..9f0ff54f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/os6_xstp.md
@@ -0,0 +1 @@
+../roles/os6_xstp/README.md \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/docs/roles.rst b/collections-debian-merged/ansible_collections/dellemc/os6/docs/roles.rst
new file mode 100644
index 00000000..2aab9b84
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/docs/roles.rst
@@ -0,0 +1,94 @@
+##############################################################
+Ansible Network Collection Roles for Dell EMC OS6
+##############################################################
+
+The roles facilitate provisioning of Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+AAA role
+********
+
+The `os6_aaa <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_aaa/README.md>`_ role facilitates the configuration of authentication, authorization, and acccounting (AAA). It supports the configuration of TACACS and RADIUS server, and AAA.
+
+
+ACL role
+********
+
+The `os6_acl <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_acl/README.md>`_ role facilitates the configuration of an access-control list (ACL). It supports the configuration of different types of ACLs (standard and extended) for both IPv4 and IPv6, and assigns the access-class to line terminals.
+
+
+BGP role
+********
+
+The `os6_bgp <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_bgp/README.md>`_ role facilitates the configuration of border gateway protocol (BGP) attributes. It supports the configuration of router ID, networks, neighbors, and maximum path.
+
+
+Interface role
+**************
+
+The `os6_interface <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_interface/README.md>`_ role facilitates the configuration of interface attributes. It supports the configuration of administrative state, description, MTU, IP address, IP helper, and port mode.
+
+
+LAG role
+********
+
+The `os6_lag <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_lag/README.md>`_ role facilitates the configuration of link aggregation group (LAG) attributes, and supports the creation and deletion of a LAG and its member ports. It also supports the configuration of type (static/dynamic), hash scheme, and minimum required link.
+
+
+LLDP role
+*********
+
+The `os6_lldp <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_lldp/README.md>`_ role facilitates the configuration of link layer discovery protocol (LLDP) attributes at global and interface level. This role supports the configuration of hello, mode, multiplier, advertise tlvs, management interface, fcoe, iscsi at global and interface levels.
+
+
+Logging role
+************
+
+The `os6_logging <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_logging/README.md>`_ role facilitates the configuration of global logging attributes, and supports the configuration of logging servers.
+
+
+NTP role
+********
+
+The `os6_ntp <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_ntp/README.md>`_ role facilitates the configuration of network time protocol (NTP) attributes.
+
+
+QoS role
+********
+
+The `os6_qos <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_qos/README.md>`_ role facilitates the configuration of quality of service (QoS) attributes including policy-map and class-map.
+
+
+SNMP role
+*********
+
+The `os6_snmp <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_snmp/README.md>`_ role facilitates the configuration of global simple network management protocol (SNMP) attributes. It supports the configuration of SNMP server attributes like users, group, community, location, and traps.
+
+
+System role
+***********
+
+The `os6_system <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_system/README.md>`_ role facilitates the configuration of global system attributes. This role specifically enables configuration of hostname and enable password for OS6.
+
+
+Users role
+**********
+
+The `os6_users <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_users/README.md>`_ role facilitates the configuration of global system user attributes. This role supports the configuration of CLI users.
+
+
+VLAN role
+*********
+
+The `os6_vlan <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_vlan/README.md>`_ role facilitates configuring virtual LAN (VLAN) attributes. This role supports the creation and deletion of a VLAN and its member ports.
+
+
+VRRP role
+*********
+
+The `os6_vrrp <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_vrrp/README.md>`_ role facilitates configuration of virtual router redundancy protocol (VRRP) attributes. This role supports the creation of VRRP groups for interfaces, and setting the VRRP group attributes.
+
+
+xSTP role
+*********
+
+The `os6_xstp <https://github.com/ansible-collections/dellemc.os6/blob/master/roles/os6_xstp/README.md>`_ role facilitates the configuration of extended spanning-tree protocol (xSTP) attributes. This role supports multiple version of spanning-tree protocol (STP), rapid spanning-tree (RSTP) protocol, multiple spanning-tree (MST), and per-VLAN spanning-tree (PVST). This role supports the configuration of bridge priority, enabling and disabling spanning-tree, creating and deleting instances, and mapping virtual LAN (VLAN) to instances. \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/meta/runtime.yml b/collections-debian-merged/ansible_collections/dellemc/os6/meta/runtime.yml
new file mode 100644
index 00000000..f31652cc
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/meta/runtime.yml
@@ -0,0 +1,8 @@
+plugin_routing:
+ action:
+ os6_config:
+ redirect: dellemc.os6.os6
+ os6_command:
+ redirect: dellemc.os6.os6
+ os6_facts:
+ redirect: dellemc.os6.os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/README.md
new file mode 100644
index 00000000..ab3e4e40
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/README.md
@@ -0,0 +1,21 @@
+# Provision OS6 Switch Stack using the Ansible Network Collection for Dell EMC OS6
+
+This example describes how to use Ansible to configure Dell EMC PowerSwitch platforms running Dell EMC OS6. The sample topology contains two OS6 switches connected with each other. This example configures iBGP between two routers using the same AS.
+
+## Create a simple Ansible playbook
+
+**1**. Create an inventory file called `inventory.yaml`, then specify the device IP addresses under use in the inventory.
+
+**2**. Create a group variable file called `group_vars/all`, then define credentials common to all hosts.
+
+**3**. Create a host variable file called `host_vars/switch1.yaml`, then define credentials, hostname for switch1.
+
+**4**. Create a host variable file called `host_vars/switch2.yaml`, then define credentials and hostname for switch2.
+
+**5**. Create a playbook called `os6switch.yaml`.
+
+**6**. Run the playbook.
+
+ ansible-playbook -i inventory.yaml os6switch.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/group_vars/all b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/group_vars/all
new file mode 100644
index 00000000..a24c1a2e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/group_vars/all
@@ -0,0 +1,4 @@
+ansible_ssh_user: xxxx
+ansible_ssh_pass: xxxx
+ansible_network_os: dellemc.os6.os6
+build_dir: ../tmp/tmp_os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch1.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch1.yaml
new file mode 100644
index 00000000..8e3a1b36
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch1.yaml
@@ -0,0 +1,47 @@
+hostname: switch1
+ansible_ssh_user: xxxx
+ansible_ssh_pass: xxxx
+ansible_become: yes
+ansible_become_method: enable
+ansible_network_os: dellemc.os6.os6
+switch1_hostname: "switch1"
+
+os6_system:
+ hostname: "{{ switch1_hostname }}"
+ #enable_password: xxxx
+ mtu: 2000
+
+os6_vlan:
+ vlan 20:
+ default_vlan: False
+ name: "os6vlan"
+ untagged_members:
+ - port: Te7/0/1
+ state: present
+ state: present
+
+os6_interface:
+ Te7/0/1:
+ desc: "bgp"
+ admin: up
+ portmode: access
+
+ vlan 20:
+ ip_type_dynamic: False
+ ip_and_mask: 20.20.20.3 255.255.255.0
+
+os6_bgp:
+ asn: 4545
+ router_id: 20.20.20.3
+ maxpath_ibgp: 3
+ ipv4_network:
+ - address: 20.20.20.3 255.255.255.255
+ state: present
+ neighbor:
+ - type: ipv4
+ ip: 20.20.20.2
+ remote_asn: 4545
+ timer: 5 10
+ default_originate: True
+ state: present
+ state: present \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch2.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch2.yaml
new file mode 100644
index 00000000..0416fab8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/host_vars/switch2.yaml
@@ -0,0 +1,47 @@
+hostname: switch2
+ansible_ssh_user: xxxx
+ansible_ssh_pass: xxxx
+ansible_become: yes
+ansible_become_method: enable
+ansible_network_os: dellemc.os6.os6
+switch2_hostname: "switch2"
+
+os6_system:
+ hostname: "{{ switch2_hostname }}"
+ #enable_password: xxxx
+ mtu: 2000
+
+os6_vlan:
+ vlan 20:
+ default_vlan: False
+ name: "os6vlan"
+ untagged_members:
+ - port: Te1/0/48
+ state: present
+ state: present
+
+os6_interface:
+ Te1/0/48:
+ desc: "bgp"
+ admin: up
+ portmode: access
+
+ vlan 20:
+ ip_type_dynamic: False
+ ip_and_mask: 20.20.20.2 255.255.255.0
+
+os6_bgp:
+ asn: 4545
+ router_id: 20.20.20.2
+ maxpath_ibgp: 3
+ ipv4_network:
+ - address: 20.20.20.2 255.255.255.255
+ state: present
+ neighbor:
+ - type: ipv4
+ ip: 20.20.20.3
+ remote_asn: 4545
+ timer: 5 10
+ default_originate: True
+ state: present
+ state: present
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/inventory.yaml
new file mode 100644
index 00000000..1cda8da3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40
+switch2 ansible_host=100.94.52.38
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/os6switch.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/os6switch.yaml
new file mode 100644
index 00000000..59eb0dc8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/playbooks/ibgp/os6switch.yaml
@@ -0,0 +1,13 @@
+---
+- hosts: os6switches
+ gather_facts: no
+ become: yes
+ become_method: enable
+ connection: network_cli
+ collections:
+ - dellemc.os6
+ roles:
+ - os6_system
+ - os6_vlan
+ - os6_interface
+ - os6_bgp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/os6.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/os6.py
new file mode 100644
index 00000000..a7f16df3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/action/os6.py
@@ -0,0 +1,95 @@
+#
+# (c) 2020 Red Hat Inc.
+#
+# (c) 2020 Dell Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+#
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import sys
+import copy
+
+from ansible import constants as C
+from ansible.module_utils._text import to_text
+from ansible.module_utils.connection import Connection
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import os6_provider_spec
+from ansible_collections.ansible.netcommon.plugins.action.network import ActionModule as ActionNetworkModule
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import load_provider
+from ansible.utils.display import Display
+
+display = Display()
+
+
+class ActionModule(ActionNetworkModule):
+
+ def run(self, tmp=None, task_vars=None):
+ del tmp # tmp no longer has any effect
+
+ module_name = self._task.action.split('.')[-1]
+ self._config_module = True if module_name == 'os6_config' else False
+ socket_path = None
+ persistent_connection = self._play_context.connection.split('.')[-1]
+
+ if persistent_connection == 'network_cli':
+ provider = self._task.args.get('provider', {})
+ if any(provider.values()):
+ display.warning('provider is unnecessary when using network_cli and will be ignored')
+ del self._task.args['provider']
+ elif self._play_context.connection == 'local':
+ provider = load_provider(os6_provider_spec, self._task.args)
+ pc = copy.deepcopy(self._play_context)
+ pc.connection = 'network_cli'
+ pc.network_os = 'dellemc.os6.os6'
+ pc.remote_addr = provider['host'] or self._play_context.remote_addr
+ pc.port = int(provider['port'] or self._play_context.port or 22)
+ pc.remote_user = provider['username'] or self._play_context.connection_user
+ pc.password = provider['password'] or self._play_context.password
+ pc.private_key_file = provider['ssh_keyfile'] or self._play_context.private_key_file
+ command_timeout = int(provider['timeout'] or C.PERSISTENT_COMMAND_TIMEOUT)
+ pc.become = provider['authorize'] or False
+ if pc.become:
+ pc.become_method = 'enable'
+ pc.become_pass = provider['auth_pass']
+
+ display.vvv('using connection plugin %s' % pc.connection, pc.remote_addr)
+ connection = self._shared_loader_obj.connection_loader.get('persistent', pc, sys.stdin)
+ connection.set_options(direct={'persistent_command_timeout': command_timeout})
+
+ socket_path = connection.run()
+ display.vvvv('socket_path: %s' % socket_path, pc.remote_addr)
+ if not socket_path:
+ return {'failed': True,
+ 'msg': 'unable to open shell. Please see: ' +
+ 'https://docs.ansible.com/ansible/network_debug_troubleshooting.html#unable-to-open-shell'}
+
+ task_vars['ansible_socket'] = socket_path
+
+ # make sure we are in the right cli context which should be
+ # enable mode and not config module
+ if socket_path is None:
+ socket_path = self._connection.socket_path
+
+ conn = Connection(socket_path)
+ out = conn.get_prompt()
+ while to_text(out, errors='surrogate_then_replace').strip().endswith(')#'):
+ display.vvvv('wrong context, sending exit to device', self._play_context.remote_addr)
+ conn.send_command('exit')
+ out = conn.get_prompt()
+
+ result = super(ActionModule, self).run(task_vars=task_vars)
+ return result
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/os6.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/os6.py
new file mode 100644
index 00000000..9c9290da
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/cliconf/os6.py
@@ -0,0 +1,88 @@
+#
+# (c) 2020 Red Hat Inc.
+#
+# (c) 2020 Dell Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+#
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+DOCUMENTATION = """
+---
+cliconf: os6
+short_description: Use os6 cliconf to run command on Dell OS6 platform
+description:
+ - This os6 plugin provides low level abstraction apis for
+ sending and receiving CLI commands from Dell OS6 network devices.
+"""
+
+import re
+import json
+
+from itertools import chain
+
+from ansible.module_utils._text import to_bytes, to_text
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list
+from ansible.plugins.cliconf import CliconfBase, enable_mode
+
+
+class Cliconf(CliconfBase):
+
+ def get_device_info(self):
+ device_info = {}
+
+ device_info['network_os'] = 'dellemc.os6.os6'
+ reply = self.get('show version')
+ data = to_text(reply, errors='surrogate_or_strict').strip()
+
+ match = re.search(r'Software Version (\S+)', data)
+ if match:
+ device_info['network_os_version'] = match.group(1)
+
+ match = re.search(r'System Type (\S+)', data, re.M)
+ if match:
+ device_info['network_os_model'] = match.group(1)
+
+ reply = self.get('show running-config | grep hostname')
+ data = to_text(reply, errors='surrogate_or_strict').strip()
+ match = re.search(r'^hostname (.+)', data, re.M)
+ if match:
+ device_info['network_os_hostname'] = match.group(1)
+
+ return device_info
+
+ @enable_mode
+ def get_config(self, source='running', format='text', flags=None):
+ if source not in ('running', 'startup'):
+ return self.invalid_params("fetching configuration from %s is not supported" % source)
+# if source == 'running':
+# cmd = 'show running-config all'
+ else:
+ cmd = 'show startup-config'
+ return self.send_command(cmd)
+
+ @enable_mode
+ def edit_config(self, command):
+ for cmd in chain(['configure terminal'], to_list(command), ['end']):
+ self.send_command(cmd)
+
+ def get(self, command, prompt=None, answer=None, sendonly=False, newline=True, check_all=False):
+ return self.send_command(command=command, prompt=prompt, answer=answer, sendonly=sendonly, newline=newline, check_all=check_all)
+
+ def get_capabilities(self):
+ result = super(Cliconf, self).get_capabilities()
+ return json.dumps(result)
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/os6.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/os6.py
new file mode 100644
index 00000000..32daca59
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/doc_fragments/os6.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+# Copyright: (c) 2020, Peter Sprygada <psprygada@ansible.com>
+# Copyright: (c) 2020, Dell Inc.
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+class ModuleDocFragment(object):
+
+ # Standard files documentation fragment
+ DOCUMENTATION = r'''
+options:
+ provider:
+ description:
+ - A dict object containing connection details.
+ type: dict
+ suboptions:
+ host:
+ description:
+ - Specifies the DNS host name or address for connecting to the remote
+ device over the specified transport. The value of host is used as
+ the destination address for the transport.
+ type: str
+ port:
+ description:
+ - Specifies the port to use when building the connection to the remote
+ device.
+ type: int
+ username:
+ description:
+ - User to authenticate the SSH session to the remote device. If the
+ value is not specified in the task, the value of environment variable
+ C(ANSIBLE_NET_USERNAME) will be used instead.
+ type: str
+ password:
+ description:
+ - Password to authenticate the SSH session to the remote device. If the
+ value is not specified in the task, the value of environment variable
+ C(ANSIBLE_NET_PASSWORD) will be used instead.
+ type: str
+ ssh_keyfile:
+ description:
+ - Path to an ssh key used to authenticate the SSH session to the remote
+ device. If the value is not specified in the task, the value of
+ environment variable C(ANSIBLE_NET_SSH_KEYFILE) will be used instead.
+ type: path
+ timeout:
+ description:
+ - Specifies idle timeout (in seconds) for the connection. Useful if the
+ console freezes before continuing. For example when saving
+ configurations.
+ type: int
+ authorize:
+ description:
+ - Instructs the module to enter privileged mode on the remote device before
+ sending any commands. If not specified, the device will attempt to execute
+ all commands in non-privileged mode. If the value is not specified in the
+ task, the value of environment variable C(ANSIBLE_NET_AUTHORIZE) will be
+ used instead.
+ type: bool
+ auth_pass:
+ description:
+ - Specifies the password to use if required to enter privileged mode on the
+ remote device. If I(authorize) is false, then this argument does nothing.
+ If the value is not specified in the task, the value of environment variable
+ C(ANSIBLE_NET_AUTH_PASS) will be used instead.
+ type: str
+notes:
+ - For more information on using Ansible to manage Dell EMC Network devices see U(https://www.ansible.com/ansible-dell-networking).
+'''
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/os6.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/os6.py
new file mode 100644
index 00000000..aeea2cfc
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/module_utils/network/os6.py
@@ -0,0 +1,278 @@
+#
+# (c) 2020 Peter Sprygada, <psprygada@ansible.com>
+# (c) 2020 Red Hat, Inc
+#
+# Copyright (c) 2020 Dell Inc.
+#
+# This code is part of Ansible, but is an independent component.
+# This particular file snippet, and this file snippet only, is BSD licensed.
+# Modules you write using this snippet, which is embedded dynamically by Ansible
+# still belong to the author of the module, and may assign their own license
+# to the complete work.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+import re
+import json
+from ansible.module_utils._text import to_text
+from ansible.module_utils.basic import env_fallback
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list, ComplexList
+from ansible.module_utils.connection import exec_command
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.config import NetworkConfig, ConfigLine, ignore_line
+from ansible.module_utils._text import to_bytes
+from ansible.module_utils.connection import Connection, ConnectionError
+
+_DEVICE_CONFIGS = {}
+
+WARNING_PROMPTS_RE = [
+ r"[\r\n]?\[confirm yes/no\]:\s?$",
+ r"[\r\n]?\[y/n\]:\s?$",
+ r"[\r\n]?\[yes/no\]:\s?$"
+]
+
+os6_provider_spec = {
+ 'host': dict(),
+ 'port': dict(type='int'),
+ 'username': dict(fallback=(env_fallback, ['ANSIBLE_NET_USERNAME'])),
+ 'password': dict(fallback=(env_fallback, ['ANSIBLE_NET_PASSWORD']), no_log=True),
+ 'ssh_keyfile': dict(fallback=(env_fallback, ['ANSIBLE_NET_SSH_KEYFILE']), type='path'),
+ 'authorize': dict(fallback=(env_fallback, ['ANSIBLE_NET_AUTHORIZE']), type='bool'),
+ 'auth_pass': dict(fallback=(env_fallback, ['ANSIBLE_NET_AUTH_PASS']), no_log=True),
+ 'timeout': dict(type='int'),
+}
+os6_argument_spec = {
+ 'provider': dict(type='dict', options=os6_provider_spec),
+}
+
+
+def check_args(module, warnings):
+ pass
+
+
+def get_connection(module):
+ if hasattr(module, "_os6_connection"):
+ return module._os6_connection
+
+ capabilities = get_capabilities(module)
+ network_api = capabilities.get("network_api")
+ if network_api in ["cliconf"]:
+ module._os6_connection = Connection(module._socket_path)
+ else:
+ module.fail_json(msg="Invalid connection type %s" % network_api)
+
+ return module._os6_connection
+
+
+def get_capabilities(module):
+ if hasattr(module, "_os6_capabilities"):
+ return module._os6_capabilities
+ try:
+ capabilities = Connection(module._socket_path).get_capabilities()
+ except ConnectionError as exc:
+ module.fail_json(msg=to_text(exc, errors="surrogate_then_replace"))
+ module._os6_capabilities = json.loads(capabilities)
+ return module._os6_capabilities
+
+
+def get_config(module, flags=None):
+ flags = [] if flags is None else flags
+
+ cmd = 'show running-config'
+ cmd += ' '.join(flags)
+ cmd = cmd.strip()
+
+ try:
+ return _DEVICE_CONFIGS[cmd]
+ except KeyError:
+ rc, out, err = exec_command(module, cmd)
+ if rc != 0:
+ module.fail_json(msg='unable to retrieve current config', stderr=to_text(err, errors='surrogate_or_strict'))
+ cfg = to_text(out, errors='surrogate_or_strict').strip()
+ _DEVICE_CONFIGS[cmd] = cfg
+ return cfg
+
+
+def to_commands(module, commands):
+ spec = {
+ 'command': dict(key=True),
+ 'prompt': dict(),
+ 'answer': dict(),
+ 'sendonly': dict(),
+ 'newline': dict()
+ }
+ transform = ComplexList(spec, module)
+ return transform(commands)
+
+
+def run_commands(module, commands, check_rc=True):
+ responses = list()
+ commands = to_commands(module, to_list(commands))
+ for cmd in commands:
+ cmd = module.jsonify(cmd)
+ rc, out, err = exec_command(module, cmd)
+ if check_rc and rc != 0:
+ module.fail_json(msg=to_text(err, errors='surrogate_or_strict'), rc=rc)
+ responses.append(to_text(out, errors='surrogate_or_strict'))
+ return responses
+
+
+def load_config(module, commands):
+ rc, out, err = exec_command(module, 'configure terminal')
+ if rc != 0:
+ module.fail_json(msg='unable to enter configuration mode', err=to_text(err, errors='surrogate_or_strict'))
+
+ for command in to_list(commands):
+ if command == 'end':
+ continue
+ rc, out, err = exec_command(module, command)
+ if rc != 0:
+ module.fail_json(msg=to_text(err, errors='surrogate_or_strict'), command=command, rc=rc)
+ exec_command(module, 'end')
+
+
+def get_sublevel_config(running_config, module):
+ contents = list()
+ current_config_contents = list()
+ sublevel_config = NetworkConfig(indent=0)
+ obj = running_config.get_object(module.params['parents'])
+ if obj:
+ contents = obj._children
+ for c in contents:
+ if isinstance(c, ConfigLine):
+ current_config_contents.append(c.raw)
+ sublevel_config.add(current_config_contents, module.params['parents'])
+ return sublevel_config
+
+
+def os6_parse(lines, indent=None, comment_tokens=None):
+ sublevel_cmds = [
+ re.compile(r'^vlan\s[\d,-]+.*$'),
+ re.compile(r'^stack.*$'),
+ re.compile(r'^interface.*$'),
+ re.compile(r'datacenter-bridging.*$'),
+ re.compile(r'line (console|telnet|ssh).*$'),
+ re.compile(r'ip ssh !(server).*$'),
+ re.compile(r'ip dhcp pool.*$'),
+ re.compile(r'ip vrf (?!forwarding).*$'),
+ re.compile(r'(ip|mac|management|arp) access-list.*$'),
+ re.compile(r'ipv6 (dhcp pool|router).*$'),
+ re.compile(r'mail-server.*$'),
+ re.compile(r'vpc domain.*$'),
+ re.compile(r'router\s.*$'),
+ re.compile(r'route-map.*$'),
+ re.compile(r'policy-map.*$'),
+ re.compile(r'class-map match-all.*$'),
+ re.compile(r'captive-portal.*$'),
+ re.compile(r'admin-profile.*$'),
+ re.compile(r'link-dependency group.*$'),
+ re.compile(r'openflow.*$'),
+ re.compile(r'support-assist.*$'),
+ re.compile(r'template.*$'),
+ re.compile(r'address-family.*$'),
+ re.compile(r'spanning-tree mst configuration.*$'),
+ re.compile(r'logging (?!.*(cli-command|buffered|console|email|facility|file|monitor|protocol|snmp|source-interface|traps|web-session)).*$'),
+ re.compile(r'radius server (?!.*(attribute|dead-criteria|deadtime|timeout|key|load-balance|retransmit|source-interface|source-ip|vsa)).*$'),
+ re.compile(r'(tacacs-server) host.*$')]
+
+ childline = re.compile(r'^exit\s*$')
+ config = list()
+ parent = list()
+ children = []
+ parent_match = False
+ for line in str(lines).split('\n'):
+ line = str(line).strip()
+ text = str(re.sub(r'([{};])', '', line)).strip()
+ cfg = ConfigLine(text)
+ cfg.raw = line
+ if not text or ignore_line(text, comment_tokens):
+ parent = list()
+ children = []
+ continue
+
+ parent_match = False
+ # handle sublevel parent
+ for pr in sublevel_cmds:
+ if pr.match(line):
+ if len(parent) != 0:
+ cfg._parents.extend(parent)
+ parent.append(cfg)
+ config.append(cfg)
+ if children:
+ children.insert(len(parent) - 1, [])
+ children[len(parent) - 2].append(cfg)
+ if not children and len(parent) > 1:
+ configlist = [cfg]
+ children.append(configlist)
+ children.insert(len(parent) - 1, [])
+ parent_match = True
+ continue
+ # handle exit
+ if childline.match(line):
+ if children:
+ parent[len(children) - 1]._children.extend(children[len(children) - 1])
+ if len(children) > 1:
+ parent[len(children) - 2]._children.extend(parent[len(children) - 1]._children)
+ cfg._parents.extend(parent)
+ children.pop()
+ parent.pop()
+ if not children:
+ children = list()
+ if parent:
+ cfg._parents.extend(parent)
+ parent = list()
+ config.append(cfg)
+ # handle sublevel children
+ elif parent_match is False and len(parent) > 0:
+ if not children:
+ cfglist = [cfg]
+ children.append(cfglist)
+ else:
+ children[len(parent) - 1].append(cfg)
+ cfg._parents.extend(parent)
+ config.append(cfg)
+ # handle global commands
+ elif not parent:
+ config.append(cfg)
+ return config
+
+
+class NetworkConfig(NetworkConfig):
+
+ def load(self, contents):
+ self._items = os6_parse(contents, self._indent)
+
+ def _diff_line(self, other, path=None):
+ diff = list()
+ for item in self.items:
+ if str(item) == "exit":
+ for diff_item in diff:
+ if diff_item._parents:
+ if item._parents == diff_item._parents:
+ diff.append(item)
+ break
+ elif [e for e in item._parents if e == diff_item]:
+ diff.append(item)
+ break
+ elif item not in other:
+ diff.append(item)
+ return diff
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_command.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_command.py
new file mode 100644
index 00000000..99df0014
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_command.py
@@ -0,0 +1,225 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright: (c) 2020, Peter Sprygada <psprygada@ansible.com>
+# Copyright: (c) 2020, Dell Inc.
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+ANSIBLE_METADATA = {'metadata_version': '1.1',
+ 'status': ['preview'],
+ 'supported_by': 'community'}
+
+DOCUMENTATION = """
+---
+module: os6_command
+author: "Abirami N (@abirami-n)"
+short_description: Run commands on devices running Dell EMC OS6
+description:
+ - Sends arbitrary commands to a OS6 device and returns the results
+ read from the device. This module includes an
+ argument that will cause the module to wait for a specific condition
+ before returning or timing out if the condition is not met.
+ - This module does not support running commands in configuration mode.
+ Please use M(dellemc_os6_os6_config) to configure OS6 devices.
+extends_documentation_fragment: dellemc.os6.os6
+options:
+ commands:
+ description:
+ - List of commands to send to the remote os6 device over the
+ configured provider. The resulting output from the command
+ is returned. If the I(wait_for) argument is provided, the
+ module is not returned until the condition is satisfied or
+ the number of retries has expired.
+ type: list
+ required: true
+ wait_for:
+ description:
+ - List of conditions to evaluate against the output of the
+ command. The task will wait for each condition to be true
+ before moving forward. If the conditional is not true
+ within the configured number of I(retries), the task fails.
+ See examples.
+ type: list
+ elements: str
+ match:
+ description:
+ - The I(match) argument is used in conjunction with the
+ I(wait_for) argument to specify the match policy. Valid
+ values are C(all) or C(any). If the value is set to C(all)
+ then all conditionals in the wait_for must be satisfied. If
+ the value is set to C(any) then only one of the values must be
+ satisfied.
+ type: str
+ default: all
+ choices: [ all, any ]
+ retries:
+ description:
+ - Specifies the number of retries a command should be tried
+ before it is considered failed. The command is run on the
+ target device every retry and evaluated against the
+ I(wait_for) conditions.
+ type: int
+ default: 10
+ interval:
+ description:
+ - Configures the interval in seconds to wait between retries
+ of the command. If the command does not pass the specified
+ conditions, the interval indicates how long to wait before
+ trying the command again.
+ type: int
+ default: 1
+"""
+
+EXAMPLES = """
+tasks:
+ - name: run show version on remote devices
+ os6_command:
+ commands: show version
+ - name: run show version and check to see if output contains Dell
+ os6_command:
+ commands: show version
+ wait_for: result[0] contains Dell
+ - name: run multiple commands on remote nodes
+ os6_command:
+ commands:
+ - show version
+ - show interfaces
+ - name: run multiple commands and evaluate the output
+ os6_command:
+ commands:
+ - show version
+ - show interfaces
+ wait_for:
+ - result[0] contains Dell
+ - result[1] contains Access
+"""
+
+RETURN = """
+stdout:
+ description: The set of responses from the commands
+ returned: always apart from low level errors (such as action plugin)
+ type: list
+ sample: ['...', '...']
+stdout_lines:
+ description: The value of stdout split into a list
+ returned: always apart from low level errors (such as action plugin)
+ type: list
+ sample: [['...', '...'], ['...'], ['...']]
+failed_conditions:
+ description: The list of conditionals that have failed
+ returned: failed
+ type: list
+ sample: ['...', '...']
+warnings:
+ description: The list of warnings (if any) generated by module based on arguments
+ returned: always
+ type: list
+ sample: ['...', '...']
+"""
+
+import time
+
+from ansible.module_utils.basic import AnsibleModule
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import run_commands
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import os6_argument_spec, check_args
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import ComplexList
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.parsing import Conditional
+from ansible.module_utils.six import string_types
+
+
+def to_lines(stdout):
+ for item in stdout:
+ if isinstance(item, string_types):
+ item = str(item).split('\n')
+ yield item
+
+
+def parse_commands(module, warnings):
+ command = ComplexList(dict(
+ command=dict(key=True),
+ prompt=dict(),
+ answer=dict()
+ ), module)
+ commands = command(module.params['commands'])
+ for index, item in enumerate(commands):
+ if module.check_mode and not item['command'].startswith('show'):
+ warnings.append(
+ 'only show commands are supported when using check mode, not '
+ 'executing `%s`' % item['command']
+ )
+ elif item['command'].startswith('conf'):
+ module.fail_json(
+ msg='os6_command does not support running config mode '
+ 'commands. Please use os6_config instead'
+ )
+ return commands
+
+
+def main():
+ """main entry point for module execution
+ """
+ argument_spec = dict(
+ # { command: <str>, prompt: <str>, response: <str> }
+ commands=dict(type='list', required=True),
+
+ wait_for=dict(type='list', elements='str'),
+ match=dict(default='all', choices=['all', 'any']),
+
+ retries=dict(default=10, type='int'),
+ interval=dict(default=1, type='int')
+ )
+
+ argument_spec.update(os6_argument_spec)
+ module = AnsibleModule(argument_spec=argument_spec,
+ supports_check_mode=True)
+
+ result = {'changed': False}
+
+ warnings = list()
+ check_args(module, warnings)
+ commands = parse_commands(module, warnings)
+ result['warnings'] = warnings
+
+ wait_for = module.params['wait_for'] or list()
+ conditionals = [Conditional(c) for c in wait_for]
+
+ retries = module.params['retries']
+ interval = module.params['interval']
+ match = module.params['match']
+
+ while retries > 0:
+ responses = run_commands(module, commands)
+
+ for item in list(conditionals):
+ if item(responses):
+ if match == 'any':
+ conditionals = list()
+ break
+ conditionals.remove(item)
+
+ if not conditionals:
+ break
+
+ time.sleep(interval)
+ retries -= 1
+
+ if conditionals:
+ failed_conditions = [item.raw for item in conditionals]
+ msg = 'One or more conditional statements have not been satisfied'
+ module.fail_json(msg=msg, failed_conditions=failed_conditions)
+
+ result.update({
+ 'changed': False,
+ 'stdout': responses,
+ 'stdout_lines': list(to_lines(responses))
+ })
+
+ module.exit_json(**result)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_config.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_config.py
new file mode 100644
index 00000000..b4321e9f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_config.py
@@ -0,0 +1,410 @@
+#!/usr/bin/python
+#
+# (c) 2020 Peter Sprygada, <psprygada@ansible.com>
+# Copyright (c) 2020 Dell Inc.
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+ANSIBLE_METADATA = {'metadata_version': '1.1',
+ 'status': ['preview'],
+ 'supported_by': 'community'}
+
+DOCUMENTATION = """
+---
+module: os6_config
+author: "Abirami N (@abirami-n)"
+short_description: Manage Dell EMC OS6 configuration sections
+description:
+ - OS6 configurations use a simple block indent file syntax
+ for segmenting configuration into sections. This module provides
+ an implementation for working with OS6 configuration sections in
+ a deterministic way.
+extends_documentation_fragment: dellemc.os6.os6
+options:
+ lines:
+ description:
+ - The ordered set of commands that should be configured in the
+ section. The commands must be the exact same commands as found
+ in the device running-config. Be sure to note the configuration
+ command syntax as some commands are automatically modified by the
+ device config parser. This argument is mutually exclusive with I(src).
+ type: list
+ aliases: ['commands']
+ parents:
+ description:
+ - The ordered set of parents that uniquely identify the section or hierarchy
+ the commands should be checked against. If the parents argument
+ is omitted, the commands are checked against the set of top
+ level or global commands.
+ type: list
+ src:
+ description:
+ - Specifies the source path to the file that contains the configuration
+ or configuration template to load. The path to the source file can
+ either be the full path on the Ansible control host or a relative
+ path from the playbook or role root directory. This argument is
+ mutually exclusive with I(lines).
+ type: path
+ before:
+ description:
+ - The ordered set of commands to push on to the command stack if
+ a change needs to be made. This allows the playbook designer
+ the opportunity to perform configuration commands prior to pushing
+ any changes without affecting how the set of commands are matched
+ against the system.
+ type: list
+ after:
+ description:
+ - The ordered set of commands to append to the end of the command
+ stack if a change needs to be made. Just like with I(before) this
+ allows the playbook designer to append a set of commands to be
+ executed after the command set.
+ type: list
+ match:
+ description:
+ - Instructs the module on the way to perform the matching of
+ the set of commands against the current device config. If
+ match is set to I(line), commands are matched line by line. If
+ match is set to I(strict), command lines are matched with respect
+ to position. If match is set to I(exact), command lines
+ must be an equal match. Finally, if match is set to I(none), the
+ module will not attempt to compare the source configuration with
+ the running configuration on the remote device.
+ type: str
+ default: line
+ choices: ['line', 'strict', 'exact', 'none']
+ replace:
+ description:
+ - Instructs the module on the way to perform the configuration
+ on the device. If the replace argument is set to I(line) then
+ the modified lines are pushed to the device in configuration
+ mode. If the replace argument is set to I(block) then the entire
+ command block is pushed to the device in configuration mode if any
+ line is not correct.
+ type: str
+ default: line
+ choices: ['line', 'block']
+ update:
+ description:
+ - The I(update) argument controls how the configuration statements
+ are processed on the remote device. Valid choices for the I(update)
+ argument are I(merge) and I(check). When you set this argument to
+ I(merge), the configuration changes merge with the current
+ device running configuration. When you set this argument to I(check)
+ the configuration updates are determined but not actually configured
+ on the remote device.
+ type: str
+ default: merge
+ choices: ['merge', 'check']
+ save:
+ description:
+ - The C(save) argument instructs the module to save the running-
+ config to the startup-config at the conclusion of the module
+ running. If check mode is specified, this argument is ignored.
+ type: bool
+ default: 'no'
+ config:
+ description:
+ - The module, by default, will connect to the remote device and
+ retrieve the current running-config to use as a base for comparing
+ against the contents of source. There are times when it is not
+ desirable to have the task get the current running-config for
+ every task in a playbook. The I(config) argument allows the
+ implementer to pass in the configuration to use as the base
+ config for comparison.
+ type: str
+ backup:
+ description:
+ - This argument will cause the module to create a full backup of
+ the current C(running-config) from the remote device before any
+ changes are made. If the C(backup_options) value is not given,
+ the backup file is written to the C(backup) folder in the playbook
+ root directory. If the directory does not exist, it is created.
+ type: bool
+ default: 'no'
+ backup_options:
+ description:
+ - This is a dict object containing configurable options related to backup file path.
+ The value of this option is read only when C(backup) is set to I(yes), if C(backup) is set
+ to I(no) this option will be silently ignored.
+ suboptions:
+ filename:
+ description:
+ - The filename to be used to store the backup configuration. If the the filename
+ is not given it will be generated based on the hostname, current time and date
+ in format defined by <hostname>_config.<current-date>@<current-time>
+ type: str
+ dir_path:
+ description:
+ - This option provides the path ending with directory name in which the backup
+ configuration file will be stored. If the directory does not exist it will be first
+ created and the filename is either the value of C(filename) or default filename
+ as described in C(filename) options description. If the path value is not given
+ in that case a I(backup) directory will be created in the current working directory
+ and backup configuration will be copied in C(filename) within I(backup) directory.
+ type: path
+ type: dict
+"""
+
+EXAMPLES = """
+- os6_config:
+ lines: ['hostname {{ inventory_hostname }}']
+- os6_config:
+ lines:
+ - 10 permit ip 1.1.1.1 any log
+ - 20 permit ip 2.2.2.2 any log
+ - 30 permit ip 3.3.3.3 any log
+ - 40 permit ip 4.4.4.4 any log
+ - 50 permit ip 5.5.5.5 any log
+ parents: ['ip access-list test']
+ before: ['no ip access-list test']
+ match: exact
+- os6_config:
+ lines:
+ - 10 permit ip 1.1.1.1 any log
+ - 20 permit ip 2.2.2.2 any log
+ - 30 permit ip 3.3.3.3 any log
+ - 40 permit ip 4.4.4.4 any log
+ parents: ['ip access-list test']
+ before: ['no ip access-list test']
+ replace: block
+- os6_config:
+ lines: ['hostname {{ inventory_hostname }}']
+ backup: yes
+ backup_options:
+ filename: backup.cfg
+ dir_path: /home/user
+"""
+
+RETURN = """
+updates:
+ description: The set of commands that will be pushed to the remote device.
+ returned: always
+ type: list
+ sample: ['interface Te1/0/1', 'no shutdown', 'exit']
+commands:
+ description: The set of commands that will be pushed to the remote device
+ returned: always
+ type: list
+ sample: ['interface Te1/0/1', 'no shutdown', 'exit']
+saved:
+ description: Returns whether the configuration is saved to the startup
+ configuration or not.
+ returned: When not check_mode.
+ type: bool
+ sample: True
+backup_path:
+ description: The full path to the backup file
+ returned: when backup is yes
+ type: str
+ sample: /playbooks/ansible/backup/os6_config.2017-07-16@22:28:34
+"""
+from ansible.module_utils.basic import AnsibleModule
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import get_config, get_sublevel_config, NetworkConfig
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import os6_argument_spec, check_args
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import load_config, run_commands
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import WARNING_PROMPTS_RE
+from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.config import dumps
+import re
+from ansible.module_utils.six import iteritems
+from ansible.module_utils.connection import exec_command
+from ansible.module_utils._text import to_bytes
+
+
+def get_candidate(module):
+ candidate = NetworkConfig(indent=0)
+ banners = {}
+ if module.params['src']:
+ src, banners = extract_banners(module.params['src'])
+ candidate.load(src)
+ elif module.params['lines']:
+ parents = module.params['parents'] or list()
+ commands = module.params['lines'][0]
+ if (isinstance(commands, dict)) and (isinstance(commands['command'], list)):
+ candidate.add(commands['command'], parents=parents)
+ elif (isinstance(commands, dict)) and (isinstance(commands['command'], str)):
+ candidate.add([commands['command']], parents=parents)
+ else:
+ lines, banners = extract_banners(module.params['lines'])
+ candidate.add(lines, parents=parents)
+ return candidate, banners
+
+
+def extract_banners(config):
+ flag = False
+ if isinstance(config, list):
+ str1 = "\n"
+ config = str1.join(config)
+ flag = True
+ banners = {}
+ banner_cmds = re.findall(r'^banner (\w+)', config, re.M)
+ for cmd in banner_cmds:
+ regex = r'banner %s \"(.+?)\".*' % cmd
+ match = re.search(regex, config, re.S)
+ if match:
+ key = 'banner %s' % cmd
+ banners[key] = match.group(1).strip()
+
+ for cmd in banner_cmds:
+ regex = r'banner %s \"(.+?)\".*' % cmd
+ match = re.search(regex, config, re.S)
+ if match:
+ config = config.replace(str(match.group(1)), '')
+ config = re.sub(r'banner \w+ \"\"', '', config)
+ if flag:
+ config = config.split("\n")
+ return (config, banners)
+
+
+def diff_banners(want, have):
+ candidate = {}
+ for key, value in iteritems(want):
+ if value != have.get(key):
+ candidate[key] = value
+ return candidate
+
+
+def get_running_config(module):
+ contents = module.params['config']
+ if not contents:
+ contents = get_config(module)
+ contents, banners = extract_banners(contents)
+ return contents, banners
+
+
+def load_banners(module, banners):
+ result_banners = []
+ exec_command(module, 'configure terminal')
+ for each in banners:
+ delimiter = '"'
+ cmdline = ""
+ for key, value in each.items():
+ cmdline = key + " " + delimiter + value + delimiter
+ for cmd in cmdline.split("\n"):
+ rc, out, err = exec_command(module, module.jsonify({'command': cmd, 'sendonly': True}))
+ result_banners.append(cmdline)
+ exec_command(module, 'end')
+ return result_banners
+
+
+def main():
+ backup_spec = dict(
+ filename=dict(),
+ dir_path=dict(type='path')
+ )
+ argument_spec = dict(
+ lines=dict(aliases=['commands'], type='list'),
+ parents=dict(type='list'),
+
+ src=dict(type='path'),
+
+ before=dict(type='list'),
+ after=dict(type='list'),
+
+ match=dict(default='line',
+ choices=['line', 'strict', 'exact', 'none']),
+ replace=dict(default='line', choices=['line', 'block']),
+
+ update=dict(choices=['merge', 'check'], default='merge'),
+ save=dict(type='bool', default=False),
+ config=dict(),
+ backup=dict(type='bool', default=False),
+ backup_options=dict(type='dict', options=backup_spec)
+ )
+
+ argument_spec.update(os6_argument_spec)
+ mutually_exclusive = [('lines', 'src'),
+ ('parents', 'src')]
+
+ module = AnsibleModule(argument_spec=argument_spec,
+ mutually_exclusive=mutually_exclusive,
+ supports_check_mode=True)
+
+ parents = module.params['parents'] or list()
+
+ match = module.params['match']
+ replace = module.params['replace']
+
+ warnings = list()
+ check_args(module, warnings)
+ result = dict(changed=False, saved=False, warnings=warnings)
+
+ candidate, want_banners = get_candidate(module)
+ if module.params['backup']:
+ if not module.check_mode:
+ result['__backup__'] = get_config(module)
+
+ commands = list()
+ if any((module.params['lines'], module.params['src'])):
+ if match != 'none':
+ config, have_banners = get_running_config(module)
+ config = NetworkConfig(contents=config, indent=0)
+ if parents:
+ config = get_sublevel_config(config, module)
+ configobjs = candidate.difference(config, match=match, replace=replace)
+ else:
+ configobjs = candidate.items
+ have_banners = {}
+ diffbanners = diff_banners(want_banners, have_banners)
+ banners = list()
+ if diffbanners:
+ banners.append(diffbanners)
+ if configobjs or banners:
+ commands = dumps(configobjs, 'commands')
+ if ((isinstance(module.params['lines'], list)) and
+ (isinstance(module.params['lines'][0], dict)) and
+ set(['prompt', 'answer']).issubset(module.params['lines'][0])):
+ cmd = {'command': commands,
+ 'prompt': module.params['lines'][0]['prompt'],
+ 'answer': module.params['lines'][0]['answer']}
+ commands = [module.jsonify(cmd)]
+ else:
+ if commands:
+ commands = commands.split('\n')
+
+ if module.params['before']:
+ commands[:0], before_banners = extract_banners(module.params['before'])
+ if before_banners:
+ banners.insert(0, before_banners)
+
+ if module.params['after']:
+ commands_after, after_banners = extract_banners(module.params['after'])
+ commands.extend(commands_after)
+ if after_banners:
+ banners.insert(len(banners), after_banners)
+
+ if not module.check_mode and module.params['update'] == 'merge':
+ if commands:
+ load_config(module, commands)
+ if banners:
+ result_banners = load_banners(module, banners)
+ else:
+ result_banners = []
+
+ result['changed'] = True
+ result['commands'] = commands
+ result['updates'] = commands if commands else []
+ result['banners'] = result_banners
+ if result['banners']:
+ result['updates'].extend(result_banners)
+
+ if module.params['save']:
+ result['changed'] = True
+ if not module.check_mode:
+ cmd = {'command': 'copy running-config startup-config',
+ 'prompt': r'\(y/n\)\s?$', 'answer': 'y'}
+ run_commands(module, [cmd])
+ result['saved'] = True
+ else:
+ module.warn('Skipping command `copy running-config startup-config`'
+ 'due to check_mode. Configuration not copied to '
+ 'non-volatile storage')
+
+ module.exit_json(**result)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_facts.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_facts.py
new file mode 100644
index 00000000..ce439ad4
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/modules/os6_facts.py
@@ -0,0 +1,478 @@
+#!/usr/bin/python
+#
+# (c) 2020 Peter Sprygada, <psprygada@ansible.com>
+# Copyright (c) 2020 Dell Inc.
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+ANSIBLE_METADATA = {'metadata_version': '1.1',
+ 'status': ['preview'],
+ 'supported_by': 'community'}
+
+
+DOCUMENTATION = """
+---
+module: os6_facts
+author: "Abirami N (@abirami-n)"
+short_description: Collect facts from devices running Dell EMC OS6
+description:
+ - Collects a base set of device facts from a remote device that
+ is running OS6. This module prepends all of the
+ base network fact keys with C(ansible_net_<fact>). The facts
+ module will always collect a base set of facts from the device
+ and can enable or disable collection of additional facts.
+extends_documentation_fragment: dellemc.os6.os6
+options:
+ gather_subset:
+ description:
+ - When supplied, this argument will restrict the facts collected
+ to a given subset. Possible values for this argument include
+ all, hardware, config, and interfaces. Can specify a list of
+ values to include a larger subset. Values can also be used
+ with an initial C(M(!)) to specify that a specific subset should
+ not be collected.
+ type: list
+ default: [ '!config' ]
+"""
+
+EXAMPLES = """
+# Collect all facts from the device
+- os6_facts:
+ gather_subset: all
+# Collect only the config and default facts
+- os6_facts:
+ gather_subset:
+ - config
+# Do not collect hardware facts
+- os6_facts:
+ gather_subset:
+ - "!interfaces"
+"""
+
+RETURN = """
+ansible_net_gather_subset:
+ description: The list of fact subsets collected from the device.
+ returned: always.
+ type: list
+# default
+ansible_net_model:
+ description: The model name returned from the device.
+ returned: always.
+ type: str
+ansible_net_serialnum:
+ description: The serial number of the remote device.
+ returned: always.
+ type: str
+ansible_net_version:
+ description: The operating system version running on the remote device.
+ returned: always.
+ type: str
+ansible_net_hostname:
+ description: The configured hostname of the device.
+ returned: always.
+ type: str
+ansible_net_image:
+ description: The image file that the device is running.
+ returned: always
+ type: str
+# hardware
+ansible_net_memfree_mb:
+ description: The available free memory on the remote device in MB.
+ returned: When hardware is configured.
+ type: int
+ansible_net_memtotal_mb:
+ description: The total memory on the remote device in MB.
+ returned: When hardware is configured.
+ type: int
+# config
+ansible_net_config:
+ description: The current active config from the device.
+ returned: When config is configured.
+ type: str
+# interfaces
+ansible_net_interfaces:
+ description: A hash of all interfaces running on the system.
+ returned: When interfaces is configured.
+ type: dict
+ansible_net_neighbors:
+ description: The list of LLDP neighbors from the remote device.
+ returned: When interfaces is configured.
+ type: dict
+"""
+import re
+
+from ansible.module_utils.basic import AnsibleModule
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import run_commands
+from ansible_collections.dellemc.os6.plugins.module_utils.network.os6 import os6_argument_spec, check_args
+from ansible.module_utils.six import iteritems
+
+
+class FactsBase(object):
+
+ COMMANDS = list()
+
+ def __init__(self, module):
+ self.module = module
+ self.facts = dict()
+ self.responses = None
+
+ def populate(self):
+ self.responses = run_commands(self.module, self.COMMANDS, check_rc=False)
+
+ def run(self, cmd):
+ return run_commands(self.module, cmd, check_rc=False)
+
+
+class Default(FactsBase):
+
+ COMMANDS = [
+ 'show version',
+ 'show running-config | include hostname'
+ ]
+
+ def populate(self):
+ super(Default, self).populate()
+ data = self.responses[0]
+ self.facts['version'] = self.parse_version(data)
+ self.facts['serialnum'] = self.parse_serialnum(data)
+ self.facts['model'] = self.parse_model(data)
+ self.facts['image'] = self.parse_image(data)
+ hdata = self.responses[1]
+ self.facts['hostname'] = self.parse_hostname(hdata)
+
+ def parse_version(self, data):
+ facts = dict()
+ match = re.search(r'HW Version(.+)\s(\d+)', data)
+ temp, temp_next = data.split('---- ----------- ----------- -------------- --------------')
+ for en in temp_next.splitlines():
+ if en == '':
+ continue
+ match_image = re.search(r'^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)', en)
+ version = match_image.group(4)
+ facts["Version"] = list()
+ fact = dict()
+ fact['HW Version'] = match.group(2)
+ fact['SW Version'] = match_image.group(4)
+ facts["Version"].append(fact)
+ return facts
+
+ def parse_hostname(self, data):
+ match = re.search(r'\S+\s(\S+)', data, re.M)
+ if match:
+ return match.group(1)
+
+ def parse_model(self, data):
+ match = re.search(r'System Model ID(.+)\s([-A-Z0-9]*)\n', data, re.M)
+ if match:
+ return match.group(2)
+
+ def parse_image(self, data):
+ match = re.search(r'Image File(.+)\s([A-Z0-9a-z_.]*)\n', data)
+ if match:
+ return match.group(2)
+
+ def parse_serialnum(self, data):
+ match = re.search(r'Serial Number(.+)\s([A-Z0-9]*)\n', data)
+ if match:
+ return match.group(2)
+
+
+class Hardware(FactsBase):
+
+ COMMANDS = [
+ 'show memory cpu'
+ ]
+
+ def populate(self):
+ super(Hardware, self).populate()
+ data = self.responses[0]
+ match = re.findall(r'\s(\d+)\s', data)
+ if match:
+ self.facts['memtotal_mb'] = int(match[0]) // 1024
+ self.facts['memfree_mb'] = int(match[1]) // 1024
+
+
+class Config(FactsBase):
+
+ COMMANDS = ['show running-config']
+
+ def populate(self):
+ super(Config, self).populate()
+ self.facts['config'] = self.responses[0]
+
+
+class Interfaces(FactsBase):
+ COMMANDS = [
+ 'show interfaces',
+ 'show interfaces status',
+ 'show interfaces transceiver properties',
+ 'show ip int',
+ 'show lldp',
+ 'show lldp remote-device all',
+ 'show version'
+ ]
+
+ def populate(self):
+ vlan_info = dict()
+ super(Interfaces, self).populate()
+ data = self.responses[0]
+ interfaces = self.parse_interfaces(data)
+ desc = self.responses[1]
+ properties = self.responses[2]
+ vlan = self.responses[3]
+ version_info = self.responses[6]
+ vlan_info = self.parse_vlan(vlan, version_info)
+ self.facts['interfaces'] = self.populate_interfaces(interfaces, desc, properties)
+ self.facts['interfaces'].update(vlan_info)
+ if 'LLDP is not enabled' not in self.responses[4]:
+ neighbors = self.responses[5]
+ self.facts['neighbors'] = self.parse_neighbors(neighbors)
+
+ def parse_vlan(self, vlan, version_info):
+ facts = dict()
+ if "N11" in version_info:
+ match = re.search(r'IP Address(.+)\s([0-9.]*)\n', vlan)
+ mask = re.search(r'Subnet Mask(.+)\s([0-9.]*)\n', vlan)
+ vlan_id_match = re.search(r'Management VLAN ID(.+)\s(\d+)', vlan)
+ vlan_id = "Vl" + vlan_id_match.group(2)
+ if vlan_id not in facts:
+ facts[vlan_id] = list()
+ fact = dict()
+ fact['address'] = match.group(2)
+ fact['masklen'] = mask.group(2)
+ facts[vlan_id].append(fact)
+ else:
+ vlan_info, vlan_info_next = vlan.split('---------- ----- --------------- --------------- -------')
+ for en in vlan_info_next.splitlines():
+ if en == '':
+ continue
+ match = re.search(r'^(\S+)\s+(\S+)\s+(\S+)', en)
+ intf = match.group(1)
+ if intf not in facts:
+ facts[intf] = list()
+ fact = dict()
+ matc = re.search(r'^([\w+\s\d]*)\s+(\S+)\s+(\S+)', en)
+ fact['address'] = matc.group(2)
+ fact['masklen'] = matc.group(3)
+ facts[intf].append(fact)
+ return facts
+
+ def populate_interfaces(self, interfaces, desc, properties):
+ facts = dict()
+ for key, value in interfaces.items():
+ intf = dict()
+ intf['description'] = self.parse_description(key, desc)
+ intf['macaddress'] = self.parse_macaddress(value)
+ intf['mtu'] = self.parse_mtu(value)
+ intf['bandwidth'] = self.parse_bandwidth(value)
+ intf['mediatype'] = self.parse_mediatype(key, properties)
+ intf['duplex'] = self.parse_duplex(value)
+ intf['lineprotocol'] = self.parse_lineprotocol(value)
+ intf['operstatus'] = self.parse_operstatus(value)
+ intf['type'] = self.parse_type(key, properties)
+ facts[key] = intf
+ return facts
+
+ def parse_neighbors(self, neighbors):
+ facts = dict()
+ neighbor, neighbor_next = neighbors.split('--------- ------- ------------------- ----------------- -----------------')
+ for en in neighbor_next.splitlines():
+ if en == '':
+ continue
+ intf = self.parse_lldp_intf(en.split()[0])
+ if intf not in facts:
+ facts[intf] = list()
+ fact = dict()
+ if len(en.split()) > 2:
+ fact['port'] = self.parse_lldp_port(en.split()[3])
+ if (len(en.split()) > 4):
+ fact['host'] = self.parse_lldp_host(en.split()[4])
+ else:
+ fact['host'] = "Null"
+ facts[intf].append(fact)
+ return facts
+
+ def parse_interfaces(self, data):
+ parsed = dict()
+ for line in data.split('\n'):
+ if len(line) == 0:
+ continue
+ match = re.match(r'Interface Name(.+)\s([A-Za-z0-9/]*)', line, re.IGNORECASE)
+ if match:
+ key = match.group(2)
+ parsed[key] = line
+ else:
+ parsed[key] += '\n%s' % line
+ return parsed
+
+ def parse_description(self, key, desc):
+ desc_val, desc_info = "", ""
+ desc = re.split(r'[-+\s](?:-+\s)[-+\s].*', desc)
+ for desc_val in desc:
+ if desc_val:
+ for en in desc_val.splitlines():
+ if key in en:
+ match = re.search(r'^(\S+)\s+(\S+)', en)
+ if match.group(2) in ['Full', 'N/A']:
+ return "Null"
+ else:
+ return match.group(2)
+
+ def parse_macaddress(self, data):
+ match = re.search(r'Burned In MAC Address(.+)\s([A-Z0-9.]*)\n', data)
+ if match:
+ return match.group(2)
+
+ def parse_mtu(self, data):
+ match = re.search(r'MTU Size(.+)\s(\d+)\n', data)
+ if match:
+ return int(match.group(2))
+
+ def parse_bandwidth(self, data):
+ match = re.search(r'Port Speed\s*[:\s\.]+\s(\d+)\n', data)
+ if match:
+ return int(match.group(1))
+
+ def parse_duplex(self, data):
+ match = re.search(r'Port Mode\s([A-Za-z]*)(.+)\s([A-Za-z/]*)\n', data)
+ if match:
+ return match.group(3)
+
+ def parse_mediatype(self, key, properties):
+ mediatype, mediatype_next = properties.split('--------- ------- --------------------- --------------------- --------------')
+ flag = 1
+ for en in mediatype_next.splitlines():
+ if key in en:
+ flag = 0
+ match = re.search(r'^(\S+)\s+(\S+)\s+(\S+)', en)
+ if match:
+ strval = match.group(3)
+ return strval
+ if flag == 1:
+ return "null"
+
+ def parse_type(self, key, properties):
+ type_val, type_val_next = properties.split('--------- ------- --------------------- --------------------- --------------')
+ flag = 1
+ for en in type_val_next.splitlines():
+ if key in en:
+ flag = 0
+ match = re.search(r'^(\S+)\s+(\S+)\s+(\S+)', en)
+ if match:
+ strval = match.group(2)
+ return strval
+ if flag == 1:
+ return "null"
+
+ def parse_lineprotocol(self, data):
+ data = data.splitlines()
+ for d in data:
+ match = re.search(r'^Link Status\s*[:\s\.]+\s(\S+)', d)
+ if match:
+ return match.group(1)
+
+ def parse_operstatus(self, data):
+ data = data.splitlines()
+ for d in data:
+ match = re.search(r'^Link Status\s*[:\s\.]+\s(\S+)', d)
+ if match:
+ return match.group(1)
+
+ def parse_lldp_intf(self, data):
+ match = re.search(r'^([A-Za-z0-9/]*)', data)
+ if match:
+ return match.group(1)
+
+ def parse_lldp_host(self, data):
+ match = re.search(r'^([A-Za-z0-9-]*)', data)
+ if match:
+ return match.group(1)
+
+ def parse_lldp_port(self, data):
+ match = re.search(r'^([A-Za-z0-9/]*)', data)
+ if match:
+ return match.group(1)
+
+
+FACT_SUBSETS = dict(
+ default=Default,
+ hardware=Hardware,
+ interfaces=Interfaces,
+ config=Config,
+)
+
+VALID_SUBSETS = frozenset(FACT_SUBSETS.keys())
+
+
+def main():
+ """main entry point for module execution
+ """
+ argument_spec = dict(
+ gather_subset=dict(default=['!config'], type='list')
+ )
+
+ argument_spec.update(os6_argument_spec)
+
+ module = AnsibleModule(argument_spec=argument_spec,
+ supports_check_mode=True)
+
+ gather_subset = module.params['gather_subset']
+
+ runable_subsets = set()
+ exclude_subsets = set()
+
+ for subset in gather_subset:
+ if subset == 'all':
+ runable_subsets.update(VALID_SUBSETS)
+ continue
+
+ if subset.startswith('!'):
+ subset = subset[1:]
+ if subset == 'all':
+ exclude_subsets.update(VALID_SUBSETS)
+ continue
+ exclude = True
+ else:
+ exclude = False
+
+ if subset not in VALID_SUBSETS:
+ module.fail_json(msg='Bad subset')
+
+ if exclude:
+ exclude_subsets.add(subset)
+ else:
+ runable_subsets.add(subset)
+
+ if not runable_subsets:
+ runable_subsets.update(VALID_SUBSETS)
+
+ runable_subsets.difference_update(exclude_subsets)
+ runable_subsets.add('default')
+
+ facts = dict()
+ facts['gather_subset'] = list(runable_subsets)
+
+ instances = list()
+ for key in runable_subsets:
+ instances.append(FACT_SUBSETS[key](module))
+
+ for inst in instances:
+ inst.populate()
+ facts.update(inst.facts)
+
+ ansible_facts = dict()
+ for key, value in iteritems(facts):
+ key = 'ansible_net_%s' % key
+ ansible_facts[key] = value
+
+ warnings = list()
+ check_args(module, warnings)
+
+ module.exit_json(ansible_facts=ansible_facts, warnings=warnings)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/os6.py b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/os6.py
new file mode 100644
index 00000000..b1199552
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/plugins/terminal/os6.py
@@ -0,0 +1,95 @@
+#
+# (c) 2020 Red Hat Inc.
+#
+# (c) 2020 Dell Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+#
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import re
+import json
+
+from ansible.module_utils._text import to_text, to_bytes
+from ansible.plugins.terminal import TerminalBase
+from ansible.errors import AnsibleConnectionFailure
+
+
+class TerminalModule(TerminalBase):
+
+ terminal_stdout_re = [
+ re.compile(br"[\r\n]?[\w+\-\.:\/\[\]]+(?:\([^\)]+\)){,3}(?:>|#) ?$"),
+ re.compile(br"\[\w+\@[\w\-\.]+(?: [^\]])\] ?[>#\$] ?$")
+ ]
+
+ terminal_stderr_re = [
+ re.compile(br"% ?Bad secret"),
+ re.compile(br"(\bInterface is part of a port-channel\b)"),
+ re.compile(br"(\bThe maximum number of users have already been created\b)|(\bUse '-' for range\b)"),
+ re.compile(br"(?:incomplete|ambiguous) command", re.I),
+ re.compile(br"connection timed out", re.I),
+ re.compile(br"\bParameter length should be exactly 32 characters\b"),
+ re.compile(br"'[^']' +returned error code: ?\d+"),
+ re.compile(br"Invalid|invalid.*$", re.I),
+ re.compile(br"((\bout of range\b)|(\bnot found\b)|(\bCould not\b)|(\bUnable to\b)|(\bCannot\b)|(\bError\b)).*", re.I),
+ re.compile(br"((\balready exists\b)|(\bnot exist\b)|(\bnot active\b)|(\bFailed\b)|(\bIncorrect\b)|(\bnot enabled\b)|(\bDeactivate\b)).*", re.I),
+
+ ]
+
+ terminal_initial_prompt = br"\(y/n\)"
+
+ terminal_initial_answer = b"y"
+
+ terminal_inital_prompt_newline = False
+
+ def on_open_shell(self):
+ try:
+ if self._get_prompt().endswith(b'#'):
+ self._exec_cli_command(b'terminal length 0')
+ except AnsibleConnectionFailure:
+ raise AnsibleConnectionFailure('unable to set terminal parameters')
+
+ def on_become(self, passwd=None):
+ if self._get_prompt().endswith(b'#'):
+ return
+
+ cmd = {u'command': u'enable'}
+ if passwd:
+ cmd[u'prompt'] = to_text(r"[\r\n]?password:$", errors='surrogate_or_strict')
+ cmd[u'answer'] = passwd
+ try:
+ self._exec_cli_command(to_bytes(json.dumps(cmd), errors='surrogate_or_strict'))
+ except AnsibleConnectionFailure:
+ raise AnsibleConnectionFailure('unable to elevate privilege to enable mode')
+ # in os6 the terminal settings are accepted after the privilege mode
+ try:
+ self._exec_cli_command(b'terminal length 0')
+ except AnsibleConnectionFailure:
+ raise AnsibleConnectionFailure('unable to set terminal parameters')
+
+ def on_unbecome(self):
+ prompt = self._get_prompt()
+ if prompt is None:
+ # if prompt is None most likely the terminal is hung up at a prompt
+ return
+
+ if prompt.strip().endswith(b')#'):
+ self._exec_cli_command(b'end')
+ self._exec_cli_command(b'disable')
+
+ elif prompt.endswith(b'#'):
+ self._exec_cli_command(b'disable')
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/README.md
new file mode 100644
index 00000000..1e142f37
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/README.md
@@ -0,0 +1,210 @@
+AAA role
+=======
+
+This role facilitates the configuration of authentication, authorization, and acccounting (AAA), and supports the configuration of RADIUS and TACACS servers. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The AAA role requires an SSH connection for connectivity to Dell EMC OS6. You can use any of the built-in OS connection variables.
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as the value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_aaa keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``radius_server`` | dictionary | Configures the RADIUS server (see ``radius_server.*``) | os6 |
+| ``radius_server.key`` | string (required): 0,7,LINE | Configures the authentication key for the RADIUS server | os6 |
+| ``radius_server.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *radius_server.key* is 7 or 0 | os6 |
+| ``radius_server.retransmit`` | integer | Configures the number of retransmissions; field to be left blank to remove the retransimission configuration for RADIUS server authentication | os6 |
+| ``radius_server.timeout`` | integer | Configures the timeout for retransmissions, timeout must be an integer 1 and 30; field needs to be left blank to remove the timeout configurations for RADIUS server authentication | os6 |
+| ``radius_server.host`` | dictionary | Configures the RADIUS server host (see ``host.*``) | os6 |
+| ``host.ip`` | string | Configures the RADIUS server host address | os6 |
+| ``host.key`` | string (required); 0,7,LINE | Configures the authentication key | os6 |
+| ``host.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *host.key* is 7 or 0 | os6 |
+| ``host.retransmit`` | integer | Configures the number of retransmissions | os6 |
+| ``host.auth_port`` | integer | Configures the authentication port (0 to 65535) | os6 |
+| ``host.timeout`` | integer | Configures timeout for retransmissions | os6 |
+| ``host.state`` | string: present,absent | Removes the RADIUS server host if set to absent | os6 |
+| ``radius_server.acct`` | dictionary | Configures the RADIUS server acct (see ``host.*``) | os6 |
+| ``acct.ip`` | string | Configures the RADIUS server acct address | os6 |
+| ``acct.key`` | string (required); 0,7,LINE | Configures the authentication key | os6 |
+| ``acct.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *host.key* is 7 or 0 | os6 |
+| ``acct.auth_port`` | integer | Configures the authentication port (0 to 65535) | os6 |
+| ``acct.state`` | string: present,absent | Removes the RADIUS server acct if set to absent | os6 |
+| ``radius_server.auth`` | dictionary | Configures the RADIUS server auth (see ``auth.*``) | os6 |
+| ``auth.ip`` | string | Configures the RADIUS server host address | os6 |
+| ``auth.key`` | string (required); 0,7,LINE | Configures the authentication key | os6 |
+| ``auth.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *host.key* is 7 or 0 | os6 |
+| ``auth.name`` | string (required) | Configures the auth name of the RADIUS servers | os6 |
+| ``auth.usage`` | string (required) | Configures the usage type of the RADIUS servers | os6 |
+| ``auth.priority`` | integer | Configures the number of priority | os6 |
+| ``auth.retransmit`` | integer | Configures the number of retransmissions | os6 |
+| ``auth.auth_port`` | integer | Configures the authentication port (0 to 65535) | os6 |
+| ``auth.timeout`` | integer | Configures timeout for retransmissions | os6 |
+| ``auth.deadtime`` | integer | Configures the number of deadtime | os6 |
+| ``auth.attribute`` | dictionary | Configures the RADIUS server auth (see ``attribute.*``) | os6 |
+| ``attribute.id`` | integer | Configures the RADIUS server attribute ID (see ``attribute.*``) | os6 |
+| ``attribute.type`` | integer | Configures the RADIUS server attribute type based on ID | os6 |
+| ``attribute.state`` | string: present,absent | Removes the RADIUS server attribute if set to absent | os6 |
+| ``auth.state`` | string: present,absent | Removes the radius server auth if set to absent | os6 |
+| ``radius_server.attribute`` | dictionary | Configures the RADIUS server auth (see ``attribute.*``) | os6 |
+| ``attribute.id`` | integer | Configures the RADIUS server attribute ID (see ``attribute.*``) | os6 |
+| ``attribute.type`` | integer | Configures the RADIUS server attribute type based on ID | os6 |
+| ``attribute.state`` | string: present,absent | Removes the RADIUS server attribute if set to absent | os6 |
+| ``tacacs_server`` | dictionary | Configures the TACACS server (see ``tacacs_server.*``)| os6 |
+| ``tacacs_server.key`` | string (required): 0,7,LINE | Configures the authentication key for TACACS server | os6 |
+| ``tacacs_server.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *tacacs_server.key* is 7 or 0 | os6 |
+| ``tacacs_server.host`` | dictionary | Configures the TACACS server host (see ``host.*``) | os6 |
+| ``host.ip`` | string | Configures the TACACS sever host address | os6 |
+| ``host.key`` | string (required): 0,7,LINE | Configures the authentication key | os6 |
+| ``host.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *host.key* is 7 or 0 | os6 |
+| ``host.auth_port`` | integer | Configures the authentication port (0 to 65535) | os6 |
+| ``host.timeout`` | integer | Configures the timeout for retransmissions | os6 |
+| ``host.state`` | string: present,absent | Removes the TACACS server host if set to absent | os6 |
+| ``aaa_accounting`` | dictionary | Configures accounting parameters (see ``aaa_accounting.*``) | os6 |
+| ``aaa_accounting.dot1x`` | string: none,start-stop,stop-only,wait-start | Configures accounting for dot1x events | os6 |
+| ``aaa_authorization`` | dictionary | Configures authorization parameters (see ``aaa_authorization.*``) | os6 |
+| ``aaa_authorization.exec`` | list | Configures authorization for EXEC (shell) commands (see ``exec.*``) | os6 |
+| ``exec.authorization_list_name`` | string | Configures named authorization list for EXEC commands | os6 |
+| ``exec.authorization_method`` | string: none | Configures no authorization of EXEC commands | os6 |
+| ``exec.use_data`` | string: local,tacacs, radius | Configures data used for authorization | os6 |
+| ``exec.state`` | string: present,absent | Removes the named authorization list for the EXEC commands if set to absent | os6 |
+| ``aaa_authorization.network`` | string: none,radius,ias | Configures authorization for network events | os6 |
+| ``aaa_authentication.auth_list`` | list | Configures named authentication list for hosts (see ``host.*``) | os6 |
+| ``auth_list.name`` | string | Configures named authentication list | os6 |
+| ``auth_list.login_or_enable`` | string: enable,login | Configures authentication list for login or enable | os6 |
+| ``auth_list.server`` | string: radius,tacacs | Configures AAA to use this list of all server hosts | os6 |
+| ``auth_list.use_password`` | string: line,local,enable,none | Configures password to use for authentication | os6 |
+| ``auth_list.state`` | string: present,absent | Removes the named authentication list if set to absent | os6 |
+| ``aaa_authentication.dot1x`` | string: none,radius,ias | Configures authentication for dot1x events | os6 |
+| ``aaa_server`` | dictionary | Configures the AAA server (see ``aaa_server.*``) | os6 |
+| ``radius`` | dictionary | Configures the RADIUS server (see ``radius.*``) | os6 |
+| ``dynamic_author`` | dictionary | Configures the RADIUS server (see ``dynamic_author.*``) | os6 |
+| ``dynamic_author.auth_type`` | string | Configures the authentication type for the radius server | os6 |
+| ``dynamic_author.client`` | list | Configures the client for the RADIUS server | os6 |
+| ``client.ip`` | string | Configures the client IP for the radius server | os6 |
+| ``client.key`` | string (required): 0,7,LINE | Configures the authentication key for the RADIUS server | os6 |
+| ``client.key_string`` | string | Configures the user key string; variable takes the hidden user key string if value is 7; variable takes the unencrypted user key (clear-text) if value is 0; variable supported only if *radius_server.key* is 7 or 0 | os6 |
+| ``client.state`` | string: present,absent | Removes the accounting of client if set to absent | os6 |
+| ``dynamic_author.state`` | string: present,absent | Removes the accounting of client if set to absent | os6 |
+> **NOTE**: Asterisk (*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used. |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable. |
+| ``ansible_network_os`` | yes | os6, null\* | This value is used to load the correct terminal and cliconf plugins to communicate with the remote device. |
+
+> **NOTE**: Asterisk (*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_aaa* role to configure AAA for RADIUS and TACACS servers. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with the corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in the *build_dir* path. By default, it is set to false and it writes a simple playbook that only references the *os6_aaa* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_aaa:
+ radius_server:
+ key: 7
+ key_string: 9ea8ec421c2e2e5bec757f44205015f6d81e83a4f0aa52fb
+ retransmit: 5
+ timeout: 25
+ host:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: aaa
+ retransmit: 5
+ auth_port: 3
+ timeout: 2
+ state: present
+ tacacs_server:
+ key: 7
+ key_string: 9ea8ec421c2e2e5bec757f44205015f6d81e83a4f0aa52fa
+ host:
+ - ip: 10.0.0.50
+ key: 0
+ key_string: aaa
+ auth_port: 3
+ timeout: 2
+ state: present
+ aaa_accounting:
+ dot1x: none
+ aaa_authorization:
+ exec:
+ - authorization_list_name: aaa
+ authorization_method: none
+ use_data: local
+ state: present
+ network: radius
+ aaa_authentication:
+ auth_list:
+ - name: default
+ login_or_enable: login
+ server: radius
+ use_password: local
+ state: present
+ - name: console
+ server: tacacs
+ login_or_enable: login
+ use_password: local
+ state: present
+ aaa_server:
+ radius:
+ dynamic_author:
+ auth_type:
+ client:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: aaskjsksdkjsdda
+ state: present
+ - ip: 10.0.0.2
+ key:
+ key_string: aaskjsksdkjsdda
+ state: present
+ state: present
+
+
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_aaa
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/defaults/main.yml
new file mode 100644
index 00000000..40a48c74
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/defaults/main.yml
@@ -0,0 +1,16 @@
+---
+# defaults file for dellemc.os6.os6_aaa
+attribute_type:
+ mandatory: mandatory
+ on_for_login_auth: on-for-login-auth
+ include_in_access_req: include-in-access-req
+ mac: "mac format"
+ mac_ietf: "mac format ietf"
+ mac_ietf_lower_case: "mac format ietf lower-case"
+ mac_ietf_upper_case: "mac format ietf upper-case"
+ mac_legacy: "mac format legacy"
+ mac_legacy_lower_case: "mac format legacy lower-case"
+ mac_legacy_upper_case: "mac format legacy upper-case"
+ mac_unformatted: "mac format unformatted"
+ mac_unformatted_lower_case: "mac format unformatted lower-case"
+ mac_unformatted_upper_case: "mac format unformatted upper-case" \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/handlers/main.yml
new file mode 100644
index 00000000..a0318e7f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_aaa
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/meta/main.yml
new file mode 100644
index 00000000..b1793647
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/meta/main.yml
@@ -0,0 +1,17 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_aaa role facilitates the configuration of Authentication Authorization Acccounting (AAA) attributes in devices running Dell EMC Networking Operating Systems.
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tasks/main.yml
new file mode 100644
index 00000000..6f7faf21
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating AAA configuration for os6"
+ template:
+ src: os6_aaa.j2
+ dest: "{{ build_dir }}/aaa6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning AAA configuration for os6"
+ os6_config:
+ src: os6_aaa.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/templates/os6_aaa.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/templates/os6_aaa.j2
new file mode 100644
index 00000000..54188456
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/templates/os6_aaa.j2
@@ -0,0 +1,437 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{#############################################
+
+Purpose:
+Configure AAA commands for os6 Devices
+
+os6_aaa:
+ tacacs_server:
+ key: 7
+ key_string: 9ea8ec421c2e2e5bec757f44205015f6d81e83a4f0aa52fa
+ timeout: 10
+ host:
+ - ip: 10.0.0.50
+ key: 0
+ key_string: aaa
+ port: 3
+ timeout: 2
+ state: present
+ radius_server:
+ key: 7
+ key_string: 9ea8ec421c2e2e5bec757f44205015f6d81e83a4f0aa52fb
+ retransmit: 5
+ timeout: 10
+ deadtime: 2000
+ host:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: aaa
+ name: radius
+ retransmit: 5
+ auth_port: 3
+ timeout: 2
+ state: present
+ acct:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: aasdvsdvfssfsfa
+ name: radius
+ auth-port: 2
+ state: present
+ auth:
+ - ip: 10.0.0.2
+ key: 0
+ key_string: asdnksfnfnksnddjknsdn
+ name: radius
+ usage: all
+ priority: 2
+ timeout: 2
+ retransmit: 5
+ auth_port: 3
+ deadtime: 6
+ attribute:
+ - id: 6
+ type: {{attribute_type.mandatory}}
+ state: present
+ - id: 31
+ type: {{attribute_type.mac_ietf_lower_case}}
+ state: present
+ state: present
+ attribute:
+ - id: 6
+ type: {{attribute_type.mandatory}}
+ state: present
+ - id: 31
+ type: {{attribute_type.mac_ietf_lower_case}}
+ state: present
+
+
+ aaa_authentication:
+ auth_list:
+ - name: default
+ login_or_enable: login
+ server: tacacs
+ use_password: local
+ state: present
+ - name: console
+ server: radius
+ login_or_enable: login
+ use_password: local
+ dot1x: none
+ aaa_authorization:
+ exec:
+ - authorization_list_name: aaa
+ authorization_method: none
+ use_data: local
+ state: present
+ network: radius
+ aaa_accounting:
+ dot1x: none
+ aaa_server:
+ radius:
+ dynamic_author:
+ auth_type: all
+ client:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: aaa
+ state: present
+ state: present
+
+##################################################}
+{% if os6_aaa is defined and os6_aaa %}
+{% for key in os6_aaa.keys() %}
+ {% set aaa_vars = os6_aaa[key] %}
+ {% if key == "tacacs_server" %}
+ {% set server = "tacacs-server" %}
+ {% endif %}
+ {% if key == "radius_server" %}
+ {% set server = "radius server" %}
+ {% endif %}
+ {% if server is defined and server %}
+ {% if aaa_vars %}
+ {% set item = aaa_vars %}
+ {% if item.timeout is defined %}
+ {% if item.timeout %}
+{{ server }} timeout {{ item.timeout }}
+ {% else %}
+no {{ server }} timeout
+ {% endif %}
+ {% endif %}
+ {% if item.retransmit is defined and server == "radius server" %}
+ {% if item.retransmit %}
+{{ server }} retransmit {{ item.retransmit }}
+ {% else %}
+no {{ server }} retransmit
+ {% endif %}
+ {% endif %}
+ {% if item.deadtime is defined and server == "radius server" %}
+ {% if item.deadtime %}
+{{ server }} deadtime {{ item.deadtime }}
+ {% else %}
+no {{ server }} deadtime
+ {% endif %}
+ {% endif %}
+ {% if item.key is defined %}
+ {% if item.key == 0 or item.key == 7 %}
+ {% if item.key_string is defined and item.key_string%}
+{{ server }} key {{ item.key }} {{ item.key_string }}
+ {% endif %}
+ {% elif item.key %}
+{{ server }} key {{ item.key }}
+ {% else %}
+no {{ server }} key
+ {% endif %}
+ {% endif %}
+ {% if item.host is defined and item.host %}
+ {% for hostlist in item.host %}
+ {% if hostlist.ip is defined and hostlist.ip %}
+ {% if hostlist.state is defined and hostlist.state == "absent" %}
+ {% if server == "tacacs-server" %}
+no {{ server }} host {{ hostlist.ip }}
+ {% else %}
+no {{ server }} {{ hostlist.ip }}
+ {% endif %}
+ {% else %}
+ {% if server == "tacacs-server" %}
+{{ server }} host {{ hostlist.ip }}
+ {% if (hostlist.key is defined) %}
+ {% if hostlist.key == 0 or hostlist.key == 7 %}
+ {% if hostlist.key_string is defined and hostlist.key_string %}
+key {{ hostlist.key }} {{ hostlist.key_string }}
+ {% endif %}
+ {% elif hostlist.key %}
+key {{ hostlist.key }}
+ {% else %}
+no key
+ {% endif %}
+ {% endif %}
+ {% if (hostlist.timeout is defined and hostlist.timeout) %}
+timeout {{ hostlist.timeout }}
+ {% endif %}
+ {% if (hostlist.auth_port is defined and hostlist.auth_port) %}
+port {{ hostlist.auth_port }}
+ {% endif %}
+exit
+ {% elif server == "radius server" %}
+{{ server }} {{ hostlist.ip }}
+ {% if (hostlist.key is defined) %}
+ {% if hostlist.key == 0 or hostlist.key == 7 %}
+ {% if hostlist.key_string is defined and hostlist.key_string %}
+key {{ hostlist.key }} {{ hostlist.key_string }}
+ {% endif %}
+ {% elif hostlist.key %}
+key {{ hostlist.key }}
+ {% else %}
+no key
+ {% endif %}
+ {% endif %}
+ {% if (hostlist.name is defined) %}
+ {% if (hostlist.name) %}
+name "{{ hostlist.name }}"
+ {% else %}
+no name
+ {% endif %}
+ {% endif %}
+ {% if (hostlist.timeout is defined and hostlist.timeout) %}
+timeout {{ hostlist.timeout }}
+ {% endif %}
+ {% if (hostlist.auth_port is defined and hostlist.auth_port) %}
+auth-port {{ hostlist.auth_port }}
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if item.acct is defined and item.acct and server == "radius server" %}
+ {% for acctlist in item.acct %}
+ {% if acctlist.ip is defined and acctlist.ip %}
+ {% if acctlist.state is defined and acctlist.state == "absent" %}
+no {{ server }} acct {{ acctlist.ip }}
+ {% else %}
+{{ server }} acct {{ acctlist.ip }}
+ {% if (acctlist.key is defined) %}
+ {% if acctlist.key == 0 or acctlist.key == 7 %}
+ {% if acctlist.key_string is defined and acctlist.key_string %}
+key {{ acctlist.key }} {{ acctlist.key_string }}
+ {% endif %}
+ {% elif acctlist.key %}
+key {{ acctlist.key }}
+ {% else %}
+no key
+ {% endif %}
+ {% endif %}
+ {% if (acctlist.name is defined) %}
+ {% if (acctlist.name) %}
+name "{{ acctlist.name }}"
+ {% else %}
+no name
+ {% endif %}
+ {% endif %}
+ {% if (acctlist.auth_port is defined and acctlist.auth_port) %}
+acct-port {{ acctlist.auth_port }}
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if item.auth is defined and item.auth and server == "radius server" %}
+ {% for authlist in item.auth %}
+ {% if authlist.ip is defined and authlist.ip %}
+ {% if authlist.state is defined and authlist.state == "absent" %}
+no {{ server }} auth {{ authlist.ip }}
+ {% else %}
+{{ server }} auth {{ authlist.ip }}
+ {% if (authlist.key is defined) %}
+ {% if authlist.key == 0 or authlist.key == 7 %}
+ {% if authlist.key_string is defined and authlist.key_string %}
+key {{ authlist.key }} {{ authlist.key_string }}
+ {% endif %}
+ {% elif authlist.key %}
+key {{ authlist.key }}
+ {% else %}
+no key
+ {% endif %}
+ {% endif %}
+ {% if (authlist.name is defined) %}
+ {% if (authlist.name) %}
+name "{{ authlist.name }}"
+ {% else %}
+no name
+ {% endif %}
+ {% endif %}
+ {% if (authlist.auth_port is defined and authlist.auth_port) %}
+auth-port {{ authlist.auth_port }}
+ {% endif %}
+ {% if (authlist.priority is defined and authlist.priority) %}
+priority {{ authlist.priority }}
+ {% endif %}
+ {% if (authlist.timeout is defined and authlist.timeout) %}
+timeout {{ authlist.timeout }}
+ {% endif %}
+ {% if (authlist.retransmit is defined and authlist.retransmit) %}
+retransmit {{ authlist.retransmit }}
+ {% endif %}
+ {% if (authlist.deadtime is defined and authlist.deadtime) %}
+deadtime {{ authlist.deadtime }}
+ {% endif %}
+ {% if (authlist.usage is defined and authlist.usage) %}
+usage {{ authlist.usage }}
+ {% endif %}
+ {% if authlist.attribute is defined and authlist.attribute and server == "radius server" %}
+ {% for attributelist in authlist.attribute %}
+ {% if attributelist.id is defined and attributelist.id and attributelist.type is defined %}
+ {% if attributelist.state is defined and attributelist.state == "absent" %}
+no attribute {{ attributelist.id }} {{ attributelist.type }}
+ {% else %}
+ {% if attributelist.type %}
+attribute {{ attributelist.id }} {{ attributelist.type }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if item.attribute is defined and item.attribute and server == "radius server" %}
+ {% for attributelist in item.attribute %}
+ {% if attributelist.id is defined and attributelist.id and attributelist.type is defined %}
+ {% if attributelist.state is defined and attributelist.state == "absent" %}
+no {{ server }} attribute {{ attributelist.id }} {{ attributelist.type }}
+ {% else %}
+ {% if attributelist.type %}
+{{ server }} attribute {{ attributelist.id }} {{ attributelist.type }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+{% endfor %}
+ {% if os6_aaa.aaa_authentication is defined and os6_aaa.aaa_authentication %}
+ {% if os6_aaa.aaa_authentication.auth_list is defined and os6_aaa.aaa_authentication.auth_list %}
+ {% for auth_list in os6_aaa.aaa_authentication.auth_list %}
+ {% if auth_list.login_or_enable is defined and auth_list.login_or_enable %}
+ {% if auth_list.name is defined and auth_list.name %}
+ {% if auth_list.state is defined and auth_list.state == "absent" %}
+no aaa authentication {{ auth_list.login_or_enable }} {{ auth_list.name }}
+ {% else %}
+ {% if auth_list.server is defined and auth_list.server %}
+ {% if auth_list.use_password is defined and auth_list.use_password %}
+aaa authentication {{ auth_list.login_or_enable }} "{{ auth_list.name }}" {{ auth_list.server }} {{ auth_list.use_password }}
+ {% else %}
+aaa authentication {{ auth_list.login_or_enable }} "{{ auth_list.name }}" {{ auth_list.server }}
+ {% endif %}
+ {% else %}
+ {% if auth_list.use_password is defined and auth_list.use_password %}
+aaa authentication {{ auth_list.login_or_enable }} "{{ auth_list.name }}" {{ auth_list.use_password }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if os6_aaa.aaa_authentication.dot1x is defined %}
+ {% set aaa_authentication = os6_aaa.aaa_authentication %}
+ {% if aaa_authentication.dot1x == "none" or aaa_authentication.dot1x == "radius" or aaa_authentication.dot1x == "ias" %}
+aaa authentication dot1x default {{ aaa_authentication.dot1x }}
+ {% else %}
+no aaa authentication dot1x default
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% if os6_aaa.aaa_authorization is defined and os6_aaa.aaa_authorization %}
+ {% set aaa_authorization = os6_aaa.aaa_authorization %}
+ {% if aaa_authorization.exec is defined and aaa_authorization.exec %}
+ {% for command in aaa_authorization.exec %}
+ {% if command.authorization_list_name is defined and command.authorization_list_name %}
+ {% if command.state is defined and command.state == "absent" %}
+no aaa authorization exec {{ command.authorization_list_name }}
+ {% else %}
+ {% if command.use_data is defined and command.use_data %}
+ {% if command.authorization_method is defined and command.authorization_method %}
+aaa authorization exec "{{ command.authorization_list_name }}" {{ command.use_data }} {{ command.authorization_method }}
+ {% else %}
+aaa authorization exec "{{ command.authorization_list_name }}" {{ command.use_data }}
+ {% endif %}
+ {% else %}
+ {% if command.authorization_method is defined and command.authorization_method %}
+aaa authorization exec "{{ command.authorization_list_name }}" {{ command.authorization_method }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if os6_aaa.aaa_authorization.network is defined %}
+ {% set aaa_authorization = os6_aaa.aaa_authorization %}
+ {% if aaa_authorization.network %}
+aaa authorization network default {{ aaa_authorization.network }}
+ {% else %}
+no aaa authorization network default radius
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% if os6_aaa.aaa_accounting is defined and os6_aaa.aaa_accounting %}
+ {% set aaa_accounting = os6_aaa.aaa_accounting %}
+ {% if aaa_accounting.dot1x is defined %}
+ {% if aaa_accounting.dot1x == "none" %}
+aaa accounting dot1x default none
+ {% elif aaa_accounting.dot1x %}
+aaa accounting dot1x default {{ aaa_accounting.dot1x }} radius
+ {% else %}
+no aaa accounting dot1x default
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% if os6_aaa.aaa_server is defined and os6_aaa.aaa_server %}
+ {% set aaa_server = os6_aaa.aaa_server %}
+ {% if aaa_server.radius is defined and aaa_server.radius %}
+ {% if aaa_server.radius.dynamic_author is defined and aaa_server.radius.dynamic_author %}
+ {% set dynamic_author = aaa_server.radius.dynamic_author %}
+ {% if dynamic_author.state is defined %}
+ {% if dynamic_author.state == "absent" %}
+no aaa server radius dynamic-author
+ {% else %}
+aaa server radius dynamic-author
+ {% if dynamic_author.client is defined and dynamic_author.client %}
+ {% for client in dynamic_author.client %}
+ {% if ((client.state is defined and client.state) and (client.ip is defined and client.ip)) %}
+ {% if client.state == "absent" %}
+no client {{ client.ip }}
+ {% else %}
+ {% if client.key is defined and (client.key == 0 or client.key == 7) %}
+ {% if client.key_string is defined and client.key_string %}
+client {{ client.ip }} server-key {{ client.key }} {{ client.key_string }}
+ {% endif %}
+ {% elif client.key_string is defined and client.key_string %}
+client {{ client.ip }} server-key {{ client.key_string }}
+ {% else %}
+client {{ client.ip }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if dynamic_author.auth_type is defined %}
+ {% if dynamic_author.auth_type %}
+auth-type {{ dynamic_author.auth_type }}
+ {% else %}
+no auth-type
+ {% endif %}
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/main.os6.yaml
new file mode 100644
index 00000000..9fceb389
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/main.os6.yaml
@@ -0,0 +1,111 @@
+---
+# vars file for dellemc.os6.os6_aaa,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_aaa:
+ tacacs_server:
+ key: 0
+ key_string: aacdsvdfsvfsfvfsv
+ host:
+ - ip: 30.0.0.10
+ key:
+ key_string: ahvksjvskjvbkjsd
+ auth_port: 6
+ timeout: 6
+ state: absent
+ radius_server:
+ key: 0
+ key_string: ahvksjvskjvb
+ retransmit: 4
+ timeout: 5
+ host:
+ - ip: 40.0.0.10
+ key: 0
+ key_string: ahvksjvskjvbkjsd
+ retransmit: 4
+ auth_port: 6
+ timeout: 6
+ state: absent
+ acct:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: asvkbjfssvfsf
+ auth_port: 2
+ state: present
+ auth:
+ - ip: 10.0.0.2
+ key: 0
+ key_string: asdnksfnfnksnddjknsdn
+ name: radius
+ usage: all
+ priority: 2
+ timeout: 2
+ retransmit: 5
+ auth_port: 3
+ deadtime: 6
+ attribute:
+ - id: 6
+ type: "{{attribute_type.mandatory}}"
+ state: present
+ - id: 31
+ type: "{{attribute_type.mac_ietf_lower_case}}"
+ state: present
+ - id: 31
+ type: "{{attribute_type.mac}}"
+ state: absent
+ state: present
+ attribute:
+ - id: 6
+ type: "{{attribute_type.mandatory}}"
+ state: present
+ - id: 31
+ type: "{{attribute_type.mac_ietf_lower_case}}"
+ state: present
+
+
+ aaa_authentication:
+ auth_list:
+ - name: default
+ login_or_enable: login
+ server: tacacs
+ use_password: local
+ state: absent
+ - name: console
+ server: radius
+ login_or_enable: login
+ use_password: local
+ state: absent
+ - name: tacp
+ server: tacacs
+ login_or_enable: enable
+ use_password: enable
+ state: absent
+ dot1x: none
+ aaa_authorization:
+ exec:
+ - authorization_list_name: aaa
+ authorization_method: none
+ use_data: local
+ state: absent
+ network: radius
+ aaa_accounting:
+ dot1x: none
+ aaa_server:
+ radius:
+ dynamic_author:
+ auth_type:
+ client:
+ - ip: 10.0.0.1
+ key: 0
+ key_string: aaskjsksdkjsdda
+ state: present
+ - ip: 10.0.0.2
+ key:
+ key_string: aaskjsksdkjsdda
+ state: present
+ - ip: 10.0.0.3
+ key:
+ key_string:
+ state: present
+ state: present \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/test.yaml
new file mode 100644
index 00000000..e0cf41fc
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_aaa
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/vars/main.yml
new file mode 100644
index 00000000..dedb2f7d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_aaa/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_aaa \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/README.md
new file mode 100644
index 00000000..f8d97abe
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/README.md
@@ -0,0 +1,118 @@
+ACL role
+========
+
+This role facilitates the configuration of an access-control list (ACL). It supports the configuration of different types of ACLs (standard and extended) for both IPv4 and IPv6, and assigns the access-class to the line terminals. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The ACL role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_acl keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``type`` | string (required): ipv4, ipv6, mac | Configures the L3 (IPv4/IPv6) or L2 (MAC) access-control list | os6 |
+| ``name`` | string (required) | Configures the name of the access-control list | os6 |
+| ``remark`` | list | Configures the ACL remark (see ``remark.*``) | os6 |
+| ``remark.description`` | string | Configures the remark description | os6 |
+| ``remark.state`` | string: absent,present\* | Deletes the configured remark for an ACL entry if set to absent | os6 |
+| ``entries`` | list | Configures ACL rules (see ``seqlist.*``) | os6 |
+| ``entries.number`` | integer (required) | Specifies the sequence number of the ACL rule | os6 |
+| ``entries.seq_number`` | integer (required) | Specifies the sequence number of the ACL rule | os6 |
+| ``entries.permit`` | boolean (required): true,false | Specifies the rule to permit packets if set to true; specifies to reject packets if set to false | os6 |
+| ``entries.protocol`` | string (required) | Specifies the type of protocol or the protocol number to filter | os6 |
+| ``entries.match_condition`` | string (required): any/ \<srcip>/ \<dstip>/ \<srcmask>/\<dstmask> | Specifies the command in string format | os6 |
+| ``entries.state`` | string: absent,present\* | Deletes the rule from the ACL if set to absent | os6 |
+| ``stage_ingress`` | list | Configures ingress ACL to the interface (see ``stage_ingress.*``) | os6 |
+| ``stage_ingress.name`` | string (required) | Configures the ingress ACL filter to the interface with this interface name | os6 |
+| ``stage_ingress.state`` | string: absent,present\* | Deletes the configured ACL from the interface if set to absent | os6 |
+| ``stage_ingress.seq_number`` | integer | Configure the sequence number (greater than 0) to rank precedence for this interface and direction | os6 |
+| ``stage_egress`` | list | Configures egress ACL to the interface (see ``stage_egress.*``) | os6 |
+| ``stage_egress.name`` | string (required) | Configures the egress ACL filter to the interface with this interface name | os6 |
+| ``stage_egress.state`` | string: absent,present\* | Deletes the configured egress ACL from the interface if set to absent | os6 |
+| ``stage_egress.seq_number`` | integer | Configure the sequence number (greater than 0) to rank precedence for this interface and direction | os6 |
+| ``state`` | string: absent,present\* | Deletes the ACL if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC network roles require connection information to establish communication with the nodes in inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-------------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used. |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (_*_) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_acl* role to configure different types of ACLs (standard and extended) for both IPv4 and IPv6 and assigns the access-class to the line terminals. The example creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with the corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, it generates the configuration commands as a .part file in the *build_dir* path. By default it is set to false. It writes a simple playbook that only references the *os6_acl* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+ os6_acl:
+ - type: ipv4
+ name: ssh-only
+ remark:
+ - description: "ipv4remark"
+ state: present
+ entries:
+ - number: 4
+ seq_number: 1000
+ permit: true
+ protocol: tcp
+ match_condition: any any
+ state: present
+ stage_ingress:
+ - name: vlan 30
+ state: present
+ seq_number: 50
+ stage_egress:
+ - name: vlan 40
+ state: present
+ seq_number: 40
+ state: present
+
+**Simple playbook to setup system - switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_acl
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/defaults/main.yml
new file mode 100644
index 00000000..92931d8b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_acl \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/handlers/main.yml
new file mode 100644
index 00000000..eeab7f6f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_acl \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/meta/main.yml
new file mode 100644
index 00000000..47a413fd
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/meta/main.yml
@@ -0,0 +1,17 @@
+# Copyright (c) 2017-2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_acl role facilitates the configuration of access control list (ACL) attributes in devices running Dell EMC Networking Operating Systems.
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tasks/main.yml
new file mode 100644
index 00000000..fdc6e09a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating ACL configuration for os6"
+ template:
+ src: os6_acl.j2
+ dest: "{{ build_dir }}/acl6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning ACL configuration for os6"
+ os6_config:
+ src: os6_acl.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/templates/os6_acl.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/templates/os6_acl.j2
new file mode 100644
index 00000000..3d47c2eb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/templates/os6_acl.j2
@@ -0,0 +1,202 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{####################################
+
+Purpose:
+Configure ACL commands for os6 devices
+
+os6_acl:
+ - name: macl-implicit
+ type: mac
+ remark:
+ - description: 1
+ number: 3
+ state: present
+ entries:
+ - number: 4
+ seq_number: 1000
+ permit: false
+ protocol:
+ match_condition: any 0000.1F3D.084B 0000.0000.0000
+ state: present
+ - number: 5
+ seq_number: 1001
+ permit: true
+ protocol:
+ match_condition: any any 0x0806
+ state: present
+ - number: 6
+ seq_number: 2002
+ permit: deny
+ protocol:
+ match_condition: any any
+ state:
+ stage_ingress:
+ - name: vlan 30
+ state: present
+ seq_number: 40
+ - name: vlan 50
+ state: present
+ seq_number: 50
+ stage_egress:
+ - name:
+ state:
+ seq_number:
+ state: present
+#####################################}
+{% if os6_acl is defined and os6_acl %}
+{% set acl_dict = {} %}
+ {% for val in os6_acl %}
+ {% if val.name is defined and val.name %}
+ {% if val.state is defined and val.state == "absent" %}
+ {% if val.type is defined and val.type == "ipv4" %}
+no ip access-list {{ val.name }}
+ {% elif val.type is defined and val.type == "ipv6" %}
+no ipv6 access-list {{ val.name }}
+ {% elif val.type is defined and val.type == "mac" %}
+no mac access-list extended {{ val.name }}
+ {% endif %}
+ {% else %}
+ {% if val.type is defined and (val.type == "ipv4" or val.type == "ipv6" or val.type == "mac") %}
+ {% if val.type == "mac" %}
+{{ val.type }} access-list extended {{ val.name }}
+ {% elif val.type == "ipv4" %}
+ip access-list {{ val.name }}
+ {% else %}
+{{ val.type }} access-list {{ val.name }}
+ {% endif %}
+ {% if val.remark is defined and val.remark %}
+ {% for remark in val.remark %}
+ {% if remark.description is defined and remark.description %}
+ {% if remark.state is defined and remark.state == "absent" %}
+no remark {{ remark.description }}
+ {% else %}
+remark {{ remark.description }}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if val.entries is defined and val.entries %}
+ {% for rule in val.entries %}
+ {% if rule.seq_number is defined and rule.seq_number %}
+ {% if rule.state is defined and rule.state == "absent" %}
+no {{ rule.seq_number }}
+ {% else %}
+{% set seq_num = rule.seq_number %}
+ {% if rule.permit is defined %}
+ {% if rule.permit %}
+ {% set is_permit = "permit" %}
+ {% else %}
+ {% set is_permit = "deny" %}
+ {% endif %}
+ {% endif %}
+ {% if rule.protocol is defined and rule.protocol %}
+ {% set protocol = rule.protocol %}
+ {% else %}
+ {% set protocol = "" %}
+ {% endif %}
+ {% if rule.protocol is defined and rule.protocol and rule.match_condition is defined and rule.match_condition %}
+{{ seq_num }} {{ is_permit }} {{ protocol }} {{ rule.match_condition }}
+ {% elif rule.protocol is defined and rule.protocol %}
+{{ seq_num }} {{ is_permit }} {{ protocol }}
+ {% elif rule.match_condition is defined and rule.match_condition %}
+{{ seq_num }} {{ is_permit }} {{ rule.match_condition }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+exit
+ {% if val.stage_ingress is defined and val.stage_ingress %}
+ {% for intf in val.stage_ingress %}
+ {% if intf.state is defined and intf.state == "absent" %}
+ {% if intf.name is defined and intf.name %}
+{% set key = intf.name %}
+{% set key_val_list = acl_dict.setdefault(key, []) %}
+ {% if val.type is defined and val.type == "mac" %}
+{% set value = ("no mac access-group " + val.name + " " + "in") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% elif val.type is defined and val.type == "ipv4" %}
+{% set value = ("no ip access-group " + val.name + " " + "in") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% endif %}
+ {% endif %}
+ {% else %}
+ {% if intf.name is defined and intf.name %}
+{% set key = intf.name %}
+{% set key_val_list = acl_dict.setdefault(key, []) %}
+ {% if val.type is defined and val.type == "mac" %}
+ {% if intf.seq_number is defined and intf.seq_number %}
+{% set value1 = intf.seq_number|string %}
+{% set value = ("mac access-group " + val.name + " " + "in " + value1) %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% else %}
+{% set value = ("mac access-group " + val.name + " " + "in ") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% endif %}
+ {% elif val.type is defined and val.type == "ipv4" %}
+ {% if intf.seq_number is defined and intf.seq_number %}
+{% set value1 = intf.seq_number|string %}
+{% set value = ("ip access-group " + val.name + " " + "in " + value1) %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% else %}
+{% set value = ("ip access-group " + val.name + " " + "in ") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if val.stage_egress is defined and val.stage_egress %}
+ {% for intf in val.stage_egress %}
+ {% if intf.state is defined and intf.state == "absent" %}
+ {% if intf.name is defined and intf.name %}
+{% set key = intf.name %}
+{% set key_val_list = acl_dict.setdefault(key, []) %}
+ {% if val.type is defined and val.type == "mac" %}
+{% set value = ("no mac access-group " + val.name + " " + "out") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% elif val.type is defined and val.type == "ipv4" %}
+{% set value = ("no ip access-group " + val.name + " " + "out") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% endif %}
+ {% endif %}
+ {% else %}
+ {% if intf.name is defined and intf.name %}
+{% set key = intf.name %}
+{% set key_val_list = acl_dict.setdefault(key, []) %}
+ {% if val.type is defined and val.type == "mac" %}
+ {% if intf.seq_number is defined and intf.seq_number %}
+{% set value1 = intf.seq_number|string %}
+{% set value = ("mac access-group " + val.name + " " + "out " + value1) %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% else %}
+{% set value = ("mac access-group " + val.name + " " + "out ") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% endif %}
+ {% elif val.type is defined and val.type == "ipv4" %}
+ {% if intf.seq_number is defined and intf.seq_number %}
+{% set value1 = intf.seq_number|string %}
+{% set value = ("ip access-group " + val.name + " " + "out " + value1) %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% else %}
+{% set value = ("ip access-group " + val.name + " " + "out ") %}
+{% set acl_val = acl_dict[key].append(value) %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% for intf_name, acl_list in acl_dict.items() %}
+interface {{ intf_name }}
+ {% for acl in acl_list %}
+{{ acl }}
+ {% endfor %}
+exit
+ {% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/main.os6.yaml
new file mode 100644
index 00000000..43c3f17c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/main.os6.yaml
@@ -0,0 +1,43 @@
+---
+# vars file for dellemc.os6.os6_acl,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+
+os6_acl:
+ - name: macl-implicit
+ type: mac
+ remark:
+ - description: 1
+ state: present
+ entries:
+ - number: 4
+ seq_number: 1000
+ permit: false
+ protocol:
+ match_condition: any 0000.1F3D.084B 0000.0000.0000
+ state: present
+ - number: 5
+ seq_number: 1001
+ permit: true
+ protocol:
+ match_condition: any any 0x0806
+ state: present
+ - number: 6
+ seq_number: 2002
+ permit: deny
+ protocol:
+ match_condition: any any
+ state:
+ stage_ingress:
+ - name: vlan 30
+ state: present
+ seq_number: 40
+ - name: vlan 50
+ state: present
+ seq_number: 50
+ stage_egress:
+ - name: vlan 40
+ state: present
+ seq_number:
+ state: present
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/test.yaml
new file mode 100644
index 00000000..f8ccf3be
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_acl
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/vars/main.yml
new file mode 100644
index 00000000..f294863a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_acl/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_acl
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/README.md
new file mode 100644
index 00000000..8b7b6f6c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/README.md
@@ -0,0 +1,153 @@
+BGP role
+========
+
+This role facilitates the configuration of border gateway protocol (BGP) attributes. It supports the configuration of router ID, networks, neighbors, and maximum path. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The BGP role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If variable `os6_cfg_generate` is set to true, it generates the role configuration commands in a file
+- Any role variable with a corresponding state variable setting to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+> **NOTE**: IP routing needs to be enabled on the switch prior to configuring BGP via the *os6_bgp* role.
+
+**os6_bgp keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``asn`` | string (required) | Configures the autonomous system (AS) number of the local BGP instance | os6 |
+| ``router_id`` | string | Configures the IP address of the local BGP router instance | os6 |
+| ``maxpath_ibgp`` | integer | Configures the maximum number of paths to forward packets through iBGP (1 to 64; default 1) | os6 |
+| ``maxpath_ebgp`` | integer | Configures the maximum number of paths to forward packets through eBGP (1 to 64; default 1) | os6 |
+| ``ipv4_network`` | list | Configures an IPv4 BGP networks (see ``ipv4_network.*``) | os6 |
+| ``ipv4_network.address`` | string (required) | Configures the IPv4 address of the BGP network (A.B.C.D/E format) | os6 |
+| ``ipv4_network.state`` | string: absent,present\* | Deletes an IPv4 BGP network if set to absent | os6 |
+| ``ipv6_network`` | list | Configures an IPv6 BGP network (see ``ipv6_network.*``) | os6 |
+| ``ipv6_network.address`` | string (required) | Configures the IPv6 address of the BGP network (2001:4898:5808:ffa2::1/126 format) | os6 |
+| ``ipv6_network.state`` | string: absent,present\* | Deletes an IPv6 BGP network if set to absent | os6 |
+| ``neighbor`` | list | Configures IPv4 BGP neighbors (see ``neighbor.*``) | os6 |
+| ``neighbor.ip`` | string (required) | Configures the IPv4 address of the BGP neighbor (10.1.1.1) | os6 |
+| ``neighbor.name`` | string (required) | Configures the BGP peer-group with this name; supported only when the neighbor is a peer group; mutually exclusive with *neighbor.ip* | os6 |
+| ``neighbor.type`` | string (required): ipv4,ipv6,peergroup | Specifies the BGP neighbor type | os6 |
+| ``neighbor.remote_asn`` | string (required) | Configures the remote AS number of the BGP neighbor | os6 |
+| ``neighbor.remote_asn_state`` | string: absent,present\* | Deletes the remote AS number from the peer group if set to absent; supported only when *neighbor.type* is "peergroup" | os6 |
+| ``neighbor.timer`` | string | Configures neighbor timers (<int> <int>); 5 10, where 5 is the keepalive interval and 10 is the holdtime, field needs to be left blank to remove the timer configurations | os6 |
+| ``neighbor.default_originate`` | boolean: true, false\* | Configures default originate routes to the BGP neighbor, field needs to be left blank to remove the default originate routes | os6 |
+| ``neighbor.peergroup`` | string | Configures neighbor to BGP peer-group (configured peer-group name) | os6 |
+| ``neighbor.peergroup_state`` | string: absent,present\* | Deletes the IPv4 BGP neighbor from the peer-group if set to absent | os6 |
+| ``neighbor.admin`` | string: up,down | Configures the administrative state of the neighbor | os6 |
+| ``neighbor.src_loopback`` | integer | Configures the source loopback interface for routing packets | os6 |
+| ``neighbor.src_loopback_state`` | string: absent,present\* | Deletes the source for routing packets if set to absent | os6 |
+| ``neighbor.ebgp_multihop`` | integer | Configures the maximum-hop count value allowed in eBGP neighbors that are not directly connected (default 255), field needs to be left blank to remove the maximum hop count value | os6 |
+| ``neighbor.subnet`` | string (required) | Configures the passive BGP neighbor to this subnet | os6 |
+| ``neighbor.subnet_state`` | string: absent,present\* | Deletes the subnet range set for dynamic IPv4 BGP neighbor if set to absent | os6 |
+| ``neighbor.state`` | string: absent,present\* | Deletes the IPv4 BGP neighbor if set to absent | os6 |
+| ``redistribute`` | list | Configures the redistribute list to get information from other routing protocols (see ``redistribute.*``) | os6 |
+| ``redistribute.route_type`` | string (required): static,connected | Configures the name of the routing protocol to redistribute | os6 |
+| ``redistribute.address_type`` | string (required): ipv4,ipv6 | Configures the address type of IPv4 or IPv6 routes | os6 |
+| ``redistribute.state`` | string: absent,present\* | Deletes the redistribution information if set to absent | os6 |
+| ``state`` | string: absent,present\* | Deletes the local router BGP instance if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC network roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used. |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable. |
+| ``ansible_network_os`` | yes | os6, null\* | This value is used to load the correct terminal and cliconf plugins to communicate with the remote device. |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_bgp* role to configure the BGP network and neighbors. It creates a *hosts* file with the switch details, a *host_vars* file with connection variables and the corresponding role variables.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. This example writes a simple playbook that only references the *os6_bgp* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_bgp:
+ asn: 11
+ router_id: 192.168.3.100
+ maxpath_ibgp: 2
+ maxpath_ebgp: 2
+ ipv4_network:
+ - address: 102.1.1.0 255.255.255.255
+ state: present
+ ipv6_network:
+ - address: "2001:4898:5808:ffa0::/126"
+ state: present
+ neighbor:
+ - ip: 192.168.10.2
+ type: ipv4
+ remote_asn: 12
+ timer: 5 10
+ default_originate: False
+ peergroup: per
+ admin: up
+ state: present
+ - ip: 2001:4898:5808:ffa2::1
+ type: ipv6
+ remote_asn: 14
+ peergroup: per
+ state: present
+ - name: peer1
+ type: peergroup
+ remote_asn: 14
+ ebgp_multihop: 4
+ subnet: 10.128.5.192/27
+ state: present
+ - ip: 172.20.12.1
+ type: ipv4
+ remote_asn: 64640
+ timer: 3 9
+ redistribute:
+ - route_type: static
+ address_type: ipv4
+ state: present
+ - route_type: connected
+ address_type: ipv6
+ state: present
+ state: present
+
+**Simple playbook to configure BGP — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_bgp
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/defaults/main.yml
new file mode 100644
index 00000000..58e963bb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_bgp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/handlers/main.yml
new file mode 100644
index 00000000..e43b3fd0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_bgp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/meta/main.yml
new file mode 100644
index 00000000..eb2d26ee
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_bgp role facilitates the configuration of BGP attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tasks/main.yml
new file mode 100644
index 00000000..ddd0f53c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating BGP configuration for os6"
+ template:
+ src: os6_bgp.j2
+ dest: "{{ build_dir }}/bgp6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning BGP configuration for os6"
+ os6_config:
+ src: os6_bgp.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/templates/os6_bgp.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/templates/os6_bgp.j2
new file mode 100644
index 00000000..4dd10197
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/templates/os6_bgp.j2
@@ -0,0 +1,255 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{################################
+
+Purpose:
+Configure BGP commands for os6 Devices
+
+os6_bgp:
+ asn: 11
+ router_id: 1.1.1.1
+ maxpath_ibgp: 2
+ maxpath_ebgp: 2
+ ipv4_network:
+ - address: 101.1.2.0 255.255.255.0
+ state: present
+ ipv6_network:
+ - address: 2001:4898:5808:ffa0::/126
+ state: present
+ neighbor:
+ - type: ipv4
+ ip: 10.10.234.16
+ remote_asn: 64818
+ timer: 2 5
+ default_originate: True
+ peergroup: MUX_HNV_ACCESS
+ admin: up
+ state: present
+ - type: ipv6
+ ip: 2001:4898:5808:ffa2::1
+ timer: 2 4
+ default_originate: True
+ remote_asn: 64818
+ peergroup: MUX_HNV_ACCESS
+ state: present
+ - type: peergroup
+ name: MUX_HNV_ACCESS
+ ebgp_multihop: 4
+ subnet: 10.128.5.192/27
+ remote_asn: 64918
+ state: present
+ redistribute:
+ - route_type: connected
+ address_type: ipv6
+ state: present
+ state: present
+
+################################}
+{% if os6_bgp is defined and os6_bgp %}
+{% set bgp_vars = os6_bgp %}
+{% if bgp_vars.asn is defined and bgp_vars.asn %}
+ {% if bgp_vars.state is defined and bgp_vars.state=="absent" %}
+no router bgp {{ bgp_vars.asn }}
+ {% else %}
+{# Add Feature to the switch #}
+router bgp {{ bgp_vars.asn }}
+ {% if bgp_vars.router_id is defined %}
+ {% if bgp_vars.router_id %}
+bgp router-id {{ bgp_vars.router_id }}
+ {% else %}
+no bgp router-id
+ {% endif %}
+ {% endif %}
+ {% if bgp_vars.maxpath_ebgp is defined %}
+ {% if bgp_vars.maxpath_ebgp %}
+maximum-paths {{ bgp_vars.maxpath_ebgp }}
+ {% else %}
+no maximum-paths
+ {% endif %}
+ {% endif %}
+ {% if bgp_vars.maxpath_ibgp is defined %}
+ {% if bgp_vars.maxpath_ibgp %}
+maximum-paths ibgp {{ bgp_vars.maxpath_ibgp }}
+ {% else %}
+no maximum-paths ibgp
+ {% endif %}
+ {% endif %}
+ {% if bgp_vars.ipv4_network is defined and bgp_vars.ipv4_network %}
+ {% for net in bgp_vars.ipv4_network %}
+ {% if net.address is defined and net.address %}
+ {% set ip_and_mask= net.address.split(" ") %}
+ {% if net.state is defined and net.state=="absent" %}
+{# remove BGP network announcement #}
+no network {{ ip_and_mask[0] }} mask {{ ip_and_mask[1] }}
+{# Add BGP network announcement #}
+ {% else %}
+network {{ ip_and_mask[0] }} mask {{ ip_and_mask[1] }}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if bgp_vars.neighbor is defined and bgp_vars.neighbor %}
+ {% for neighbor in bgp_vars.neighbor %}
+ {% if neighbor.type is defined %}
+ {% if neighbor.type == "ipv4" or neighbor.type =="ipv6" %}
+ {% if neighbor.ip is defined and neighbor.ip %}
+ {% set tag_or_ip = neighbor.ip %}
+ {% if neighbor.remote_asn is defined and neighbor.remote_asn %}
+ {% if neighbor.state is defined and neighbor.state == "absent" %}
+no neighbor {{ tag_or_ip }} remote-as
+ {% if neighbor.peergroup is defined and neighbor.peergroup %}
+ {% if neighbor.peergroup_state is defined and neighbor.peergroup_state == "absent" %}
+no neighbor {{ tag_or_ip }} inherit peer {{ neighbor.peergroup }}
+ {% endif %}
+ {% endif %}
+ {% else %}
+neighbor {{ tag_or_ip }} remote-as {{ neighbor.remote_asn }}
+ {% if neighbor.timer is defined %}
+ {% if neighbor.timer %}
+neighbor {{ tag_or_ip }} timers {{ neighbor.timer }}
+ {% else %}
+no neighbor {{ tag_or_ip }} timers
+ {% endif %}
+ {% endif %}
+ {% if neighbor.default_originate is defined %}
+ {% if neighbor.default_originate %}
+neighbor {{ tag_or_ip }} default-originate
+ {% else %}
+no neighbor {{ tag_or_ip }} default-originate
+ {% endif %}
+ {% endif %}
+ {% if neighbor.ebgp_multihop is defined %}
+ {% if neighbor.ebgp_multihop %}
+neighbor {{ tag_or_ip }} ebgp-multihop {{ neighbor.ebgp_multihop }}
+ {% else %}
+no neighbor {{ tag_or_ip }} ebgp-multihop
+ {% endif %}
+ {% endif %}
+ {% if neighbor.src_loopback is defined and neighbor.src_loopback|int(-1) != -1 %}
+ {% if neighbor.src_loopback_state is defined and neighbor.src_loopback_state == "absent" %}
+no neighbor {{ tag_or_ip }} update-source
+ {% else %}
+neighbor {{ tag_or_ip }} update-source Loopback {{ neighbor.src_loopback }}
+ {% endif %}
+ {% endif %}
+ {% if neighbor.peergroup is defined and neighbor.peergroup %}
+ {% if neighbor.peergroup_state is defined and neighbor.peergroup_state == "absent" %}
+no neighbor {{ tag_or_ip }} inherit peer {{ neighbor.peergroup }}
+ {% else %}
+neighbor {{ tag_or_ip }} inherit peer {{ neighbor.peergroup }}
+ {% endif %}
+ {% endif %}
+ {% if neighbor.admin is defined %}
+ {% if neighbor.admin == "up" %}
+no neighbor {{ tag_or_ip }} shutdown
+ {% elif neighbor.admin =="down" %}
+neighbor {{ tag_or_ip }} shutdown
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% elif neighbor.type == "peergroup" %}
+ {% if neighbor.name is defined and neighbor.name %}
+ {% set tag_or_ip = neighbor.name %}
+ {% if neighbor.state is defined and neighbor.state == "absent" %}
+no template peer {{ tag_or_ip }}
+ {% else %}
+ {% if neighbor.subnet is defined and neighbor.subnet %}
+ {% if neighbor.subnet_state is defined and neighbor.subnet_state == "absent" %}
+no bgp listen range {{ neighbor.subnet }}
+ {% else %}
+bgp listen range {{ neighbor.subnet }} inherit peer {{ tag_or_ip }}
+ {% endif %}
+ {% endif %}
+template peer {{ tag_or_ip }}
+ {% if neighbor.remote_asn is defined and neighbor.remote_asn %}
+ {% if neighbor.remote_asn_state is defined and neighbor.remote_asn_state == "absent" %}
+no remote-as {{ neighbor.remote_asn }}
+ {% else %}
+remote-as {{ neighbor.remote_asn }}
+ {% endif %}
+ {% endif %}
+ {% if neighbor.timer is defined %}
+ {% if neighbor.timer %}
+timers {{ neighbor.timer }}
+ {% else %}
+no timers
+ {% endif %}
+ {% endif %}
+ {% if neighbor.ebgp_multihop is defined %}
+ {% if neighbor.ebgp_multihop %}
+ebgp-multihop {{ neighbor.ebgp_multihop }}
+ {% else %}
+no ebgp-multihop
+ {% endif %}
+ {% endif %}
+ {% if neighbor.src_loopback is defined and neighbor.src_loopback|int(-1) != -1 %}
+ {% if neighbor.src_loopback_state is defined and neighbor.src_loopback_state == "absent" %}
+no update-source
+ {% else %}
+update-source Lo{{ neighbor.src_loopback }}
+ {% endif %}
+ {% endif %}
+ {% if neighbor.admin is defined %}
+ {% if neighbor.admin == "up" %}
+no shutdown
+ {% elif neighbor.admin =="down" %}
+shutdown
+ {% endif %}
+ {% endif %}
+ {% if neighbor.default_originate is defined %}
+address-family ipv4
+ {% if neighbor.default_originate %}
+default-originate
+ {% else %}
+no default-originate
+ {% endif %}
+exit
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if bgp_vars.ipv6_network is defined and bgp_vars.ipv6_network %}
+ {% for net in bgp_vars.ipv6_network %}
+ {% if net.address is defined and net.address %}
+address-family ipv6
+ {% if net.state is defined and net.state=="absent" %}
+{# remove BGP network announcement #}
+no network {{ net.address }}
+{# Add BGP network announcement #}
+ {% else %}
+network {{ net.address }}
+ {% endif %}
+exit
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if bgp_vars.redistribute is defined and bgp_vars.redistribute %}
+ {% for routes in bgp_vars.redistribute %}
+ {% if routes.route_type is defined and routes.route_type %}
+ {% if routes.address_type is defined and routes.address_type=="ipv6" %}
+address-family ipv6
+ {% if routes.state is defined and routes.state =="absent" %}
+no redistribute {{ routes.route_type }}
+ {% else %}
+redistribute {{ routes.route_type }}
+ {% endif %}
+exit
+ {% elif routes.address_type is defined and routes.address_type=="ipv4" %}
+ {% if routes.state is defined and routes.state =="absent" %}
+no redistribute {{ routes.route_type }}
+ {% else %}
+redistribute {{ routes.route_type }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+exit
+{% endif %}
+{% endif %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/inventory.yaml
new file mode 100644
index 00000000..388cb490
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/inventory.yaml
@@ -0,0 +1,7 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/main.os6.yaml
new file mode 100644
index 00000000..c7625c60
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/main.os6.yaml
@@ -0,0 +1,47 @@
+---
+# vars file for dellemc.os6.os6_bgp,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+ os6_bgp:
+ asn: 11
+ router_id: 1.1.1.1
+ maxpath_ibgp: 2
+ maxpath_ebgp: 2
+ ipv4_network:
+ - address: 101.1.2.0 255.255.255.0
+ state: present
+ ipv6_network:
+ - address: 2001:4898:5808:ffa0::/126
+ state: present
+ neighbor:
+ - type: ipv4
+ ip: 10.10.234.16
+ remote_asn: 64818
+ timer: 2 5
+ default_originate: True
+ peergroup: MUX_HNV_ACCESS
+ admin: up
+ src_loopback: 2
+ src_loopback_state: present
+ state: present
+ - type: ipv6
+ ip: 2001:4898:5808:ffa2::1
+ timer: 2 4
+ default_originate: True
+ ebgp_multihop: 3
+ remote_asn: 64818
+ peergroup: MUX_HNV_ACCESS
+ state: present
+ - type: peergroup
+ name: MUX_HNV_ACCESS
+ timer: 2 4
+ ebgp_multihop: 4
+ remote_asn: 64918
+ subnet: 10.128.5.192/27
+ state: present
+ redistribute:
+ - route_type: connected
+ address_type: ipv6
+ state: present
+ state: present
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/test.yaml
new file mode 100644
index 00000000..b92fb6ca
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_bgp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/vars/main.yml
new file mode 100644
index 00000000..22d0d344
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_bgp/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_bgp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/README.md
new file mode 100644
index 00000000..d4fadbb9
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/README.md
@@ -0,0 +1,110 @@
+Interface role
+==============
+
+This role facilitates the configuration of interface attributes. It supports the configuration of admin state, description, MTU, IP address, IP helper, suppress_ra, and port mode. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The interface role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable setting to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- `os6_interface` (dictionary) holds a dictionary with the interface name; interface name can correspond to any of the valid OS interfaces with the unique interface identifier name
+- For physical interfaces, the interface name must be in *<interfacename> <tuple>* format; for logical interfaces, the interface must be in *<logical_interfacename> <id>* format; physical interface name can be *Te1/0/1* for os6 devices
+- For interface ranges, the interface name must be in *range <interface_type> <node/slot/port[:subport]-node/slot/port[:subport]>* format
+- Logical interface names can be *vlan 1* or *port-channel 1*
+- Variables and values are case-sensitive
+
+> **NOTE**: Only define supported variables for the interface type. For example, do not define the *switchport* variable for a logical interface, and do not define an IP address for physical interfaces in OS6 devices.
+
+**os6_interface name keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``desc`` | string | Configures a single line interface description | os6 |
+| ``portmode`` | string | Configures port-mode according to the device type | os6 (access and trunk) |
+| ``admin`` | string: up,down\* | Configures the administrative state for the interface; configuring the value as administratively "up" enables the interface; configuring the value as administratively "down" disables the interface | os6 |
+| ``suppress_ra`` | string; present,absent | Configures IPv6 router advertisements if set to present | os6 |
+| ``ip_type_dynamic`` | boolean: true,false | Configures IP address DHCP if set to true (*ip_and_mask* is ignored if set to true) | os6 |
+| ``ip_and_mask`` | string | configures the specified IP address to the interface VLAN on os6 devices (192.168.11.1/24 format) | os6 |
+| ``ipv6_and_mask`` | string | configures a specified IP address to the interface VLAN on os6 devices (2001:4898:5808:ffa2::1/126 format) | os6 |
+| ``ipv6_reachabletime`` | integer | Configures the reachability time for IPv6 neighbor discovery (0 to 3600000), field needs to be left blank to remove the reachability time | os6 |
+| ``ip_helper`` | list | Configures DHCP server address objects (see ``ip_helper.*``) | os6 |
+| ``ip_helper.ip`` | string (required) | Configures the IPv4 address of the DHCP server (A.B.C.D format) | os6 |
+| ``ip_helper.state`` | string: absent,present\* | Deletes the IP helper address if set to absent | os6 |
+
+> **NOTE**: Asterisk (*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used. |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable. |
+| ``ansible_network_os`` | yes | os6, null\* | This value is used to load the correct terminal and cliconf plugins to communicate with the remote device. |
+
+> **NOTE**: Asterisk (*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6-interface* role to set up description, MTU, admin status, portmode, and switchport details for an interface. The example creates a *hosts* file with the switch details and orresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, this variable is set to false. The example writes a simple playbook that only references the *os6-interface* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: "switch1"
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_interface:
+ Te1/0/8:
+ desc: "Connected to Spine1"
+ portmode: trunk
+ admin: up
+ vlan 100:
+ admin: down
+ ip_and_mask:
+ ipv6_and_mask: 2002:4898:5408:faaf::1/64
+ suppress_ra: present
+ ip_helper:
+ - ip: 10.0.0.36
+ state: absent
+ ipv6_reachabletime: 600000
+ vlan 20:
+ suppress_ra: absent
+ admin: up
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_interface
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/defaults/main.yml
new file mode 100644
index 00000000..076dd792
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_interface \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/handlers/main.yml
new file mode 100644
index 00000000..a46800e0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_interface
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/meta/main.yml
new file mode 100644
index 00000000..ed39e191
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_interface role facilitates the configuration of interface attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tasks/main.yml
new file mode 100644
index 00000000..531a9df0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating interface configuration for os6"
+ template:
+ src: os6_interface.j2
+ dest: "{{ build_dir }}/intf6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning interface configuration for os6"
+ os6_config:
+ src: os6_interface.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/templates/os6_interface.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/templates/os6_interface.j2
new file mode 100644
index 00000000..72e72eaa
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/templates/os6_interface.j2
@@ -0,0 +1,94 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{################################
+
+Purpose:
+Configure interface commands for os6 Devices.
+
+os6_interface:
+ Te1/0/1:
+ desc: "connected to spine1"
+ portmode: trunk
+ admin: up
+ vlan 100:
+ ip_type_dynamic: False
+ ip_and_mask: 3.3.3.3 255.255.255.0
+ suppress_ra: present
+ vlan 101:
+ ipv6_and_mask: 2001:db8:3c4d:15::/64
+ ipv6_reachabletime: 6000
+ ip_helper:
+ - ip: 10.0.0.33
+ state: present
+ vlan 102:
+ ip_type_dynamic: True
+
+################################}
+{% if os6_interface is defined and os6_interface %}
+{% for key in os6_interface.keys() %}
+interface {{ key }}
+{% set intf_vars = os6_interface[key] %}
+{% if intf_vars.desc is defined %}
+ {% if intf_vars.desc %}
+description "{{ intf_vars.desc }}"
+ {% else %}
+no description
+ {% endif %}
+{% endif %}
+{% if intf_vars.portmode is defined %}
+ {% if intf_vars.portmode %}
+switchport mode {{ intf_vars.portmode }}
+ {% else %}
+no switchport mode
+ {% endif %}
+{% endif %}
+{% if intf_vars.admin is defined %}
+ {% if intf_vars.admin == "up"%}
+no shutdown
+ {% elif intf_vars.admin == "down" %}
+shutdown
+ {% endif %}
+{% endif %}
+{% if intf_vars.ip_type_dynamic is defined and intf_vars.ip_type_dynamic %}
+ip address dhcp
+{% elif intf_vars.ip_and_mask is defined %}
+ {% if intf_vars.ip_and_mask %}
+ip address {{ intf_vars.ip_and_mask }}
+ {% else %}
+no ip address
+ {% endif %}
+{% endif %}
+{% if intf_vars.suppress_ra is defined %}
+ {% if intf_vars.suppress_ra == "present" %}
+ipv6 nd suppress-ra
+ {% else %}
+no ipv6 nd suppress-ra
+ {% endif %}
+{% endif %}
+{% if intf_vars.ipv6_and_mask is defined %}
+ {% if intf_vars.ipv6_and_mask %}
+ipv6 address {{ intf_vars.ipv6_and_mask }}
+ {% else %}
+no ipv6 address
+ {% endif %}
+{% endif %}
+{% if intf_vars.ipv6_reachabletime is defined %}
+ {% if intf_vars.ipv6_reachabletime %}
+ipv6 nd reachable-time {{ intf_vars.ipv6_reachabletime }}
+ {% else %}
+no ipv6 nd reachable-time
+ {% endif %}
+{% endif %}
+{% if intf_vars.ip_helper is defined and intf_vars.ip_helper %}
+ {% for helper in intf_vars.ip_helper %}
+ {% if helper.ip is defined and helper.ip %}
+ {% if helper.state is defined and helper.state=="absent" %}
+no ip helper-address {{ helper.ip }}
+ {% else %}
+ip helper-address {{ helper.ip }}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+{% endif %}
+exit
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/main.os6.yaml
new file mode 100644
index 00000000..5513a7eb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/main.os6.yaml
@@ -0,0 +1,28 @@
+# vars file for dellemc.os6.os6_interface
+# Sample variables for OS6 device
+
+os6_interface:
+ Te1/0/2:
+ desc: "Connected to Spine1"
+ portmode: trunk
+ admin: up
+ Te1/0/1:
+ desc: "Connected to Access"
+ portmode: access
+ admin: up
+ vlan 100:
+ ip_type_dynamic: True
+ suppress_ra: present
+ ip_and_mask: 3.3.3.3 255.255.255.0
+ ip_helper:
+ - ip: 10.0.0.36
+ state: present
+ ipv6_reachabletime: 600000
+ vlan 101:
+ ipv6_and_mask: 2001:db8:3c4d:15::/64
+ suppress_ra: absent
+ vlan 102:
+ ip_type_dynamic: True
+ suppress_ra:
+ vlan 105:
+ ip_and_mask: 1.1.1.1 255.255.255.0 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/test.yaml
new file mode 100644
index 00000000..ffd90b31
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_interface \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/vars/main.yml
new file mode 100644
index 00000000..ab9d1f82
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_interface/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_interface \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/README.md
new file mode 100644
index 00000000..ff82984d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/README.md
@@ -0,0 +1,96 @@
+LAG role
+========
+
+This role facilitates the configuration of link aggregation group (LAG) attributes, and supports the creation and deletion of a LAG and its member ports. It also supports the configuration of an interface type as a static or dynamic LAG, hash scheme in os6 devices, and minimum required link. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The LAG role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- Object drives the tasks in this role
+- `os6_lag` (dictionary) contains the hostname (dictionary)
+- Hostname is the value of the *hostname* variable that corresponds to the name of the OS device
+- Any role variable with a corresponding state variable setting to absent negates the configuration of that variable
+- Setting an empty value to any variable negates the corresponding configuration
+- `os6_lag` (dictionary) holds a dictionary with the port-channel ID key in `Po <ID>` format (1 to 128 for os6)
+- Variables and values are case-sensitive
+
+**port-channel ID keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``type`` | string: static,dynamic | Configures the interface either as a static or dynamic LAG | os6 |
+| ``min_links`` | integer | Configures the minimum number of links in the LAG that must be in *operup* status (1 to 8), field needs to be left blank to remove the minimum number of links | os6 |
+| ``hash`` | integer | Configures the hash value for OS6 devices (1 to 7), field needs to be left blank to remove the hash value | os6 |
+| ``channel_members`` | list | Specifies the list of port members to be associated to the port channel (see ``channel_members.*``) | os6 |
+| ``channel_members.port`` | string | Specifies valid OS6 interface names to be configured as port channel members | os6 |
+| ``channel_members.state`` | string: absent,present | Deletes the port member association if set to absent | os6 |
+| ``state`` | string: absent,present\* | Deletes the LAG corresponding to the port channel ID if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC network roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used. |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable. |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device. |
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_lag* role to setup port channel ID and description, and configures hash algorithm and minimum links for the LAG. Channel members can be configured for the port-channel either in static or dynamic mode. You can also delete the LAG with the port channel ID or delete the members associated to it. This example creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. It writes a simple playbook that only references the *os6-lag* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_lag:
+ Po 127:
+ type: static
+ hash: 7
+ min_links: 3
+ channel_members:
+ - port: Fo4/0/1
+ state: present
+ - port: Fo4/0/1
+ state: present
+ state: present
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_lag
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/defaults/main.yml
new file mode 100644
index 00000000..e9a1b31f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_lag \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/handlers/main.yml
new file mode 100644
index 00000000..859d5c2b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_lag
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/meta/main.yml
new file mode 100644
index 00000000..897a47ae
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_lag role facilitates the configuration of LAG attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tasks/main.yml
new file mode 100644
index 00000000..8878c11c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating LAG configuration for os6"
+ template:
+ src: os6_lag.j2
+ dest: "{{ build_dir }}/lag6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning LAG configuration for os6"
+ os6_config:
+ src: os6_lag.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/templates/os6_lag.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/templates/os6_lag.j2
new file mode 100644
index 00000000..39b0a53b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/templates/os6_lag.j2
@@ -0,0 +1,78 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{################################
+
+Purpose:
+Configure LAG commands for os6 Devices.
+
+os6_lag:
+ Po 1:
+ type: static
+ min_links: 2
+ hash: 7
+ channel_members:
+ - port: Te1/0/2
+ state: present
+ - port: Te1/0/1
+ state: absent
+ state: present
+
+################################}
+{% if os6_lag is defined and os6_lag %}
+{% for key in os6_lag.keys() %}
+{% set channel_id = key.split(" ") %}
+{% set lag_vars = os6_lag[key] %}
+ {% if lag_vars.state is defined and lag_vars.state=="absent" %}
+interface port-channel {{ channel_id[1] }}
+no shutdown
+no description
+no hashing-mode
+exit
+ {% else %}
+interface port-channel {{ channel_id[1] }}
+ {% if lag_vars.hash is defined %}
+ {% if lag_vars.hash %}
+hashing-mode {{ lag_vars.hash }}
+ {% else %}
+no hashing-mode
+ {% endif %}
+ {% endif %}
+ {% if lag_vars.min_links is defined %}
+ {% if lag_vars.min_links %}
+port-channel min-links {{ lag_vars.min_links }}
+ {% else %}
+no port-channel min-links
+ {% endif %}
+ {% endif %}
+exit
+ {% if lag_vars.channel_members is defined %}
+ {% for ports in lag_vars.channel_members %}
+ {% if lag_vars.type is defined and lag_vars.type == "static" %}
+ {% if ports.port is defined and ports.port %}
+ {% if ports.state is defined and ports.state=="absent" %}
+interface {{ ports.port }}
+no channel-group
+exit
+ {% else %}
+interface {{ ports.port }}
+channel-group {{ channel_id[1] }} mode on
+exit
+ {% endif %}
+ {% endif %}
+ {% elif lag_vars.type is defined and lag_vars.type == "dynamic" %}
+ {% if ports.port is defined and ports.port %}
+ {% if ports.state is defined and ports.state=="absent" %}
+interface {{ ports.port }}
+no channel-group
+exit
+ {% else %}
+interface {{ ports.port }}
+channel-group {{ channel_id[1] }} mode active
+exit
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endif %}
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/main.os6.yaml
new file mode 100644
index 00000000..77728edb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/main.os6.yaml
@@ -0,0 +1,15 @@
+---
+# vars file for dellemc.os6.os6_lag
+# Sample variables for OS6 device
+
+os6_lag:
+ Po 128:
+ type: static
+ hash: 7
+ min_links: 3
+ channel_members:
+ - port: Te1/0/1
+ state: absent
+ - port: Te1/0/2
+ state: present
+ state: present
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/test.yaml
new file mode 100644
index 00000000..44ee544e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_lag
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/vars/main.yml
new file mode 100644
index 00000000..9cf92917
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lag/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_lag \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/README.md
new file mode 100644
index 00000000..d29653b2
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/README.md
@@ -0,0 +1,114 @@
+LLDP role
+=========
+
+This role facilitates the configuration of link layer discovery protocol (LLDP) attributes at a global and interface level. It supports the configuration of hello, mode, multiplier, advertise TLVs, management interface, FCoE, and iSCSI at global and interface level. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The LLDP role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+Role variables
+--------------
+
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_lldp keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``timers`` | dictionary | Configures the LLDP global timer value | os6 |
+| ``timers.interval`` | integer | Configures the interval in seconds to transmit local LLDP data (5 to 32768), field needs to be left blank to remove the interval | os6 |
+| ``timers.hold`` | integer | Configures the interval multiplier to set local LLDP data TTL (2 to 10), field needs to be left blank to remove the interval multiplier | os6 |
+| ``timers.reinit`` | integer | Configures the reinit value (1 to 10), field needs to be left blank to remove the reinit value | os6 |
+| ``notification_interval`` | integer | Configures the minimum interval to send remote data change notifications (5 to 3600), field needs to be left blank to remove the minimum interval | os6 |
+| ``advertise`` | dictionary | Configures LLDP-MED and TLV advertisement at the global level (see ``advertise.*``) | os6 |
+| ``advertise.med`` | dictionary | Configures MED TLVs advertisement (see ``med_tlv.*``) | os6 |
+| ``med.global_med`` | boolean | Configures global MED TLVs advertisement | os6 |
+| ``med.fast_start_repeat_count`` | integer | Configures MED fast start repeat count value (1 to 10), field needs to be left blank to remove the value | os6 |
+| ``med.config_notification`` | boolean | Configure all the ports to send the topology change notification | os6 |
+| ``local_interface`` | dictionary | Configures LLDP at the interface level (see ``local_interface.*``) | os6 |
+| ``local_interface.<interface name>`` | dictionary | Configures LLDP at the interface level (see ``<interface name>.*``) | os6 |
+| ``<interface name>.mode`` | dictionary: rx,tx | Configures LLDP mode configuration at the interface level | os6 |
+| ``<interface name>.mode.tx`` | boolean | Enables/disables LLDP transmit capability at interface level | os6 |
+| ``<interface name>.mode.rx`` | boolean | Enables/disables LLDP receive capability at interface level | os6 |
+| ``<interface name>.notification`` | boolean | Enables/disables LLDP remote data change notifications at interface level | os6 |
+| ``<interface name>.advertise`` | dictionary | Configures LLDP-MED TLV advertisement at the interface level (see ``advertise.*``) | os6 |
+| ``advertise.med`` | dictionary | Configures MED TLVs advertisement at the interface level (see ``med_tlv.*``) | os6 |
+| ``med.enable`` | boolean | Enables interface level MED capabilities | os6 |
+| ``med.config_notification`` | boolean | Configures sending the topology change notification |os6 |
+
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_lldp* role to configure protocol lldp. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. It writes a simple playbook that only references the *os6_lldp* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/os6
+ os6_lldp:
+ timers:
+ reinit: 2
+ interval: 5
+ hold: 5
+ notification_interval: 5
+ advertise:
+ med:
+ global_med: true
+ fast_start_repeat_count: 4
+ config_notification: true
+ local_interface:
+ Gi1/0/1:
+ mode:
+ tx: true
+ rx: false
+ notification: true
+ advertise:
+ med:
+ config_notification: true
+ enable: true
+
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_lldp
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/defaults/main.yml
new file mode 100644
index 00000000..b2f3b089
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_lldp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/handlers/main.yml
new file mode 100644
index 00000000..d1beaa3d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_lldp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/meta/main.yml
new file mode 100644
index 00000000..55b890a5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/meta/main.yml
@@ -0,0 +1,19 @@
+# Copyright (c) 2017-2020 Dell Inc. or its subsidiaries. All Rights Reserved.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: >
+ The os6_lldp role facilitates the configuration of Link Layer Discovery Protocol(LLDP) attributes in devices
+ running Dell EMC Networking Operating Systems.
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tasks/main.yml
new file mode 100644
index 00000000..64bc67d1
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating LLDP configuration for os6"
+ template:
+ src: os6_lldp.j2
+ dest: "{{ build_dir }}/lldp6_{{ hostname }}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning LLDP configuration for os6"
+ os6_config:
+ src: os6_lldp.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/templates/os6_lldp.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/templates/os6_lldp.j2
new file mode 100644
index 00000000..e8d2e94c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/templates/os6_lldp.j2
@@ -0,0 +1,159 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{###################################################
+Purpose:
+Configure LLDP commands for os6 Devices.
+
+os6_lldp:
+ timers:
+ reinit: 2
+ interval: 5
+ hold: 5
+ notification_interval: 5
+ advertise:
+ med:
+ global_med: true
+ fast_start_repeat_count: 4
+ config_notification: true
+ local_interface:
+ Gi1/0/1:
+ mode:
+ tx: true
+ rx: false
+ notification: true
+ advertise:
+ med:
+ config_notification: true
+ enable: true
+
+
+{###############################################################################################}
+{% if os6_lldp is defined and os6_lldp %}
+{% for key,value in os6_lldp.items() %}
+ {% if key == "timers" %}
+ {% if value %}
+ {% set item = os6_lldp.timers %}
+ {% if item.reinit is defined and item.reinit and item.interval is defined and item.interval and item.hold is defined and item.hold %}
+lldp timers interval {{ item.interval }} hold {{ item.hold }} reinit {{ item.reinit }}
+ {% elif item.reinit is defined and item.reinit and item.interval is defined and item.interval %}
+lldp timers interval {{ item.interval }} reinit {{ item.reinit }}
+ {% elif item.reinit is defined and item.reinit and item.hold is defined and item.hold %}
+lldp timers hold {{ item.hold }} reinit {{ item.reinit }}
+ {% elif item.interval is defined and item.interval and item.hold is defined and item.hold %}
+lldp timers interval {{ item.interval }} hold {{ item.hold }}
+ {% else %}
+ {% if item.reinit is defined %}
+ {% if item.reinit %}
+lldp timers reinit {{ item.reinit }}
+ {% else %}
+no lldp timers reinit {{ item.reinit }}
+ {% endif %}
+ {% endif %}
+ {% if item.interval is defined %}
+ {% if item.interval %}
+lldp timers interval {{ item.interval }}
+ {% else %}
+no lldp timers interval {{ item.interval }}
+ {% endif %}
+ {% endif %}
+ {% if item.hold is defined %}
+ {% if item.hold %}
+lldp timers hold {{ item.hold }}
+ {% else %}
+no lldp timers hold {{ item.hold }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% elif key == "notification_interval" %}
+ {% if value %}
+lldp notification-interval {{ value }}
+ {% else %}
+no lldp notification-interval
+ {% endif %}
+ {% elif key == "advertise" %}
+ {% if value %}
+ {% for ke,valu in value.items() %}
+ {% if ke == "med" %}
+ {% if valu %}
+ {% for med,val in valu.items() %}
+ {% if med == "fast_start_repeat_count" %}
+ {% if val %}
+lldp med faststartrepeatcount {{ val }}
+ {% else %}
+no lldp med faststartrepeatcount
+ {% endif %}
+ {% elif med == "config_notification" %}
+ {% if val %}
+lldp med confignotification all
+ {% else %}
+no lldp med confignotification all
+ {% endif %}
+ {% elif med == "global_med" %}
+ {% if val %}
+lldp med all
+ {% else %}
+no lldp med all
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endif %}
+{% endfor %}
+{% endif %}
+{% if os6_lldp is defined and os6_lldp %}
+{% for key in os6_lldp.keys() %}
+{% set lldp_vars = os6_lldp[key] %}
+{% if key == "local_interface" %}
+ {% for intf in lldp_vars.keys() %}
+ {% set intf_vars = lldp_vars[intf] %}
+interface {{ intf }}
+ {% if intf_vars.mode is defined and intf_vars.mode %}
+ {% set intf_vars_mode = intf_vars.mode %}
+ {% if intf_vars_mode.tx is defined %}
+ {% if intf_vars_mode.tx %}
+lldp transmit
+ {% else %}
+no lldp transmit
+ {% endif %}
+ {% endif %}
+ {% if intf_vars_mode.rx is defined %}
+ {% if intf_vars_mode.rx %}
+lldp receive
+ {% else %}
+no lldp receive
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% if intf_vars.notification is defined %}
+ {% if intf_vars.notification %}
+lldp notification
+ {% else %}
+no lldp notification
+ {% endif %}
+ {% endif %}
+ {% if intf_vars.advertise is defined and intf_vars.advertise %}
+ {% if intf_vars.advertise.med is defined and intf_vars.advertise.med %}
+ {% if intf_vars.advertise.med.enable is defined %}
+ {% if intf_vars.advertise.med.enable %}
+lldp med
+ {% else %}
+no lldp med
+ {% endif %}
+ {% endif %}
+ {% if intf_vars.advertise.med.config_notification is defined %}
+ {% if intf_vars.advertise.med.config_notification %}
+lldp med confignotification
+ {% else %}
+no lldp med confignotification
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+exit
+ {% endfor %}
+{% endif %}
+{% endfor %}
+{% endif %} \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/main.os6.yaml
new file mode 100644
index 00000000..4d630fe4
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/main.os6.yaml
@@ -0,0 +1,26 @@
+---
+# vars file for dellemc.os6.os6_lldp,
+# below gives a sample configuration
+ # Sample variables for OS6 device
+
+os6_lldp:
+ timers:
+ reinit: 2
+ interval: 5
+ hold: 5
+ notification_interval: 5
+ advertise:
+ med:
+ global_med: true
+ fast_start_repeat_count: 4
+ config_notification: true
+ local_interface:
+ Gi1/0/1:
+ mode:
+ tx: true
+ rx: false
+ notification: true
+ advertise:
+ med:
+ config_notification: true
+ enable: true \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/test.yaml
new file mode 100644
index 00000000..b443e046
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_lldp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/vars/main.yml
new file mode 100644
index 00000000..d602eda7
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_lldp/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_lldp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/README.md
new file mode 100644
index 00000000..037d3781
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/README.md
@@ -0,0 +1,89 @@
+Logging role
+============
+
+This role facilitates the configuration of global logging attributes, and it supports the configuration of logging servers. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The Logging role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If the `os6_cfg_generate` variable is set to true, it generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_logging keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``logging`` | list | Configures the logging server (see ``logging.*``) | os6 |
+| ``logging.ip`` | string (required) | Configures the IPv4 address for the logging server (A.B.C.D format) | os6 |
+| ``logging.state`` | string: absent,present\* | Deletes the logging server if set to absent | os6 |
+| ``source_interface`` | string | Configures the source interface for logging, it can take values as loopback interface, vlan ID, out-of-band interface and tunnel ID only, field needs to be left blank to remove the source iterface | os6 |
+
+> **NOTE**: Asterisk (_*_) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_logging* role to completely set up logging servers. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+#### Sample host_vars/switch1
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_logging:
+ logging:
+ - ip : 1.1.1.1
+ state: present
+ - ip: 2.2.2.2
+ state: present
+ - ip: 3.3.3.3
+ state: present
+ source_interface: "vlan 10"
+
+**Simple playbook to setup logging — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_logging
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/defaults/main.yml
new file mode 100644
index 00000000..14475f6d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_logging \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/handlers/main.yml
new file mode 100644
index 00000000..f88d8db5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_logging
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/meta/main.yml
new file mode 100644
index 00000000..518c92a3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_logging role facilitates the configuration of logging attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tasks/main.yml
new file mode 100644
index 00000000..0c52cf4e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating logging configuration for os6"
+ template:
+ src: os6_logging.j2
+ dest: "{{ build_dir }}/logging6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning logging configuration for os6"
+ os6_config:
+ src: os6_logging.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/templates/os6_logging.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/templates/os6_logging.j2
new file mode 100644
index 00000000..a1a30f25
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/templates/os6_logging.j2
@@ -0,0 +1,36 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{####################################
+
+Purpose:
+Configure logging commands for os6 Devices
+
+os6_logging:
+ logging:
+ - ip: 1.1.1.1
+ state: absent
+ source_interface: "vlan 30"
+
+#####################################}
+{% if os6_logging is defined and os6_logging %}
+
+{% for key,value in os6_logging.items() %}
+ {% if key == "logging" %}
+ {% for item in value %}
+ {% if item.ip is defined and item.ip %}
+ {% if item.state is defined and item.state == "absent" %}
+no logging {{ item.ip }}
+ {% else %}
+logging {{ item.ip }}
+exit
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% elif key == "source_interface" %}
+ {% if value %}
+logging source-interface {{ value }}
+ {% else %}
+no logging source-interface
+ {% endif %}
+ {% endif %}
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/main.os6.yaml
new file mode 100644
index 00000000..550ed665
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/main.os6.yaml
@@ -0,0 +1,10 @@
+---
+# vars file for dellemc.os6.os6_logging,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_logging:
+ logging:
+ - ip: 1.1.1.1
+ state: present
+ source_interface: "vlan 30" \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/test.yaml
new file mode 100644
index 00000000..59ec49c1
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_logging
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/vars/main.yml
new file mode 100644
index 00000000..329db6af
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_logging/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_logging
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/README.md
new file mode 100644
index 00000000..6fbdec55
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/README.md
@@ -0,0 +1,82 @@
+NTP role
+========
+
+This role facilitates the configuration of network time protocol (NTP) attributes, and it specifically enables configuration of NTP server. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The NTP role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_ntp keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``server`` | list | Configures the NTP server (see ``server.*``) | os6 |
+| ``server.ip`` | string (required) | Configures an IPv4 address for the NTP server (A.B.C.D format) | os6 |
+| ``server.state`` | string: absent,present\* | Deletes the NTP server if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-------------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_ntp* role to set the NTP server, source ip, authentication and broadcast service. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When the `os6_cfg_generate` variable is set to true, it generates the configuration commands as a .part file in *build_dir* path. By default it is set to false. The example writes a simple playbook that only references the *os6_ntp* role.
+By including the role, you automatically get access to all of the tasks to configure NTP attributes.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ host: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_ntp:
+ server:
+ - ip: 2.2.2.2
+ state: absent
+
+**Simple playbook to setup NTP — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_ntp
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/defaults/main.yml
new file mode 100644
index 00000000..5cc2de16
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_ntp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/handlers/main.yml
new file mode 100644
index 00000000..8a8a2a41
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_ntp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/meta/main.yml
new file mode 100644
index 00000000..6ec8343b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_ntp role facilitates the configuration of NTP attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tasks/main.yml
new file mode 100644
index 00000000..9d1c2aab
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating NTP configuration for os6"
+ template:
+ src: os6_ntp.j2
+ dest: "{{ build_dir }}/ntp6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False'))| bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning NTP configuration for os6"
+ os6_config:
+ src: os6_ntp.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/templates/os6_ntp.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/templates/os6_ntp.j2
new file mode 100644
index 00000000..94e4561f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/templates/os6_ntp.j2
@@ -0,0 +1,27 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{####################################
+
+Purpose:
+Configure NTP commands for os6 devices
+
+os6_ntp:
+ server:
+ - ip: 2.2.2.2
+ state: absent
+
+#####################################}
+{% if os6_ntp is defined and os6_ntp %}
+ {% for key,value in os6_ntp.items() %}
+ {% if key == "server" and value %}
+ {% for item in value %}
+ {% if item.ip is defined and item.ip %}
+ {% if item.state is defined and item.state == "absent" %}
+no sntp server {{ item.ip }}
+ {% else %}
+sntp server {{ item.ip }}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/inventory b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/inventory
new file mode 100644
index 00000000..878877b0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/inventory
@@ -0,0 +1,2 @@
+localhost
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/main.os6.yaml
new file mode 100644
index 00000000..92475504
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/main.os6.yaml
@@ -0,0 +1,9 @@
+---
+# vars file for dellemc.os6.os6_ntp,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_ntp:
+ server:
+ - ip: 2.2.2.2
+ state: present
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/test.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/test.yml
new file mode 100644
index 00000000..d24e3b53
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/tests/test.yml
@@ -0,0 +1,5 @@
+---
+- hosts: localhost
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_ntp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/vars/main.yml
new file mode 100644
index 00000000..4ec591c9
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_ntp/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_ntp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/README.md
new file mode 100644
index 00000000..31be2719
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/README.md
@@ -0,0 +1,102 @@
+QoS role
+========
+
+This role facilitates the configuration of quality of service (QoS) attributes like policy-map and class-map. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The QoS role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take a `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_qos keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``policy_map`` | list | Configures the policy-map (see ``policy_map.*``) | os6 |
+| ``policy_map.name`` | string (required) | Configures the policy-map name | os6 |
+| ``policy_map.type`` | string: in, out in os6 | Configures the policy-map type | os6 |
+| ``policy_map.class_instances`` | list | Specifies the class instances for the policy | os6 |
+| ``class_instances.name`` | string | Specifies name of class instance | os6 |
+| ``class_instances.policy`` | list | Specifies list of associated policies for the class | os6 |
+| ``policy_map.state`` | string: present\*,absent | Deletes the policy-map if set to absent | os6 |
+| ``class_map`` | list | Configures the class-map (see ``class_map.*``) | os6 |
+| ``class_map.name`` | string (required) | Configures the class-map name | os6 |
+| ``class_map.type`` | string: match-all, match-any in os6 | Configures the class-map type | os6 |
+| ``class-map.match_condition`` | list | Specifies the type of match-conditions required for the class | os6 |
+| ``class_map.state`` | string: present\*,absent | Deletes the class-map if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories, or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_qos* role to configure the policy-map class-map. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. It writes a simple playbook that only references the *os6_qos* role. By including the role, you automatically get access to all of the tasks to configure QoS features.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_qos:
+ policy_map:
+ - name: testpolicy
+ type: qos
+ class_instances:
+ - name: video
+ policy:
+ - assign-queue 1
+ state: present
+ class_map:
+ - name: testclass
+ type: application
+ match_condition:
+ - ip dscp 26
+ state: present
+
+**Simple playbook to setup qos — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_qos
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/defaults/main.yml
new file mode 100644
index 00000000..1b87a8f3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/defaults/main.yml
@@ -0,0 +1,5 @@
+---
+# defaults file for dellemc.os6.os6_qos
+match_type:
+ match_all: match-all
+ match_any: match-any
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/handlers/main.yml
new file mode 100644
index 00000000..1998b3a7
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_qos \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/meta/main.yml
new file mode 100644
index 00000000..47fff33e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/meta/main.yml
@@ -0,0 +1,17 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_qos role facilitates the configuration of qos attributes in devices running Dell EMC Networking Operating Systems.
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tasks/main.yml
new file mode 100644
index 00000000..90cc20a1
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Provisioning Qos configuration for os6"
+ os6_config:
+ src: os6_qos.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
+
+ - name: "Generating Qos configuration for os6"
+ template:
+ src: os6_qos.j2
+ dest: "{{ build_dir }}/qos6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/templates/os6_qos.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/templates/os6_qos.j2
new file mode 100644
index 00000000..abb9ec7b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/templates/os6_qos.j2
@@ -0,0 +1,97 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{#####################################################
+
+Purpose:
+Configure qos commands for os6 Devices.
+
+os6_qos:
+ class_map:
+ - name: CONTROL
+ type: match-all
+ match_condition:
+ - ip dscp 40
+ state: present
+ - name: testclass
+ type: match-all
+ match_condition:
+ - vlan 4
+ state: present
+ - name: test
+ type: match-any
+ match_condition:
+ - vlan 5
+ state: present
+ policy_map:
+ - name: testpolicy
+ type: in
+ class_instances:
+ - name: testclass
+ policy:
+ - assign-queue 4
+ - mirror Po1
+ state: present
+ - name: test
+ policy:
+ - assign-queue 4
+ state: present
+ state: present
+
+#####################################################}
+{% if os6_qos is defined and os6_qos %}
+{% for key in os6_qos.keys() %}
+ {% if key =="class_map" %}
+ {% for vars in os6_qos[key] %}
+ {% if vars.name is defined and vars.name %}
+ {% if vars.state is defined and vars.state == "absent" %}
+no class-map {{ vars.name }}
+ {% else %}
+ {% if vars.type is defined and vars.type %}
+class-map {{ vars.type }} {{ vars.name }}
+ {% else %}
+class-map {{ vars.name }}
+ {% endif %}
+ {% if vars.match_condition is defined and vars.match_condition %}
+ {% for match in vars.match_condition %}
+match {{ match }}
+ {% endfor %}
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% elif key =="policy_map" %}
+ {% for vars in os6_qos[key] %}
+ {% if vars.name is defined and vars.name %}
+ {% if vars.state is defined and vars.state == "absent" %}
+no policy-map {{ vars.name }}
+ {% else %}
+ {% if vars.type is defined and vars.type %}
+policy-map {{ vars.name }} {{ vars.type }}
+ {% else %}
+policy-map {{ vars.name }}
+ {% endif %}
+ {% if vars.class_instances is defined and vars.class_instances %}
+ {% for instance in vars.class_instances %}
+ {% if instance.name is defined and instance.name %}
+ {% if instance.state is defined and instance.state == "absent"%}
+no class {{ instance.name }}
+ {% else %}
+class {{ instance.name }}
+ {% endif %}
+ {% if instance.policy is defined and instance.policy %}
+ {% for policy in instance.policy %}
+{{ policy }}
+ {% endfor %}
+ {% endif %}
+exit
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+exit
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/inventory b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/inventory
new file mode 100644
index 00000000..878877b0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/inventory
@@ -0,0 +1,2 @@
+localhost
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/main.os6.yaml
new file mode 100644
index 00000000..7c8d983a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/main.os6.yaml
@@ -0,0 +1,73 @@
+---
+# Sample variables for OS6 device
+
+os6_qos:
+ class_map:
+ - name: CONTROL
+ type: match-all
+ match_condition:
+ - ip dscp 40
+ state: present
+ - name: VIDEO
+ type: match-all
+ match_condition:
+ - ip dscp 34
+ state: present
+ - name: VOICE-TRAFFIC
+ type: match-all
+ match_condition:
+ - ip dscp ef
+ state: present
+ - name: DATA-TRAFFIC
+ type: match-any
+ match_condition:
+ - vlan 100
+ - protocol tcp
+ - cos 5
+ - ip tos 11 11
+ state: present
+ policy_map:
+ - name: Ingress_QoS
+ type: in
+ class_instances:
+ - name: VIDEO
+ policy:
+ - assign-queue 1
+ - name: CONTROL
+ policy:
+ - assign-queue 2
+ - name: VOICE-TRAFFIC
+ policy:
+ - assign-queue 3
+ state: present
+ - name: Egress_QoS
+ type: out
+ class_instances:
+ - name: VIDEO
+ policy:
+ - assign-queue 5
+ - name: CONTROL
+ policy:
+ - assign-queue 5
+ - name: VOICE-TRAFFIC
+ policy:
+ - assign-queue 5
+ state: present
+ - name: QoS_In
+ type: in
+ class_instances:
+ - name: DATA-TRAFFIC
+ policy:
+ - assign-queue 1
+ - redirect Gi1/0/3
+ - police-simple 512000 64 conform-action set-cos-transmit 5 violate-action drop
+ state: present
+ - name: QoS_Out
+ type: out
+ class_instances:
+ - name: DATA-TRAFFIC
+ policy:
+ - assign-queue 6
+ - redirect Gi1/0/3
+ - police-simple 512000 64 conform-action set-cos-transmit 5 violate-action drop
+ state: present
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/test.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/test.yml
new file mode 100644
index 00000000..69562c92
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/tests/test.yml
@@ -0,0 +1,5 @@
+---
+- hosts: localhost
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_qos
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/vars/main.yml
new file mode 100644
index 00000000..5048d9b4
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_qos/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_qos \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/README.md
new file mode 100644
index 00000000..22da4f71
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/README.md
@@ -0,0 +1,108 @@
+SNMP role
+=========
+
+This role facilitates the configuration of global SNMP attributes. It supports the configuration of SNMP server attributes including users, group, community, location, and traps. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The SNMP role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_snmp keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``snmp_contact`` | string | Configures SNMP contact information, field needs to be left blank to remove the contact information | os6 |
+| ``snmp_location`` | string | Configures SNMP location information, field needs to be left blank to remove the location | os6 |
+| ``snmp_community`` | list | Configures SNMP community information (see ``snmp_community.*``) | os6 |
+| ``snmp_community.name`` | string (required) | Configures the SNMP community string | os6 |
+| ``snmp_community.access_mode`` | string: ro,rw | Configures access-mode for the community | os6 |
+| ``snmp_community.state`` | string: absent,present\* | Deletes the SNMP community information if set to absent | os6 |
+| ``snmp_host`` | list | Configures SNMP hosts to receive SNMP traps (see ``snmp_host.*``) | os6 |
+| ``snmp_host.ip`` | string | Configures the IP address of the SNMP trap host | os6 |
+| ``snmp_host.communitystring`` | string | Configures the SNMP community string of the trap host | os6 |
+| ``snmp_host.udpport`` | string | Configures the UDP number of the SNMP trap host (0 to 65535) | os6 |
+| ``snmp_host.state`` | string: absent,present\* | Deletes the SNMP trap host if set to absent | os6 |
+| ``snmp_traps`` | list | Configures SNMP traps (see ``snmp_traps.*``) | os6 |
+| ``snmp_traps.name`` | string | Enables SNMP traps | os6 |
+| ``snmp_traps.state`` | string: absent,present\* | Deletes the SNMP trap if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories, or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_snmp* role to completely set up the SNMP server attributes. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. It writes a simple playbook that only references the *os6_snmp* role. By including the role, you automatically get access to all of the tasks to configure SNMP features.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_snmp:
+ snmp_contact: test
+ snmp_location: Santa Clara
+ snmp_community:
+ - name: public
+ access_mode: ro
+ state: present
+ - name: private
+ access_mode: rw
+ state: present
+ snmp_host:
+ - ip: 10.0.0.1
+ communitystring: public
+ udpport: 1
+ state: absent
+ snmp_traps:
+ - name: config
+ state: present
+
+**Simple playbook to setup snmp — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_snmp
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/defaults/main.yml
new file mode 100644
index 00000000..994291fa
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_snmp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/handlers/main.yml
new file mode 100644
index 00000000..9dbd6173
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_snmp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/meta/main.yml
new file mode 100644
index 00000000..6c26f3d3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_snmp role facilitates the configuration of snmp attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tasks/main.yml
new file mode 100644
index 00000000..f738f547
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating SNMP configuration for os6"
+ template:
+ src: os6_snmp.j2
+ dest: "{{ build_dir }}/snmp6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning SNMP configuration for os6"
+ os6_config:
+ src: os6_snmp.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/templates/os6_snmp.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/templates/os6_snmp.j2
new file mode 100644
index 00000000..bf13fc37
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/templates/os6_snmp.j2
@@ -0,0 +1,94 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{####################################
+
+Purpose:
+Configure snmp commands for os6 Devices
+
+os6_snmp:
+ snmp_contact: test
+ snmp_location: Santa Clara
+ snmp_community:
+ - name: public
+ access_mode: ro
+ state: absent
+ - name: private
+ access_mode: rw
+ state: absent
+ snmp_traps:
+ - name: all
+ state: present
+ snmp_host:
+ - ip: 4.4.4.4
+ communitystring: public
+ udpport: 1
+ state: absent
+
+#####################################}
+{% if os6_snmp is defined and os6_snmp %}
+
+{% for key,value in os6_snmp|dictsort %}
+ {% if key=="snmp_contact" %}
+ {% if value %}
+snmp-server contact "{{ value }}"
+ {% else %}
+no snmp-server contact
+ {% endif %}
+ {% elif key == "snmp_location" %}
+ {% if value %}
+snmp-server location "{{ value }}"
+ {% else %}
+no snmp-server location
+ {% endif %}
+ {% elif key == "snmp_community" %}
+ {% if value %}
+ {% for item in value %}
+ {% if item.name is defined and item.name %}
+ {% if item.state is defined and item.state == "absent" %}
+no snmp-server community {{ item.name }}
+ {% else %}
+ {% if item.access_mode is defined and item.access_mode %}
+snmp-server community "{{ item.name }}" {{ item.access_mode }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% elif key == "snmp_host" and value %}
+ {% for item in value %}
+ {% if item.ip is defined and item.ip %}
+ {% if item.state is defined and item.state == "absent" %}
+no snmp-server host {{ item.ip }} traps
+ {% else %}
+ {% if item.communitystring is defined and item.communitystring %}
+ {% if item.udpport is defined and item.udpport %}
+snmp-server host {{ item.ip }} "{{ item.communitystring }}" udp-port {{ item.udpport }}
+ {% else %}
+snmp-server host {{ item.ip }} "{{ item.communitystring }}"
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor%}
+ {% elif key == "snmp_traps" %}
+ {% if value %}
+ {% for val in value %}
+ {% if val.name is defined and val.name %}
+ {% if val.state is defined and val.state == "absent" %}
+no snmp-server enable traps {{ val.name }}
+ {% else %}
+ {% if val.name == "all" %}
+ {% set trap_list = ['bgp state-changes limited','dvmrp','captive-portal','pim','captive-portal client-auth-failure','captive-portal client-connect','captive-portal client-db-full','captive-portal client-disconnect'] %}
+ {% for name in trap_list %}
+snmp-server enable traps {{ name }}
+ {% endfor %}
+ {% else %}
+snmp-server enable traps {{ val.name }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+
+ {% endif %}
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/main.os6.yaml
new file mode 100644
index 00000000..59f8399d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/main.os6.yaml
@@ -0,0 +1,23 @@
+---
+# vars file for dellemc.os6.os6_snmp,
+# below gives a sample configuration
+ # Sample variables for OS6 device
+
+os6_snmp:
+ snmp_contact: test
+ snmp_location: Santa Clara
+ snmp_community:
+ - name: public
+ access_mode: ro
+ state: absent
+ - name: private
+ access_mode: rw
+ state: absent
+ snmp_traps:
+ - name: all
+ state: present
+ snmp_host:
+ - ip: 4.4.4.4
+ communitystring: public
+ udpport: 1
+ state: absent \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/test.yaml
new file mode 100644
index 00000000..22e0b3d7
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_snmp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/vars/main.yml
new file mode 100644
index 00000000..361ecad5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_snmp/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_snmp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/README.md
new file mode 100644
index 00000000..2e70b192
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/README.md
@@ -0,0 +1,83 @@
+System role
+===========
+
+This role facilitates the configuration of global system attributes. It specifically enables configuration of hostname and enable password for OS6. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The System role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_system keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``hostname`` | string | Configures a hostname to the device (no negate command) | os6 |
+| ``enable_password`` | string | Configures the enable password, field needs to be left blank to remove the enable password from the system | os6 |
+| ``mtu`` | integer | Configures the maximum transmission unit (MTU) for all interfaces, field needs to be left blank to remove the MTU configurations from the system | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+********************
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories, or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_system role* to completely set the NTP server, hostname, enable password, management route, hash alogrithm, clock, line terminal, banner and reload type. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. The system role writes a simple playbook that only references the *os6_system* role. By including the role, you automatically get access to all of the tasks to configure system features.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_system:
+ hostname: host1
+ enable_password: dell
+ mtu: 2000
+
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_system
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/defaults/main.yml
new file mode 100644
index 00000000..c720d5cc
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_system \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/handlers/main.yml
new file mode 100644
index 00000000..a042201b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_system \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/meta/main.yml
new file mode 100644
index 00000000..8cd0e0b7
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_system role facilitates the configuration of system attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tasks/main.yml
new file mode 100644
index 00000000..2b8548f0
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating system configuration for os6"
+ template:
+ src: os6_system.j2
+ dest: "{{ build_dir }}/system6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning system configuration for os6"
+ os6_config:
+ src: os6_system.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/templates/os6_system.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/templates/os6_system.j2
new file mode 100644
index 00000000..b6ca686d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/templates/os6_system.j2
@@ -0,0 +1,34 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{####################################
+
+Purpose:
+Configure system commands for os6 devices
+
+os6_system:
+ hostname: os6
+ enable_password: force10
+ mtu: 2000
+
+#####################################}
+{% if os6_system is defined and os6_system %}
+
+{% if os6_system.hostname is defined and os6_system.hostname %}
+hostname "{{ os6_system.hostname }}"
+{% endif %}
+{% for key,value in os6_system.items() %}
+
+ {% if key == "enable_password" %}
+ {% if value %}
+enable password {{ value }}
+ {% else %}
+no enable password
+ {% endif %}
+ {% elif key== "mtu" %}
+ {% if value %}
+system jumbo mtu {{ value }}
+ {% else %}
+no system jumbo mtu
+ {% endif %}
+ {% endif %}
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/main.os6.yaml
new file mode 100644
index 00000000..0665ae6b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/main.os6.yaml
@@ -0,0 +1,9 @@
+---
+# vars file for dellemc.os6.os6_system,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_system:
+ hostname: os6
+ enable_password: force10
+ mtu: 2000
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/test.yaml
new file mode 100644
index 00000000..4a7a41de
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_system \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/vars/main.yml
new file mode 100644
index 00000000..773a8950
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_system/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_system,
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/README.md
new file mode 100644
index 00000000..2146cff8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/README.md
@@ -0,0 +1,93 @@
+Users role
+==========
+
+This role facilitates the configuration of global system user attributes. It supports the configuration of CLI users. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The Users role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**os6_users list keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``username`` | string (required) | Configures the username which must adhere to specific format guidelines (valid usernames begin with A-Z, a-z, or 0-9 and can also contain `@#$%^&*-_= +;<>,.~` characters) | os6 |
+| ``password`` | string | Configures the password set for the username; password length must be at least eight character | os6 |
+| ``privilege`` | int | Configures the privilege level for the user; either 0, 1, or 15; if this key is ommitted, the default privilege is 1 | os6 |
+| ``state`` | string: absent,present\* | Deletes a user account if set to absent | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories, or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses *os6_users* role to configure user attributes. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with the corresponding Dell EMC OS6 name.
+
+If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file. It writes a simple playbook that only references the *os6_users* role. By including the role, you automatically get access to all of the tasks to configure user features.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_users:
+ - username: u1
+ privilege: 0
+ state: absent
+ - username: u1
+ password: dell@force10
+ password: false
+ privilege: 1
+ state: present
+ - username: u2
+ password: test1234567
+ privilege: 3
+ state: present
+
+**Simple playbook to setup users — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_users
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/defaults/main.yml
new file mode 100644
index 00000000..ab2367be
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_users
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/handlers/main.yml
new file mode 100644
index 00000000..c1d47b7c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_users
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/meta/main.yml
new file mode 100644
index 00000000..cde049b5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_users role facilitates the configuration of user attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tasks/main.yml
new file mode 100644
index 00000000..fff8adea
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating users configuration for os6"
+ template:
+ src: os6_users.j2
+ dest: "{{ build_dir }}/users6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning users configuration for os6"
+ os6_config:
+ src: os6_users.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/templates/os6_users.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/templates/os6_users.j2
new file mode 100644
index 00000000..52ff6880
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/templates/os6_users.j2
@@ -0,0 +1,37 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{####################################
+
+Purpose:
+Configure users commands for os6 Devices
+
+os6_users:
+ - username: test
+ password: test
+ privilege: 0
+ state: absent
+
+#####################################}
+{% if os6_users is defined and os6_users %}
+
+{% for item in os6_users %}
+ {% if item.username is defined %}
+ {% if item.state is defined and item.state == "absent" %}
+no username {{ item.username }}
+ {% else %}
+ {% if item.password is defined and item.password %}
+ {% if item.privilege is defined and item.privilege %}
+username {{ item.username }} password {{ item.password }} privilege {{ item.privilege }}
+ {% else %}
+username {{ item.username }} password {{ item.password }}
+ {% endif %}
+ {% elif not item.password %}
+ {% if item.privilege is defined and item.privilege %}
+username {{ item.username }} nopassword privilege {{ item.privilege }}
+ {% else %}
+username {{ item.username }} nopassword
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+{% endfor %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/main.os6.yaml
new file mode 100644
index 00000000..abf69756
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/main.os6.yaml
@@ -0,0 +1,10 @@
+---
+# vars file for dellemc.os6.os6_users,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_users:
+ - username: test
+ password: test
+ privilege: 0
+ state: absent \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/test.yaml
new file mode 100644
index 00000000..b07c1dd8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_users
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/vars/main.yml
new file mode 100644
index 00000000..e9c84b96
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_users/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_users
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/README.md
new file mode 100644
index 00000000..5ef09a9f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/README.md
@@ -0,0 +1,104 @@
+VLAN role
+=========
+
+This role facilitates configuring virtual LAN (VLAN) attributes. It supports the creation and deletion of a VLAN and its member ports. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The VLAN role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- For variables with no state variable, setting an empty value for the variable negates the corresponding configuration
+- `os6_vlan` (dictionary) holds the key with the VLAN ID key and default-vlan key.
+- VLAN ID key should be in format "vlan <ID>" (1 to 4094)
+- Variables and values are case-sensitive
+
+
+**VLAN ID keys**
+
+| Key | Type | Notes | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``tagged_members_append`` | boolean: true,false | appends the tagged vlan members to the existing list on the interfaces | os6 |
+| ``tagged_members_state`` | string: absent,present | removes all tagged members | os6 |
+| ``vlan <id>`` | string | specifiy the vlan to be configured (see ``vlan <id>.*``) | os6 |
+| ``vlan <id>.name`` | string | Configures the name of the VLAN, field needs to be left blank to remove the user defined name and assign the default name | os6 |
+| ``vlan <id>.tagged_members`` | list | Specifies the list of port members to be tagged to the corresponding VLAN (see ``tagged_members.*``) | os6 |
+| ``tagged_members.port`` | string | Specifies valid device interface names to be tagged for each VLAN | os6 |
+| ``tagged_members.state`` | string: absent,present | Deletes the tagged association for the VLAN if set to absent | os6 |
+| ``vlan <id>.untagged_members`` | list | Specifies the list of port members to be untagged to the corresponding VLAN (see ``untagged_members.*``) | os6 |
+| ``untagged_members.port`` | string | Specifies valid device interface names to be untagged for each VLAN | os6 |
+| ``untagged_members.state`` | string: absent,present | Deletes the untagged association for the VLAN if set to absent | os6 |
+| ``vlan <id>.state`` | string: absent,present\* | Deletes the VLAN corresponding to the ID if set to absent | os6 |
+
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars directories* or inventory, or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the ANSIBLE_REMOTE_PORT option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+## Example playbook
+
+This example uses the *os6_vlan* role to setup the VLAN ID and name, and it configures tagged and untagged port members for the VLAN. You can also delete the VLAN with the ID or delete the members associated to it. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. It writes a simple playbook that only references the os6_vlan role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+ os6_vlan:
+ tagged_members_append: False
+ tagged_members_state: present
+ vlan 100:
+ name: "Mgmt Network"
+ tagged_members:
+ - port: Te1/0/30
+ state: absent
+ untagged_members:
+ - port: Fo1/0/14
+ state: present
+ state: present
+
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_vlan
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/defaults/main.yml
new file mode 100644
index 00000000..623b2076
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_vlan \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/handlers/main.yml
new file mode 100644
index 00000000..e3d581be
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_vlan
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/meta/main.yml
new file mode 100644
index 00000000..0022966d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_vlan role facilitates the configuration of VLAN attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - emc
+ - dellemc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tasks/main.yml
new file mode 100644
index 00000000..ca68af38
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating VLAN configuration for os6"
+ template:
+ src: os6_vlan.j2
+ dest: "{{ build_dir }}/vlan6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning VLAN configuration for os6"
+ os6_config:
+ src: os6_vlan.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/templates/os6_vlan.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/templates/os6_vlan.j2
new file mode 100644
index 00000000..b0cbe6ff
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/templates/os6_vlan.j2
@@ -0,0 +1,135 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{#########################################
+
+Purpose:
+Configure VLAN Interface commands for os6 Devices
+
+os6_vlan:
+ tagged_members_append: False
+ tagged_members_state: present
+ vlan 2:
+ name: "os6vlan"
+ tagged_members:
+ - port: Gi1/0/1
+ state: present
+ - port: Gi1/0/2
+ state: absent
+ untagged_members:
+ - port: Gi1/0/3
+ state: present
+ - port: Gi1/0/4
+ state: absent
+ state: present
+
+#########################################}
+{% if os6_vlan is defined and os6_vlan -%}
+{%- for key in os6_vlan.keys() -%}
+{% if 'vlan' in key %}
+{%- set vlan_id = key.split(" ") -%}
+{%- set vlan_vars = os6_vlan[key] -%}
+ {% if vlan_vars.state is defined and vlan_vars.state=="absent" -%}
+no vlan {{ vlan_id[1] }}
+ {%- else -%}
+vlan {{ vlan_id[1] }}
+ {% if vlan_vars.name is defined -%}
+ {% if vlan_vars.name-%}
+name "{{ vlan_vars.name }}"
+ {% else -%}
+no name
+ {% endif %}
+ {% endif %}
+exit
+ {% if vlan_vars.untagged_members is defined -%}
+ {%- for ports in vlan_vars.untagged_members -%}
+ {% if ports.port is defined and ports.port -%}
+ {% if ports.state is defined and ports.state == "absent" -%}
+interface {{ ports.port }}
+no switchport access vlan
+ {% else -%}
+interface {{ ports.port }}
+switchport access vlan {{ vlan_id[1] }}
+ {% endif -%}
+ {% endif -%}
+exit
+ {% endfor -%}
+ {% endif -%}
+ {% endif -%}
+{% endif -%}
+{% endfor -%}
+{%- set cmd_dict = {} -%}
+{%- for key in os6_vlan.keys() -%}
+{% if 'vlan' in key %}
+{%- set vlan_id = key.split(" ") -%}
+{%- set vlan_vars = os6_vlan[key] -%}
+{%- set tagged_vlans = [] -%}
+{%- set tagged_members_present = [] -%}
+{%- set tagged_members_absent= [] -%}
+{% if vlan_vars.tagged_members is defined and vlan_vars.tagged_members -%}
+ {%- for ports in vlan_vars.tagged_members -%}
+ {% if ports.port is defined and ports.port -%}
+ {%- set port = ports.port -%}
+ {% if ports.state is defined and ports.state == 'absent' -%}
+ {% if port in cmd_dict and 'absent' in cmd_dict[port] -%}
+ {%- set tmp_vlan_list=cmd_dict[port]['absent'] -%}
+ {%- set x=tmp_vlan_list.extend([vlan_id[1]]) -%}
+ {%- set x=cmd_dict[port].update({'absent': tmp_vlan_list}) -%}
+ {%- elif port in cmd_dict and 'absent' not in cmd_dict[port] -%}
+ {%- set x=cmd_dict[port].update({'absent': [vlan_id[1]]}) -%}
+ {%- else -%}
+ {%- set x=cmd_dict.update({port: {'absent': [vlan_id[1]]}}) -%}
+ {% endif -%}
+ {%- else -%}
+ {% if port in cmd_dict and 'present' in cmd_dict[port] -%}
+ {%- set tmp_vlan_list=cmd_dict[port]['present'] -%}
+ {%- set x=tmp_vlan_list.extend([vlan_id[1]]) -%}
+ {%- set x=cmd_dict[port].update({'present': tmp_vlan_list}) -%}
+ {%- elif port in cmd_dict and 'present' not in cmd_dict[port] -%}
+ {%- set x=cmd_dict[port].update({'present': [vlan_id[1]]}) -%}
+ {%- else -%}
+ {%- set x=cmd_dict.update({port: {'present': [vlan_id[1]]}}) -%}
+ {% endif -%}
+ {% endif -%}
+ {% endif -%}
+ {% endfor -%}
+{% endif -%}
+{% endif -%}
+ {% endfor -%}
+{%- for cmd in cmd_dict -%}
+interface {{cmd}}
+{% if 'tagged_members_state' in os6_vlan and os6_vlan['tagged_members_state']=='absent' %}
+no switchport trunk allowed vlan
+{% else %}
+{% for cmd_item in cmd_dict[cmd] %}
+{% if 'present' == cmd_item -%}
+{% set sort_list = cmd_dict[cmd]['present']| sort %}
+{% elif 'absent' in cmd_item -%}
+{% set sort_list = cmd_dict[cmd]['absent']| sort %}
+{% endif %}
+{% set range_list = [] %}
+{% set temp = {'temp': []} %}
+{% for i in range(sort_list|length) %}
+{% set x=temp['temp'].extend([sort_list[i]]) %}
+{% if (i != sort_list|length -1 and sort_list[i+1]|int - sort_list[i]|int > 1) or (i == sort_list|length -1) %}
+{% if temp['temp']|first != temp['temp']|last %}
+{% set x=range_list.extend([temp['temp']|first|string+'-'+temp['temp']|last|string]) %}
+{% set x=temp.update({'temp': []}) %}
+{% else %}
+{% set x=range_list.extend([temp['temp']|last|string]) %}
+{% set x=temp.update({'temp': []}) %}
+{% endif %}
+{% endif %}
+{% endfor %}
+{% if 'present' == cmd_item -%}
+{% if 'tagged_members_append' in os6_vlan and os6_vlan['tagged_members_append'] %}
+switchport trunk allowed vlan add {{ range_list| join(',') }}
+{% else %}
+switchport trunk allowed vlan {{ range_list| join(',') }}
+{% endif -%}
+{% elif 'absent' == cmd_item -%}
+switchport trunk allowed vlan remove {{ range_list| join(',') }}
+{% endif -%}
+{% endfor -%}
+exit
+{% endif -%}
+{% endfor -%}
+{% endif -%}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/main.os6.yaml
new file mode 100644
index 00000000..5b0f68cf
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/main.os6.yaml
@@ -0,0 +1,21 @@
+---
+# vars file for dellemc.os6.os6_vlan,
+# below gives a example configuration
+# Sample variables for OS6 device
+
+os6_vlan:
+ vlan 100:
+ tagged_members_append: False
+ tagged_members_state: present
+ name: "Blue Network"
+ tagged_members:
+ - port: Te1/0/1
+ state: present
+ - port: Te1/0/2
+ state: present
+ untagged_members:
+ - port: Te1/0/3
+ state: present
+ - port: Te1/0/4
+ state: present
+ state: present \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/test.yaml
new file mode 100644
index 00000000..03697d94
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_vlan
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/vars/main.yml
new file mode 100644
index 00000000..acd743a7
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vlan/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_vlan
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/README.md
new file mode 100644
index 00000000..9fd9f861
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/README.md
@@ -0,0 +1,92 @@
+VRRP role
+=========
+
+This role facilitates configuring virtual router redundancy protocol (VRRP) attributes. It supports the creation of VRRP groups for interfaces and setting the VRRP group attributes. This role is abstracted for OS6.
+
+The VRRP role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- If `os6_cfg_generate` is set to true, the variable generates the role configuration commands in a file
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value for any variable negates the corresponding configuration
+- `os6_vrrp` (dictionary) holds a dictionary with the interface name key
+- Interface name can correspond to any of the valid os6 interface with a unique interface identifier name
+- Physical interfaces names must be in *<interfacename> <tuple>* format (for example *Fo1/0/1*)
+- Variables and values are case-sensitive
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|-----------------------|
+| ``vrrp_group_id`` | integer (required) | Configures the ID for the VRRP group (1 to 255) | os6 |
+| ``description`` | string | Configures a single line description for the VRRP group | os6 |
+| ``virtual_address`` | string | Configures a virtual address to the VRRP group (A.B.C.D format) | os6 |
+| ``enable`` | boolean: true,false | Enables/disables the VRRP group at the interface | os6 |
+| ``preempt`` | boolean: true\*,false | Configures preempt mode on the VRRP group | os6 |
+| ``priority`` |integer | Configures priority for the VRRP group (1 to 255; default 100), field needs to be left blank to remove the priority | os6 |
+| ``state`` | string: present\*,absent | Deletes the VRRP group from the interface if set to absent; VRRP group needs to be disabled to delete the VRRP group from the interface | os6 |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories, or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-----------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_vrrp* role to configure VRRP commands at the interfaces. It creates a *hosts* file with the switch details and corresponding variables. The hosts file should define the `ansible_network_os` variable with corresponding Dell EMC OS6 name.
+
+When `os6_cfg_generate` is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, the variable is set to false. It writes a simple playbook that only references the *os6_vrrp* role.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/os6
+ os6_vrrp:
+ vlan 4:
+ - vrrp_group_id: 4
+ state: present
+ description: "Interface-vrrp4"
+ virtual_address: 10.2.0.1
+ enable: true
+ priority: 120
+ preempt: false
+
+
+**Simple playbook to setup system — switch1.yaml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_vrrp
+
+**Run**
+
+ ansible-playbook -i hosts leaf.yaml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/defaults/main.yml
new file mode 100644
index 00000000..ab5dc0ab
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_vrrp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/handlers/main.yml
new file mode 100644
index 00000000..2e0b8336
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_vrrp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/meta/main.yml
new file mode 100644
index 00000000..00720c76
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/meta/main.yml
@@ -0,0 +1,19 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: >
+ The os6_vrrp role facilitates the configuration of Virtual Router Redundancy Protocol (VRRP) attributes in
+ devices running Dell EMC Networking Operating Systems.
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - dellemc
+ - emc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tasks/main.yml
new file mode 100644
index 00000000..0b22c16e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tasks/main.yml
@@ -0,0 +1,16 @@
+---
+# tasks file for os6
+ - name: "Generating VRRP configuration for os6"
+ template:
+ src: os6_vrrp.j2
+ dest: "{{ build_dir }}/vrrp6_{{ hostname }}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False'))| bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning VRRP configuration for os6"
+ os6_config:
+ src: os6_vrrp.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/templates/os6_vrrp.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/templates/os6_vrrp.j2
new file mode 100644
index 00000000..03cb3b80
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/templates/os6_vrrp.j2
@@ -0,0 +1,72 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{#########################################
+Purpose:
+Configure VRRP Interface on OS6 Devices
+Variable file example:
+---
+# VLAN Interface
+os6_vrrp:
+ vlan 4:
+ - vrrp_group_id: 4
+ state: present
+ description: "Interface-vrrp4"
+ virtual_address: 10.2.0.1
+ enable: true
+ priority: 120
+ preempt: false
+#######################################
+#}
+{% if os6_vrrp is defined and os6_vrrp %}
+{% for key in os6_vrrp.keys() %}
+ {% set vrrp_vars = os6_vrrp[key] %}
+ {% if vrrp_vars %}
+interface {{ key }}
+ {% for group in vrrp_vars %}
+ {% if group.vrrp_group_id is defined and group.vrrp_group_id %}
+ {% if group.state is defined and group.state == "absent" %}
+ {% if group.enable is defined and not group.enable %}
+no vrrp {{ group.vrrp_group_id }} mode
+ {% endif %}
+no vrrp {{ group.vrrp_group_id }}
+ {% else %}
+vrrp {{ group.vrrp_group_id }}
+ {% if group.virtual_address is defined %}
+ {% if group.virtual_address %}
+vrrp {{ group.vrrp_group_id }} ip {{ group.virtual_address }}
+ {% endif %}
+ {% endif %}
+ {% if group.description is defined %}
+ {% if group.description %}
+vrrp {{ group.vrrp_group_id }} description {{ group.description }}
+ {% else %}
+no vrrp {{ group.vrrp_group_id }} description
+ {% endif %}
+ {% endif %}
+ {% if group.preempt is defined %}
+ {% if group.preempt %}
+vrrp {{ group.vrrp_group_id }} preempt
+ {% else %}
+no vrrp {{ group.vrrp_group_id }} preempt
+ {% endif %}
+ {% endif %}
+ {% if group.enable is defined %}
+ {% if group.enable %}
+vrrp {{ group.vrrp_group_id }} mode
+ {% else %}
+no vrrp {{ group.vrrp_group_id }} mode
+ {% endif %}
+ {% endif %}
+ {% if group.priority is defined %}
+ {% if group.priority %}
+vrrp {{ group.vrrp_group_id }} priority {{ group.priority }}
+ {% else %}
+no vrrp {{ group.vrrp_group_id }} priority
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+exit
+ {% endif %}
+{% endfor %}
+{% endif %} \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/main.os6.yaml
new file mode 100644
index 00000000..b20d3376
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/main.os6.yaml
@@ -0,0 +1,14 @@
+---
+# vars file for dellemc.os6.os6_vrrp,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_vrrp:
+ vlan 4:
+ - vrrp_group_id: 4
+ state: present
+ description: "Interface-vrrp4"
+ virtual_address: 10.2.0.1
+ enable: true
+ priority: 120
+ preempt: false \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/test.yaml
new file mode 100644
index 00000000..660d49b3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_vrrp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/vars/main.yml
new file mode 100644
index 00000000..9eb17b5d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_vrrp/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_vrrp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/LICENSE b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/LICENSE
new file mode 100644
index 00000000..2c9b8e1f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (c) 2020, Dell Inc. All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (c) 2020, Dell Inc. All rights reserved.
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/README.md b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/README.md
new file mode 100644
index 00000000..38adc0f3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/README.md
@@ -0,0 +1,117 @@
+# xSTP role
+
+This role facilitates the configuration of xSTP attributes. It supports multiple version of spanning-tree protocol (STP), rapid spanning-tree (RSTP), rapid per-VLAN spanning-tree (Rapid PVST+), multiple spanning-tree (MST), and per-VLAN spanning-tree (PVST). It supports the configuration of bridge priority, enabling and disabling spanning-tree, creating and deleting instances, and mapping virtual LAN (VLAN) to instances. This role is abstracted for Dell EMC PowerSwitch platforms running Dell EMC OS6.
+
+The xSTP role requires an SSH connection for connectivity to a Dell EMC OS6 device. You can use any of the built-in OS connection variables.
+
+
+Role variables
+--------------
+
+- Role is abstracted using the `ansible_network_os` variable that can take `dellemc.os6.os6` as a value
+- `os6_xstp` (dictionary) contains the hostname (dictionary)
+- Hostname is the value of the *hostname* variable that corresponds to the name of the OS device
+- Any role variable with a corresponding state variable set to absent negates the configuration of that variable
+- Setting an empty value to any variable negates the corresponding configuration
+- Variables and values are case-sensitive
+
+**hostname keys**
+
+| Key | Type | Description | Support |
+|------------|---------------------------|---------------------------------------------------------|----------------------|
+| ``type`` | string (required) | Configures the type of spanning-tree mode specified that can vary according to the OS device; include RSTP, rapid-PVST, and MST | os6 |
+| ``enable`` | boolean: true,false | Enables/disables the spanning-tree protocol specified in the type variable | os6 |
+| ``stp`` | dictionary | Configures simple spanning-tree protocol (see ``stp.* keys``) | os6 |
+| ``stp.bridge_priority`` | integer | Configures bridge-priority for the spanning-tree (0 to 61440 in multiples of 4096) | os6 |
+| ``rstp`` | dictionary | Configures rapid spanning-tree (see ``rstp.*``) | os6 |
+| ``rstp.bridge_priority`` | integer | Configures bridge-priority for the spanning-tree (0 to 61440 in multiples of 4096) | os6 |
+| ``pvst`` | dictionary | Configures per-VLAN spanning-tree protocol (see ``pvst.*``) | os6 |
+| ``pvst.vlan`` | list | Configures the VLAN for PVST (see ``vlan.*``) | os6 |
+| ``vlan.range_or_id`` | string | Configures a VLAN/range of VLANs for the per-VLAN spanning-tree protocol | os6 |
+| ``vlan.bridge_priority`` | integer | Configures bridge-priority for the per-VLAN spanning-tree (0 to 61440 in multiples of 4096); mutually exclusive with *vlan.root* | os6 |
+| ``vlan.state`` | string: absent, present\* | Deletes the configured PVST VLAN with ID if set to absent | os6 |
+| ``mstp`` | dictionary | Configures multiple spanning-tree protocol (see ``mstp.*``) | os6 |
+| ``mstp.mstp_instances`` | list | Configures a MSTP instance (see ``mstp_instances.*``) | os6 |
+| ``mstp_instances.number`` | integer | Configures the multiple spanning-tree instance number | os6 |
+| ``mstp_instances.vlans`` | string | Configures a VLAN/range of VLANs by mapping it to the instance number | os6 |
+| ``mstp_instances.bridge_priority`` | integer | Configures the bridge-priority for the spanning-tree (0 to 61440 in multiples of 4096); mutually exclusive with *mstp_instances.root* | os6 |
+| ``mstp_instances.vlans_state`` | string: absent,present\* | Deletes a set of VLANs mapped to the spanning-tree instance if set to absent | os6 |
+| ``intf`` | list | Configures multiple spanning-tree in an interface (see ``intf.*``) | os6 |
+| ``intf <interface name>``| dictionary | Configures the interface name (see ``intf.<interface name>.*``) | os6 |
+| ``intf.<interface name>.edge_port`` | boolean: true,false | Enables port fast at the interface level if set to true | os6 |
+
+> **NOTE**: Asterisk (_*_) denotes the default value if none is specified.
+
+Connection variables
+--------------------
+
+Ansible Dell EMC network roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory or in the playbook itself.
+
+| Key | Required | Choices | Description |
+|-------------|----------|------------|-------------------------------------------------------|
+| ``ansible_host`` | yes | | Specifies the hostname or address for connecting to the remote device over the specified transport |
+| ``ansible_port`` | no | | Specifies the port used to build the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_PORT` option is used; it defaults to 22 |
+| ``ansible_ssh_user`` | no | | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the `ANSIBLE_REMOTE_USER` environment variable value is used |
+| ``ansible_ssh_pass`` | no | | Specifies the password that authenticates the connection to the remote device. |
+| ``ansible_become`` | no | yes, no\* | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the `ANSIBLE_BECOME` environment variable value is used, and the device attempts to execute all commands in non-privileged mode |
+| ``ansible_become_method`` | no | enable, sudo\* | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the `ANSIBLE_BECOME_METHOD` environment variable value is used |
+| ``ansible_become_pass`` | no | | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |
+| ``ansible_network_os`` | yes | os6, null\* | Loads the correct terminal and cliconf plugins to communicate with the remote device |
+
+> **NOTE**: Asterisk (\*) denotes the default value if none is specified.
+
+Example playbook
+----------------
+
+This example uses the *os6_xstp* role to configure different variants of spanning-tree. Based on the type of STP and defined objects, VLANs are associated and bridge priorities are assigned. It creates a *hosts* file with the switch details, and a *host_vars* file with connection variables. The corresponding role variables are defined in the *vars/main.yml* file at the role path.
+It writes a simple playbook that only references the *os6_xstp* role. By including the role, you automatically get access to all of the tasks to configure xSTP.
+
+**Sample hosts file**
+
+ switch1 ansible_host= <ip_address>
+
+**Sample host_vars/switch1**
+
+ hostname: switch1
+ ansible_become: yes
+ ansible_become_method: enable
+ ansible_become_pass: xxxxx
+ ansible_ssh_user: xxxxx
+ ansible_ssh_pass: xxxxx
+ ansible_network_os: dellemc.os6.os6
+ build_dir: ../temp/temp_os6
+
+
+**Sample vars/main.yml**
+
+ os6_xstp:
+ type: stp
+ enable: true
+ stp:
+ bridge_priority: 4096
+ pvst:
+ vlan:
+ - range_or_id: 10
+ bridge_priority: 4096
+ state: present
+ mstp:
+ mstp_instances:
+ - number: 1
+ vlans: 10,12
+ bridge_priority: 4096
+ vlans_state: present
+ intf:
+ Fo4/0/1:
+ edge_port: true
+
+**Simple playbook to setup system — switch1.yml**
+
+ - hosts: switch1
+ roles:
+ - dellemc.os6.os6_xstp
+
+**Run**
+
+ ansible-playbook -i hosts switch1.yml
+
+(c) 2017-2020 Dell Inc. or its subsidiaries. All rights reserved.
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/defaults/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/defaults/main.yml
new file mode 100644
index 00000000..92da22de
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+# defaults file for dellemc.os6.os6_xstp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/handlers/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/handlers/main.yml
new file mode 100644
index 00000000..03d5fa49
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/handlers/main.yml
@@ -0,0 +1,2 @@
+---
+# handlers file for dellemc.os6.os6_xstp \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/meta/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/meta/main.yml
new file mode 100644
index 00000000..c9b03ffe
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/meta/main.yml
@@ -0,0 +1,18 @@
+# Copyright (c) 2020 Dell Inc.
+---
+galaxy_info:
+ author: Dell EMC Networking Engineering
+ description: The os6_xstp role facilitates the configuration of STP attributes in devices running Dell EMC Networking Operating Systems.
+ company: Dell Inc
+ license: GPLv3
+ min_ansible_version: 2.9.6
+
+ platforms:
+ - name: os6
+
+ galaxy_tags:
+ - networking
+ - dell
+ - dellemc
+ - emc
+ - os6
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tasks/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tasks/main.yml
new file mode 100644
index 00000000..a9a344e5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+# tasks file for os6
+
+ - name: "Generating xSTP configuration for os6"
+ template:
+ src: os6_xstp.j2
+ dest: "{{ build_dir }}/xstp6_{{hostname}}.conf.part"
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6") and ((os6_cfg_generate | default('False')) | bool)
+# notify: save config os6
+ register: generate_output
+
+ - name: "Provisioning xSTP configuration for os6"
+ os6_config:
+ src: os6_xstp.j2
+ when: (ansible_network_os is defined and ansible_network_os == "dellemc.os6.os6")
+# notify: save config os6
+ register: output \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/templates/os6_xstp.j2 b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/templates/os6_xstp.j2
new file mode 100644
index 00000000..2c6f482f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/templates/os6_xstp.j2
@@ -0,0 +1,129 @@
+#jinja2: trim_blocks: True,lstrip_blocks: True
+{##################################################
+PURPOSE: Configure xSTP commands for os6 devices
+
+os6_xstp:
+ type: stp
+ enable: true
+ stp:
+ bridge_priority: 4096
+ pvst:
+ vlan:
+ - range_or_id: 10
+ bridge_priority: 4096
+ state: present
+ mstp:
+ mstp_instances:
+ - number: 1
+ vlans: 10,12
+ vlans_state: present
+ bridge_priority: 4096
+ intf:
+ Te1/1/8:
+ edge_port: true
+
+#####################################################}
+{% if os6_xstp is defined and os6_xstp %}
+{% set xstp_vars = os6_xstp %}
+{% if xstp_vars.type is defined and xstp_vars.type %}
+ {% if xstp_vars.enable is defined %}
+ {% if xstp_vars.enable %}
+spanning-tree mode {{ xstp_vars.type }}
+ {% else %}
+no spanning-tree
+ {% endif %}
+ {% endif %}
+{% endif %}
+{% if xstp_vars.stp is defined and xstp_vars.stp %}
+ {% set val = xstp_vars.stp %}
+ {% if val.bridge_priority is defined %}
+ {% if val.bridge_priority == 0 or val.bridge_priority %}
+spanning-tree priority {{ val.bridge_priority }}
+ {% else %}
+no spanning-tree priority
+ {% endif %}
+ {% endif %}
+{% endif %}
+
+{% if xstp_vars.pvst is defined and xstp_vars.pvst %}
+ {% set val = xstp_vars.pvst %}
+ {% if val.vlan is defined and val.vlan %}
+ {% for vlan in val.vlan %}
+ {% if vlan.range_or_id is defined and vlan.range_or_id %}
+ {% if "-" in (vlan.range_or_id|string) %}
+ {% set vlan_start_end = (vlan.range_or_id|string).split("-") %}
+ {% set vlans = [] %}
+ {% for id in range(vlan_start_end[0]|int,vlan_start_end[1]|int+1) %}
+ {{ vlans.append(id) }}
+ {% endfor %}
+ {% else %}
+ {% set vlans = (vlan.range_or_id|string).split(",") %}
+ {% endif %}
+ {% for vlanid in vlans %}
+ {% if vlan.state is defined and vlan.state == "absent" %}
+ {% if vlan.bridge_priority is defined %}
+ {% if not vlan.bridge_priority %}
+no spanning-tree vlan {{ vlanid}} priority
+ {% endif %}
+ {% endif %}
+ {% else %}
+ {% if vlan.bridge_priority is defined %}
+ {% if vlan.bridge_priority == 0 or vlan.bridge_priority %}
+spanning-tree vlan {{ vlanid }} priority {{ vlan.bridge_priority }}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+{% endif %}
+{% if xstp_vars.mstp is defined and xstp_vars.mstp %}
+ {% set val = xstp_vars.mstp %}
+ {% if val.mstp_instances is defined and val.mstp_instances %}
+ {% for instance in val.mstp_instances %}
+ {% if instance.number is defined and instance.number %}
+ {% if instance.bridge_priority is defined %}
+ {% if instance.bridge_priority == 0 or instance.bridge_priority %}
+spanning-tree mst {{ instance.number }} priority {{ instance.bridge_priority }}
+ {% else %}
+no spanning-tree mst {{ instance.number }} priority
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% if val.mstp_instances is defined and val.mstp_instances %}
+spanning-tree mst configuration
+ {% for instance in val.mstp_instances %}
+ {% if instance.number is defined and instance.number %}
+ {% if instance.vlans is defined and instance.vlans %}
+ {% set vlans = (instance.vlans|string).split(",") %}
+ {% for vlan in vlans %}
+ {% if instance.vlans_state is defined and instance.vlans_state == "absent" %}
+instance {{ instance.number }} remove vlan {{ vlan }}
+ {% else %}
+instance {{ instance.number }} add vlan {{ vlan }}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+exit
+ {% endif %}
+{% endif %}
+{% if xstp_vars.intf is defined and xstp_vars.intf %}
+ {% for intr in xstp_vars.intf.keys() %}
+ {% set intf_vars = xstp_vars.intf[intr] %}
+interface {{ intr }}
+ {% if intf_vars.edge_port is defined %}
+ {% if not intf_vars.edge_port %}
+no spanning-tree portfast
+ {% else %}
+spanning-tree portfast
+ {% endif %}
+exit
+ {% endif %}
+ {% endfor %}
+{% endif %}
+{% endif %}
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/inventory.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/inventory.yaml
new file mode 100644
index 00000000..2980eb65
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/inventory.yaml
@@ -0,0 +1,6 @@
+switch1 ansible_host=100.94.51.40 ansible_network_os="dellemc.os6.os6"
+switch2 ansible_host=100.94.52.38 ansible_network_os="dellemc.os6.os6"
+
+[os6switches]
+switch1
+switch2 \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/main.os6.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/main.os6.yaml
new file mode 100644
index 00000000..5d11b69a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/main.os6.yaml
@@ -0,0 +1,24 @@
+---
+# vars file for dellemc.os6.os6_xstp,
+# below gives a sample configuration
+# Sample variables for OS6 device
+
+os6_xstp:
+ type: stp
+ enable: true
+ stp:
+ bridge_priority: 4096
+ pvst:
+ vlan:
+ - range_or_id: 10
+ bridge_priority: 4096
+ state: present
+ mstp:
+ mstp_instances:
+ - number: 1
+ vlans: 10,12
+ bridge_priority: 4096
+ vlans_state: present
+ intf:
+ Te1/0/5:
+ edge_port: true \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/test.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/test.yaml
new file mode 100644
index 00000000..4efc0f33
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/tests/test.yaml
@@ -0,0 +1,5 @@
+---
+- hosts: os6switches
+ connection: network_cli
+ roles:
+ - dellemc.os6.os6_xstp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/vars/main.yml b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/vars/main.yml
new file mode 100644
index 00000000..bd62f2a5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/roles/os6_xstp/vars/main.yml
@@ -0,0 +1,2 @@
+---
+# vars file for dellemc.os6.os6_xstp
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/.gitignore b/collections-debian-merged/ansible_collections/dellemc/os6/tests/.gitignore
new file mode 100644
index 00000000..ea1472ec
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/.gitignore
@@ -0,0 +1 @@
+output/
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/defaults/main.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/defaults/main.yaml
new file mode 100644
index 00000000..5f709c5a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/defaults/main.yaml
@@ -0,0 +1,2 @@
+---
+testcase: "*"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/cli.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/cli.yaml
new file mode 100644
index 00000000..4cf68f17
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/cli.yaml
@@ -0,0 +1,13 @@
+---
+- name: collect all cli test cases
+ find:
+ paths: "{{ role_path }}/tests/cli"
+ patterns: "{{ testcase }}.yaml"
+ register: test_cases
+
+- name: set test_items
+ set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
+
+- name: run test case
+ include: "{{ item }}"
+ with_items: "{{ test_items }}" \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/main.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/main.yaml
new file mode 100644
index 00000000..d4898c29
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tasks/main.yaml
@@ -0,0 +1,2 @@
+---
+- { include: cli.yaml, tags: ['cli'] } \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/bad_operator.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/bad_operator.yaml
new file mode 100644
index 00000000..95770c6a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/bad_operator.yaml
@@ -0,0 +1,20 @@
+---
+- debug: msg="START cli/bad_operator.yaml"
+
+- name: test bad operator
+ os6_command:
+ commands:
+ - show version
+ - show interfaces GigabitEthernet 1/0/1
+ wait_for:
+ - "result[0] contains 'Description: Foo'"
+ provider: "{{ cli }}"
+ register: result
+ ignore_errors: yes
+
+- assert:
+ that:
+ - "result.failed == true"
+ - "result.msg is defined"
+
+- debug: msg="END cli/bad_operator.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/contains.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/contains.yaml
new file mode 100644
index 00000000..dd0f7a78
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/contains.yaml
@@ -0,0 +1,20 @@
+---
+- debug: msg="START cli/contains.yaml"
+
+- name: test contains operator
+ os6_command:
+ commands:
+ - show version
+ - show interfaces GigabitEthernet 1/0/1
+ wait_for:
+ - "result[0] contains 5"
+ - "result[1] contains Access"
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.stdout is defined"
+
+- debug: msg="END cli/contains.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/invalid.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/invalid.yaml
new file mode 100644
index 00000000..493196df
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/invalid.yaml
@@ -0,0 +1,28 @@
+---
+- debug: msg="START cli/invalid.yaml"
+
+- name: run invalid command
+ os6_command:
+ commands: ['show foo']
+ provider: "{{ cli }}"
+ register: result
+ ignore_errors: yes
+
+- assert:
+ that:
+ - "result.failed"
+
+- name: run commands that include invalid command
+ os6_command:
+ commands:
+ - show version
+ - show foo
+ provider: "{{ cli }}"
+ register: result
+ ignore_errors: yes
+
+- assert:
+ that:
+ - "result.failed"
+
+- debug: msg="END cli/invalid.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/output.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/output.yaml
new file mode 100644
index 00000000..8a87d5da
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/output.yaml
@@ -0,0 +1,29 @@
+---
+- debug: msg="START cli/output.yaml"
+
+- name: get output for single command
+ os6_command:
+ commands: ['show version']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.stdout is defined"
+
+- name: get output for multiple commands
+ os6_command:
+ commands:
+ - show version
+ - show interfaces
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.stdout is defined"
+ - "result.stdout | length == 2"
+
+- debug: msg="END cli/output.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/timeout.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/timeout.yaml
new file mode 100644
index 00000000..f1ea515d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_command/os6_command/tests/cli/timeout.yaml
@@ -0,0 +1,19 @@
+---
+- debug: msg="START cli/timeout.yaml"
+
+- name: test bad condition
+ os6_command:
+ commands:
+ - show version
+ wait_for:
+ - "result[0] contains bad_value_string"
+ provider: "{{ cli }}"
+ register: result
+ ignore_errors: yes
+
+- assert:
+ that:
+ - "result.failed == true"
+ - "result.msg is defined"
+
+- debug: msg="END cli/timeout.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/defaults/main.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/defaults/main.yaml
new file mode 100644
index 00000000..5f709c5a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/defaults/main.yaml
@@ -0,0 +1,2 @@
+---
+testcase: "*"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/cli.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/cli.yaml
new file mode 100644
index 00000000..4cf68f17
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/cli.yaml
@@ -0,0 +1,13 @@
+---
+- name: collect all cli test cases
+ find:
+ paths: "{{ role_path }}/tests/cli"
+ patterns: "{{ testcase }}.yaml"
+ register: test_cases
+
+- name: set test_items
+ set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
+
+- name: run test case
+ include: "{{ item }}"
+ with_items: "{{ test_items }}" \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/main.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/main.yaml
new file mode 100644
index 00000000..d4898c29
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tasks/main.yaml
@@ -0,0 +1,2 @@
+---
+- { include: cli.yaml, tags: ['cli'] } \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/backup.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/backup.yaml
new file mode 100644
index 00000000..20d81a3d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/backup.yaml
@@ -0,0 +1,53 @@
+---
+- debug: msg="START cli/backup.yaml"
+
+- name: setup
+ os6_config:
+ commands:
+ - no interface loopback 62
+ provider: "{{ cli }}"
+ ignore_errors: yes
+
+- name: collect any backup files
+ find:
+ paths: "{{ role_path }}/backup"
+ pattern: "{{ inventory_hostname }}_config*"
+ register: backup_files
+ delegate_to: localhost
+
+- name: delete backup files
+ file:
+ path: "{{ item.path }}"
+ state: absent
+ with_items: "{{ backup_files.files }}"
+
+- name: configure device with config
+ os6_config:
+ src: basic/config.j2
+ backup: yes
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "result.updates is defined"
+
+- name: collect any backup files
+ find:
+ paths: "{{ role_path }}/backup"
+ pattern: "{{ inventory_hostname }}_config*"
+ register: backup_files
+ delegate_to: localhost
+
+- assert:
+ that:
+ - "backup_files.files is defined"
+
+- name: teardown
+ os6_config:
+ commands:
+ - no interface loopback 62
+ provider: "{{ cli }}"
+
+- debug: msg="END cli/backup.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/basic.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/basic.yaml
new file mode 100644
index 00000000..f4b1d0b6
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/basic.yaml
@@ -0,0 +1,38 @@
+---
+- debug: msg="START cli/basic.yaml"
+
+- name: setup
+ os6_config:
+ commands:
+ - no interface loopback 62
+ provider: "{{ cli }}"
+ ignore_errors: yes
+
+- name: configure device with config
+ os6_config:
+ src: basic/config.j2
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "result.updates is defined"
+
+- name: check device with config
+ os6_config:
+ src: basic/config.j2
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.updates is defined"
+
+- name: teardown
+ os6_config:
+ commands:
+ - no interface loopback 62
+ provider: "{{ cli }}"
+- debug: msg="END cli/basic.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/defaults.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/defaults.yaml
new file mode 100644
index 00000000..9969a951
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/defaults.yaml
@@ -0,0 +1,43 @@
+---
+- debug: msg="START cli/defaults.yaml"
+
+- name: setup
+ os6_config:
+ commands:
+ - no interface loopback 63
+ provider: "{{ cli }}"
+ ignore_errors: yes
+
+- name: configure device with defaults included
+ os6_config:
+ src: defaults/config.j2
+ provider: "{{ cli }}"
+ register: result
+
+- debug: var=result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "result.updates is defined"
+
+- name: check device with defaults included
+ os6_config:
+ src: defaults/config.j2
+ provider: "{{ cli }}"
+ register: result
+
+- debug: var=result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.updates is defined"
+
+- name: teardown
+ os6_config:
+ commands:
+ - no interface loopback 63
+ provider: "{{ cli }}"
+
+- debug: msg="END cli/defaults.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/force.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/force.yaml
new file mode 100644
index 00000000..37c2c4b2
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/force.yaml
@@ -0,0 +1,41 @@
+---
+- debug: msg="START cli/force.yaml"
+
+- name: setup
+ os6_config:
+ commands:
+ - interface loopback 62
+ provider: "{{ cli }}"
+ ignore_errors: yes
+
+- name: configure device with config
+ os6_config:
+ src: basic/config.j2
+ provider: "{{ cli }}"
+ match: none
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "result.updates is defined"
+
+- name: check device with config
+ os6_config:
+ src: basic/config.j2
+ provider: "{{ cli }}"
+ match: none
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "result.updates is defined"
+
+- name: teardown
+ os6_config:
+ commands:
+ - no interface loopback 62
+ provider: "{{ cli }}"
+
+- debug: msg="END cli/force.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel.yaml
new file mode 100644
index 00000000..b978e8b3
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel.yaml
@@ -0,0 +1,42 @@
+---
+- debug: msg="START cli/sublevel.yaml"
+
+- name: setup test
+ os6_config:
+ lines:
+ - 'no ip access-list test'
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure sub level command
+ os6_config:
+ lines: ['1000 permit every log']
+ parents: ['ip access-list test']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'ip access-list test' in result.updates"
+ - "'1000 permit every log' in result.updates"
+
+- name: configure sub level command idempotent check
+ os6_config:
+ lines: ['1000 permit every log']
+ parents: ['ip access-list test']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: teardown
+ os6_config:
+ lines:
+ - 'no ip access-list test'
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/sublevel.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_block.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_block.yaml
new file mode 100644
index 00000000..db47989f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_block.yaml
@@ -0,0 +1,62 @@
+---
+- debug: msg="START cli/sublevel_block.yaml"
+
+- name: setup
+ os6_config:
+ lines:
+ - permit ip 1.1.1.1 0.0.0.0 any log
+ - permit ip 2.2.2.2 0.0.0.0 any log
+ - permit ip 3.3.3.3 0.0.0.0 any log
+ parents: ['ip access-list test']
+ before: ['no ip access-list test']
+ after: ['exit']
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure sub level command using block resplace
+ os6_config:
+ lines:
+ - 1000 permit ip 1.1.1.1 0.0.0.0 any log
+ - 1010 permit ip 2.2.2.2 0.0.0.0 any log
+ - 1020 permit ip 3.3.3.3 0.0.0.0 any log
+ - 1030 permit ip 4.4.4.4 0.0.0.0 any log
+ parents: ['ip access-list test']
+ replace: block
+ after: ['exit']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'ip access-list test' in result.updates"
+ - "'1000 permit ip 1.1.1.1 0.0.0.0 any log' in result.updates"
+ - "'1010 permit ip 2.2.2.2 0.0.0.0 any log' in result.updates"
+ - "'1020 permit ip 3.3.3.3 0.0.0.0 any log' in result.updates"
+ - "'1030 permit ip 4.4.4.4 0.0.0.0 any log' in result.updates"
+
+- name: check sub level command using block replace
+ os6_config:
+ lines:
+ - 1000 permit ip 1.1.1.1 0.0.0.0 any log
+ - 1010 permit ip 2.2.2.2 0.0.0.0 any log
+ - 1020 permit ip 3.3.3.3 0.0.0.0 any log
+ - 1030 permit ip 4.4.4.4 0.0.0.0 any log
+ parents: ['ip access-list test']
+ replace: block
+ after: ['exit']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: teardown
+ os6_config:
+ lines:
+ - no ip access-list test
+ match: none
+ provider: "{{ cli }}"
+
+- debug: msg="END cli/sublevel_block.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_exact.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_exact.yaml
new file mode 100644
index 00000000..bafe24c5
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_exact.yaml
@@ -0,0 +1,66 @@
+---
+- debug: msg="START cli/sublevel_exact.yaml"
+
+- name: setup
+ os6_config:
+ lines:
+ - permit ip 1.1.1.1 0.0.0.0 any log
+ - permit ip 2.2.2.2 0.0.0.0 any log
+ - permit ip 3.3.3.3 0.0.0.0 any log
+ - permit ip 4.4.4.4 0.0.0.0 any log
+ - permit ip 5.5.5.5 0.0.0.0 any log
+ parents: ['ip access-list test']
+ before: ['no ip access-list test']
+ after: ['exit']
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure sub level command using exact match
+ os6_config:
+ lines:
+ - 1000 permit ip 1.1.1.1 0.0.0.0 any log
+ - 1010 permit ip 2.2.2.2 0.0.0.0 any log
+ - 1020 permit ip 3.3.3.3 0.0.0.0 any log
+ - 1030 permit ip 4.4.4.4 0.0.0.0 any log
+ parents: ['ip access-list test']
+ after: ['exit']
+ match: exact
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'ip access-list test' in result.updates"
+ - "'1000 permit ip 1.1.1.1 0.0.0.0 any log' in result.updates"
+ - "'1010 permit ip 2.2.2.2 0.0.0.0 any log' in result.updates"
+ - "'1020 permit ip 3.3.3.3 0.0.0.0 any log' in result.updates"
+ - "'1030 permit ip 4.4.4.4 0.0.0.0 any log' in result.updates"
+ - "'1040 permit ip 5.5.5.5 0.0.0.0 any log' not in result.updates"
+
+- name: check sub level command using exact match
+ os6_config:
+ lines:
+ - 1000 permit ip 1.1.1.1 0.0.0.0 any log
+ - 1010 permit ip 2.2.2.2 0.0.0.0 any log
+ - 1020 permit ip 3.3.3.3 0.0.0.0 any log
+ - 1030 permit ip 4.4.4.4 0.0.0.0 any log
+ - 1040 permit ip 5.5.5.5 0.0.0.0 any log
+ parents: ['ip access-list test']
+ after: ['exit']
+ match: exact
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: teardown
+ os6_config:
+ lines:
+ - no ip access-list test
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/sublevel_exact.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_strict.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_strict.yaml
new file mode 100644
index 00000000..51049e5e
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/sublevel_strict.yaml
@@ -0,0 +1,63 @@
+---
+- debug: msg="START cli/sublevel_strict.yaml"
+
+- name: setup
+ os6_config:
+ lines:
+ - permit ip 1.1.1.1 0.0.0.0 any log
+ - permit ip 2.2.2.2 0.0.0.0 any log
+ - permit ip 3.3.3.3 0.0.0.0 any log
+ - permit ip 4.4.4.4 0.0.0.0 any log
+ - permit ip 5.5.5.5 0.0.0.0 any log
+ parents: ['ip access-list test']
+ before: ['no ip access-list test']
+ after: ['exit']
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure sub level command using strict match
+ os6_config:
+ lines:
+ - 1000 permit ip 1.1.1.1 0.0.0.0 any log
+ - 1010 permit ip 2.2.2.2 0.0.0.0 any log
+ - 1020 permit ip 3.3.3.3 0.0.0.0 any log
+ - 1030 permit ip 4.4.4.4 0.0.0.0 any log
+ parents: ['ip access-list test']
+ match: strict
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: check sub level command using strict match
+ os6_config:
+ lines:
+ - 1000 permit ip 1.1.1.1 0.0.0.0 any log
+ - 1010 permit ip 3.3.3.3 0.0.0.0 any log
+ - 1020 permit ip 2.2.2.2 0.0.0.0 any log
+ parents: ['ip access-list test']
+ after: ['exit']
+ match: strict
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'ip access-list test' in result.updates"
+ - "'1000 permit ip 1.1.1.1 0.0.0.0 any log' not in result.updates"
+ - "'1020 permit ip 2.2.2.2 0.0.0.0 any log' in result.updates"
+ - "'1010 permit ip 3.3.3.3 0.0.0.0 any log' in result.updates"
+ - "'1030 permit ip 4.4.4.4 0.0.0.0 any log' not in result.updates"
+ - "'1040 permit ip 5.5.5.5 0.0.0.0 any log' not in result.updates"
+
+- name: teardown
+ os6_config:
+ lines:
+ - no ip access-list test
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/sublevel_strict.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel.yaml
new file mode 100644
index 00000000..36cdb9a4
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel.yaml
@@ -0,0 +1,37 @@
+---
+- debug: msg="START cli/toplevel.yaml"
+
+- name: setup
+ os6_config:
+ lines: ['hostname {{ inventory_hostname }}']
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure top level command
+ os6_config:
+ lines: ['hostname foo']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'hostname foo' in result.updates"
+
+- name: configure top level command idempotent check
+ os6_config:
+ lines: ['hostname "foo"']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: teardown
+ os6_config:
+ lines: ['hostname {{ inventory_hostname }}']
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/toplevel.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_after.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_after.yaml
new file mode 100644
index 00000000..287bdb9a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_after.yaml
@@ -0,0 +1,44 @@
+---
+- debug: msg="START cli/toplevel_after.yaml"
+
+- name: setup
+ os6_config:
+ lines:
+ - "snmp-server contact ansible"
+ - "hostname {{ inventory_hostname }}"
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure top level command with before
+ os6_config:
+ lines: ['hostname foo']
+ after: ['snmp-server contact bar']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'hostname foo' in result.updates"
+ - "'snmp-server contact bar' in result.updates"
+
+- name: configure top level command with before idempotent check
+ os6_config:
+ lines: ['hostname "foo"']
+ after: ['snmp-server contact foo']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: teardown
+ os6_config:
+ lines:
+ - "no snmp-server contact"
+ - "hostname {{ inventory_hostname }}"
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/toplevel_after.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_before.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_before.yaml
new file mode 100644
index 00000000..d058abfb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_before.yaml
@@ -0,0 +1,44 @@
+---
+- debug: msg="START cli/toplevel_before.yaml"
+
+- name: setup
+ os6_config:
+ lines:
+ - "snmp-server contact ansible"
+ - "hostname {{ inventory_hostname }}"
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure top level command with before
+ os6_config:
+ lines: ['hostname foo']
+ before: ['snmp-server contact bar']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'hostname foo' in result.updates"
+ - "'snmp-server contact bar' in result.updates"
+
+- name: configure top level command with before idempotent check
+ os6_config:
+ lines: ['hostname "foo"']
+ before: ['snmp-server contact foo']
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+
+- name: teardown
+ os6_config:
+ lines:
+ - "no snmp-server contact"
+ - "hostname {{ inventory_hostname }}"
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/toplevel_before.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_nonidempotent.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_nonidempotent.yaml
new file mode 100644
index 00000000..d529e8d1
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_config/os6_config/tests/cli/toplevel_nonidempotent.yaml
@@ -0,0 +1,39 @@
+---
+- debug: msg="START cli/toplevel_nonidempotent.yaml"
+
+- name: setup
+ os6_config:
+ lines: ['hostname {{ inventory_hostname }}']
+ provider: "{{ cli }}"
+ match: none
+
+- name: configure top level command
+ os6_config:
+ lines: ['hostname foo']
+ provider: "{{ cli }}"
+ match: strict
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+ - "'hostname foo' in result.updates"
+
+- name: configure top level command idempotent check
+ os6_config:
+ lines: ['hostname foo']
+ provider: "{{ cli }}"
+ match: strict
+ register: result
+
+- assert:
+ that:
+ - "result.changed == true"
+
+- name: teardown
+ os6_config:
+ lines: ['hostname {{ inventory_hostname }}']
+ provider: "{{ cli }}"
+ match: none
+
+- debug: msg="END cli/toplevel_nonidempotent.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/defaults/main.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/defaults/main.yaml
new file mode 100644
index 00000000..5f709c5a
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/defaults/main.yaml
@@ -0,0 +1,2 @@
+---
+testcase: "*"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/cli.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/cli.yaml
new file mode 100644
index 00000000..7152815d
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/cli.yaml
@@ -0,0 +1,14 @@
+---
+- name: collect all cli test cases
+ find:
+ paths: "{{ role_path }}/tests/cli"
+ patterns: "{{ testcase }}.yaml"
+ register: test_cases
+
+- name: set test_items
+ set_fact:
+ test_items: "{{ test_cases.files | map(attribute='path') | list }}"
+
+- name: run test case
+ include: "{{ item }}"
+ with_items: "{{ test_items }}" \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/main.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/main.yaml
new file mode 100644
index 00000000..d4898c29
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tasks/main.yaml
@@ -0,0 +1,2 @@
+---
+- { include: cli.yaml, tags: ['cli'] } \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tests/cli/facts.yaml b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tests/cli/facts.yaml
new file mode 100644
index 00000000..1834f7b1
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/integration/targets/os6_facts/os6_facts/tests/cli/facts.yaml
@@ -0,0 +1,42 @@
+---
+- debug: msg="START cli/facts.yaml"
+
+- name: test all facts
+ os6_facts:
+ gather_subset:
+ - all
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.ansible_facts is defined"
+
+- name: test all facts except hardware
+ os6_facts:
+ gather_subset:
+ - "!hardware"
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.ansible_facts.ansible_net_memfree_mb is not defined"
+
+- name: test interface facts
+ os6_facts:
+ gather_subset:
+ - interfaces
+ provider: "{{ cli }}"
+ register: result
+
+- assert:
+ that:
+ - "result.changed == false"
+ - "result.ansible_facts.ansible_net_interfaces is defined"
+ - "result.ansible_facts.ansible_net_memfree_mb is not defined"
+
+
+- debug: msg="END cli/facts.yaml"
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.10.txt b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.10.txt
new file mode 100644
index 00000000..6945f1c2
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.10.txt
@@ -0,0 +1,4 @@
+plugins/action/os6.py action-plugin-docs
+plugins/modules/os6_config.py validate-modules:parameter-list-no-elements
+plugins/modules/os6_facts.py validate-modules:parameter-list-no-elements
+plugins/modules/os6_command.py validate-modules:parameter-list-no-elements
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.11.txt b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.11.txt
new file mode 100644
index 00000000..91049edc
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.11.txt
@@ -0,0 +1,4 @@
+plugins/action/os6.py action-plugin-docs
+plugins/modules/os6_config.py validate-modules:parameter-list-no-elements
+plugins/modules/os6_facts.py validate-modules:parameter-list-no-elements
+plugins/modules/os6_command.py validate-modules:parameter-list-no-elements \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.9.txt b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.9.txt
new file mode 100644
index 00000000..1af26b1c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/ignore-2.9.txt
@@ -0,0 +1,31 @@
+plugins/module_utils/network/dellos6/dellos6.py future-import-boilerplate
+plugins/module_utils/network/dellos6/dellos6.py metaclass-boilerplate
+plugins/modules/dellos6_command.py validate-modules:doc-default-does-not-match-spec
+plugins/modules/dellos6_command.py validate-modules:doc-missing-type
+plugins/modules/dellos6_command.py validate-modules:doc-required-mismatch
+plugins/modules/dellos6_command.py validate-modules:parameter-list-no-elements
+plugins/modules/dellos6_command.py validate-modules:parameter-type-not-in-doc
+plugins/modules/dellos6_command.py validate-modules:undocumented-parameter
+plugins/modules/dellos6_config.py validate-modules:doc-default-does-not-match-spec
+plugins/modules/dellos6_config.py validate-modules:doc-missing-type
+plugins/modules/dellos6_config.py validate-modules:doc-required-mismatch
+plugins/modules/dellos6_config.py validate-modules:parameter-list-no-elements
+plugins/modules/dellos6_config.py validate-modules:parameter-type-not-in-doc
+plugins/modules/dellos6_config.py validate-modules:undocumented-parameter
+plugins/modules/dellos6_facts.py validate-modules:doc-default-does-not-match-spec
+plugins/modules/dellos6_facts.py validate-modules:doc-missing-type
+plugins/modules/dellos6_facts.py validate-modules:doc-required-mismatch
+plugins/modules/dellos6_facts.py validate-modules:parameter-list-no-elements
+plugins/modules/dellos6_facts.py validate-modules:parameter-type-not-in-doc
+plugins/modules/dellos6_facts.py validate-modules:undocumented-parameter
+plugins/action/dellos6.py action-plugin-docs # base class for deprecated network platform modules using `connection: local`
+plugins/doc_fragments/dellos6.py future-import-boilerplate
+plugins/doc_fragments/dellos6.py metaclass-boilerplate
+tests/unit/mock/path.py future-import-boilerplate
+tests/unit/mock/path.py metaclass-boilerplate
+tests/unit/mock/yaml_helper.py future-import-boilerplate
+tests/unit/mock/yaml_helper.py metaclass-boilerplate
+tests/unit/modules/conftest.py future-import-boilerplate
+tests/unit/modules/conftest.py metaclass-boilerplate
+tests/unit/modules/utils.py future-import-boilerplate
+tests/unit/modules/utils.py metaclass-boilerplate \ No newline at end of file
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/requirements.txt b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/requirements.txt
new file mode 100644
index 00000000..3e3a9669
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/sanity/requirements.txt
@@ -0,0 +1,4 @@
+packaging # needed for update-bundled and changelog
+sphinx ; python_version >= '3.5' # docs build requires python 3+
+sphinx-notfound-page ; python_version >= '3.5' # docs build requires python 3+
+straight.plugin ; python_version >= '3.5' # needed for hacking/build-ansible.py which will host changelog generation and requires python 3+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/__init__.py b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/__init__.py
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_config.cfg b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_config.cfg
new file mode 100644
index 00000000..a8ed721c
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_config.cfg
@@ -0,0 +1,16 @@
+!
+hostname router
+exit
+!
+interface Te1/0/1
+description "test_string"
+exit
+!
+interface Te1/0/2
+no shutdown
+exit
+!
+interface Te1/0/9
+switchport access vlan 2
+exit
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_src.cfg b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_src.cfg
new file mode 100644
index 00000000..70d5f665
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/os6_config_src.cfg
@@ -0,0 +1,7 @@
+!
+hostname foo
+exit
+!
+interface Te1/0/2
+shutdown
+exit
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces
new file mode 100644
index 00000000..f6aede90
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces
@@ -0,0 +1,41 @@
+Interface Name................................. Te1/0/1
+SOC Hardware Info.............................. BCM56842_A1
+Link Status.................................... Up /None
+Keepalive Enabled.............................. FALSE
+Err-disable Cause.............................. None
+VLAN Membership Mode........................... Trunk Mode
+VLAN Membership................................ (1),2-4096
+MTU Size....................................... 1518
+Port Mode [Duplex]............................. Full
+Port Speed..................................... 1000
+Link Debounce Flaps............................ 0
+Auto-Negotation Status......................... Auto
+Burned MAC Address............................. F8B1.565B.615E
+L3 MAC Address................................. F8B1.565B.615F
+Sample Load Interval........................... 300
+Received Input Rate Bits/Sec................... 0
+Received Input Rate Packets/Sec................ 0
+Transmitted Input Rate Bits/Sec................ 440
+Transmitted Input Rate Packets/Sec : .......... 0
+Total Packets Received Without Errors.......... 0
+Unicast Packets Received....................... 0
+Multicast Packets Received..................... 0
+Broadcast Packets Received..................... 0
+Total Packets Received with MAC Errors......... 0
+Jabbers Received............................... 0
+Fragments/Undersize Received................... 0
+Alignment Errors............................... 0
+FCS Errors..................................... 0
+Overruns....................................... 0
+Total Received Packets Not Forwarded........... 0
+Total Packets Transmitted Successfully......... 381302
+Unicast Packets Transmitted.................... 1
+Multicast Packets Transmitted.................. 351645
+Broadcast Packets Transmitted.................. 29656
+Transmit Packets Discarded..................... 0
+Total Transmit Errors.......................... 0
+Total Transmit Packets Discarded............... 0
+Single Collision Frames........................ 0
+Multiple Collision Frames...................... 0
+Excessive Collision Frames..................... 0
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_status b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_status
new file mode 100644
index 00000000..28defda6
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_status
@@ -0,0 +1,48 @@
+Port Description Duplex Speed Neg Link Flow M VLAN
+ State Ctrl
+--------- --------------- ------ ------- ---- ------ ----- -- -------------------
+Te1/0/1 connected to sp Full 1000 Auto Up Off T (1),2-4096
+Te1/0/2 to_NIC_1 Full 1000 Auto Up Off A 99
+Te1/0/3 N/A Unknown Auto Down Off A 1
+Te1/0/4 N/A Unknown Auto Down Off A 1
+Te1/0/5 N/A Unknown Auto Down Off A 1
+Te1/0/6 N/A Unknown Auto Down Off A 1
+Te1/0/7 N/A Unknown Auto Down Off A 1
+Te1/0/8 N/A Unknown Auto Down Off A 1
+Te1/0/9 N/A Unknown Auto Down Off A 2
+Te1/0/10 N/A Unknown Auto Down Off A 1
+Te1/0/11 N/A Unknown Auto Down Off A 1
+Te1/0/12 N/A Unknown Auto Down Off A 1
+Te1/0/13 N/A Unknown Auto Down Off A 1
+Te1/0/14 N/A Unknown Auto Down Off A 1
+Te1/0/15 N/A Unknown Auto Down Off A 1
+Te1/0/16 N/A Unknown Auto Down Off A 1
+Te1/0/17 N/A Unknown Auto Down Off A 1
+Te1/0/18 N/A Unknown Auto Down Off A 1
+Te1/0/19 N/A Unknown Auto Down Off A 1
+Te1/0/20 N/A Unknown Auto Down Off A 1
+Te1/0/21 N/A Unknown Auto Down Off A 1
+Te1/0/22 N/A Unknown Auto Down Off A 100
+Te1/0/23 N/A Unknown Auto Down Off A 1
+Te1/0/24 N/A Unknown Auto Down Off A 1
+Fo1/1/1 N/A N/A N/A Detach N/A
+Fo1/1/2 Full 40000 Off Down Off A 1
+Te1/1/1 N/A N/A N/A Detach N/A
+Te1/1/2 N/A N/A N/A Detach N/A
+Te1/1/3 N/A N/A N/A Detach N/A
+Te1/1/4 N/A N/A N/A Detach N/A
+Te1/1/5 N/A N/A N/A Detach N/A
+Te1/1/6 N/A N/A N/A Detach N/A
+Te1/1/7 N/A N/A N/A Detach N/A
+Te1/1/8 N/A N/A N/A Detach N/A
+
+Oob Type Link
+ State
+--- ------------------------------ -----
+oob Out-Of-Band Up
+
+
+Port Description Link M VLAN
+Channel State
+------- ------------------------------ ------- -- -------------------
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_transceiver_properties b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_transceiver_properties
new file mode 100644
index 00000000..976f45a8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_interfaces_transceiver_properties
@@ -0,0 +1,6 @@
+Yes: Dell Qualified No: Not Qualified
+N/A : Not Applicable
+Port Type Media Serial Number Dell Qualified
+--------- ------- --------------------- --------------------- --------------
+
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_ip_int b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_ip_int
new file mode 100644
index 00000000..043ee2cc
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_ip_int
@@ -0,0 +1,15 @@
+Default Gateway................................ 0.0.0.0
+L3 MAC Address................................. F8B1.565B.615F
+
+Routing Interfaces:
+
+Interface State IP Address IP Mask Method
+---------- ----- --------------- --------------- -------
+Vl1 Down 0.0.0.0 0.0.0.0 None
+Vl2 Up 0.0.0.0 0.0.0.0 DHCP
+Vl99 Up 10.99.1.2 255.255.0.0 Manual
+Vl100 Up 3.3.3.3 255.255.255.0 Manual
+Vl999 Up 10.250.1.2 255.255.255.0 Manual
+Vl1010 Up 10.1.1.1 255.255.255.0 Manual
+Vl1681 Up 192.168.100.1 255.255.255.0 Manual
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp
new file mode 100644
index 00000000..be89c415
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp
@@ -0,0 +1,11 @@
+LLDP Global Configuration
+
+
+Transmit Interval............................ 30 seconds
+
+Transmit Hold Multiplier..................... 4
+
+Reinit Delay................................. 2 seconds
+
+Notification Interval........................ 5 seconds
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp_remote-device_all b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp_remote-device_all
new file mode 100644
index 00000000..2a22f444
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_lldp_remote-device_all
@@ -0,0 +1,10 @@
+LLDP Remote Device Summary
+
+Local
+Interface RemID Chassis ID Port ID System Name
+--------- ------- ------------------- ----------------- -----------------
+Te1/0/5 14 F8:B1:56:70:49:38 Gi1/0/5 MAA-N2048-6884
+Te1/0/6 15 F8:B1:56:70:49:38 Gi1/0/6 MAA-N2048-6884
+
+
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_memory_cpu b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_memory_cpu
new file mode 100644
index 00000000..42657693
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_memory_cpu
@@ -0,0 +1,3 @@
+Total Memory................................... 1723232 KBytes
+Available Memory Space......................... 638144 KBytes
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config
new file mode 100644
index 00000000..b589c296
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config
@@ -0,0 +1,124 @@
+!Current Configuration:
+!System Description "Dell Networking N4064F, 6.3.3.10, Linux 3.7.10-e54850e7"
+!System Software Version 6.3.3.10
+!Cut-through mode is configured as disabled
+!
+configure
+hostname "os6"
+slot 1/0 5 ! Dell Networking N4064F
+slot 1/1 8 ! Dell 10GBase-T Card
+stack
+member 1 4 ! N4064F
+exit
+interface out-of-band
+ip address 10.16.148.73 255.255.0.0 10.16.144.254
+exit
+no logging console
+interface vlan 1
+ip address dhcp
+exit
+no passwords min-length
+username "admin" password 21232f297a57a5a743894a0e4a801fc3 privilege 1 encrypted
+line telnet
+exec-timeout 0
+exit
+ip ssh server
+application install SupportAssist auto-restart start-on-boot
+!
+interface Te1/0/1
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/2
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/3
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/4
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/5
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/6
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/7
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/8
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/9
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/10
+no switchport port-security violation protect
+exit
+!
+interface Te1/0/11
+no switchport port-security violation protect
+exit
+!
+interface port-channel 1
+no switchport port-security violation protect
+exit
+!
+interface port-channel 2
+no switchport port-security violation protect
+exit
+!
+interface port-channel 3
+no switchport port-security violation protect
+exit
+!
+interface port-channel 4
+no switchport port-security violation protect
+exit
+!
+interface port-channel 5
+no switchport port-security violation protect
+exit
+!
+snmp-server enable traps dvmrp
+snmp-server enable traps pim
+no snmp-server enable traps vrrp
+no snmp-server enable traps acl
+snmp-server enable traps captive-portal
+snmp-server enable traps captive-portal client-auth-failure
+snmp-server enable traps captive-portal client-connect
+snmp-server enable traps captive-portal client-db-full
+snmp-server enable traps captive-portal client-disconnect
+router bgp 11
+bgp router-id 1.1.1.1
+maximum-paths 2
+maximum-paths ibgp 2
+network 101.1.2.0 mask 255.255.255.0
+template peer MUX_HNV_ACCESS
+remote-as 64918
+exit
+neighbor 10.10.234.16 remote-as 64818
+neighbor 10.10.234.16 default-originate
+neighbor 10.10.234.16 timers 2 5
+neighbor 2001:4898:5808:ffa2::1 remote-as 64818
+neighbor 2001:4898:5808:ffa2::1 default-originate
+neighbor 2001:4898:5808:ffa2::1 timers 2 4
+address-family ipv6
+network 2001:4898:5808:ffa0::/126
+redistribute connected
+exit
+exit
+enable password c4f25f005187e9a85ad6480d3507a541 encrypted
+openflow
+exit
+eula-consent support-assist reject
+exit
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config__include_hostname b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config__include_hostname
new file mode 100644
index 00000000..2015aaf9
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_running-config__include_hostname
@@ -0,0 +1,3 @@
+hostname "os6_sw1"
+
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_version b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_version
new file mode 100644
index 00000000..37c58e8b
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/fixtures/show_version
@@ -0,0 +1,17 @@
+Machine Description............... Dell Networking Switch
+System Model ID................... N4032
+Machine Type...................... Dell Networking N4032
+Serial Number..................... CN04G4FP282984AI0097A01
+Manufacturer...................... 0xbc00
+Burned In MAC Address............. F8B1.565B.615C
+System Object ID.................. 1.3.6.1.4.1.674.10895.3042
+CPU Version....................... XLP308H-B2
+SOC Version....................... BCM56842_A1
+HW Version........................ 3
+CPLD Version...................... 17
+
+unit active backup current-active next-active
+---- ----------- ----------- -------------- --------------
+1 6.3.3.7 6.3.2.7 6.3.3.7 6.3.3.7
+
+
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/os6_module.py b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/os6_module.py
new file mode 100644
index 00000000..4f8cb8c9
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/os6_module.py
@@ -0,0 +1,88 @@
+# (c) 2020 Red Hat Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+
+# Make coding more python3-ish
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import os
+import json
+
+from units.modules.utils import AnsibleExitJson, AnsibleFailJson, ModuleTestCase
+
+
+fixture_path = os.path.join(os.path.dirname(__file__), 'fixtures')
+fixture_data = {}
+
+
+def load_fixture(name):
+ path = os.path.join(fixture_path, name)
+
+ if path in fixture_data:
+ return fixture_data[path]
+
+ with open(path) as f:
+ data = f.read()
+
+ try:
+ data = json.loads(data)
+ except Exception:
+ pass
+
+ fixture_data[path] = data
+ return data
+
+
+class TestDellos6Module(ModuleTestCase):
+
+ def execute_module(self, failed=False, changed=False, commands=None, sort=True, defaults=False):
+
+ self.load_fixtures(commands)
+
+ if failed:
+ result = self.failed()
+ self.assertTrue(result['failed'], result)
+ else:
+ result = self.changed(changed)
+ self.assertEqual(result['changed'], changed, result)
+
+ if commands is not None:
+ if sort:
+ self.assertEqual(sorted(commands), sorted(result['updates']), result['updates'])
+ else:
+ self.assertEqual(commands, result['updates'], result['updates'])
+
+ return result
+
+ def failed(self):
+ with self.assertRaises(AnsibleFailJson) as exc:
+ self.module.main()
+
+ result = exc.exception.args[0]
+ self.assertTrue(result['failed'], result)
+ return result
+
+ def changed(self, changed=False):
+ with self.assertRaises(AnsibleExitJson) as exc:
+ self.module.main()
+
+ result = exc.exception.args[0]
+ self.assertEqual(result['changed'], changed, result)
+ return result
+
+ def load_fixtures(self, commands=None):
+ pass
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_command.py b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_command.py
new file mode 100644
index 00000000..b1f3f23f
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_command.py
@@ -0,0 +1,108 @@
+# (c) 2020 Red Hat Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+
+# Make coding more python3-ish
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import json
+
+from ansible.compat.tests.mock import patch
+from ansible_collections.dellemc.os6.plugins.modules import os6_command
+from units.modules.utils import set_module_args
+from .os6_module import TestDellos6Module, load_fixture
+
+
+class TestDellos6CommandModule(TestDellos6Module):
+
+ module = os6_command
+
+ def setUp(self):
+ super(TestDellos6CommandModule, self).setUp()
+
+ self.mock_run_commands = patch('ansible.modules.network.os6.os6_command.run_commands')
+ self.run_commands = self.mock_run_commands.start()
+
+ def tearDown(self):
+ super(TestDellos6CommandModule, self).tearDown()
+ self.mock_run_commands.stop()
+
+ def load_fixtures(self, commands=None):
+
+ def load_from_file(*args, **kwargs):
+ module, commands = args
+ output = list()
+
+ for item in commands:
+ try:
+ obj = json.loads(item['command'])
+ command = obj['command']
+ except ValueError:
+ command = item['command']
+ filename = str(command).replace(' ', '_')
+ output.append(load_fixture(filename))
+ return output
+
+ self.run_commands.side_effect = load_from_file
+
+ def test_os6_command_simple(self):
+ set_module_args(dict(commands=['show version']))
+ result = self.execute_module()
+ self.assertEqual(len(result['stdout']), 1)
+ self.assertTrue(result['stdout'][0].startswith('Machine Description'))
+
+ def test_os6_command_multiple(self):
+ set_module_args(dict(commands=['show version', 'show version']))
+ result = self.execute_module()
+ self.assertEqual(len(result['stdout']), 2)
+ self.assertTrue(result['stdout'][0].startswith('Machine Description'))
+
+ def test_os6_command_wait_for(self):
+ wait_for = 'result[0] contains "Machine Description"'
+ set_module_args(dict(commands=['show version'], wait_for=wait_for))
+ self.execute_module()
+
+ def test_os6_command_wait_for_fails(self):
+ wait_for = 'result[0] contains "test string"'
+ set_module_args(dict(commands=['show version'], wait_for=wait_for))
+ self.execute_module(failed=True)
+ self.assertEqual(self.run_commands.call_count, 10)
+
+ def test_os6_command_retries(self):
+ wait_for = 'result[0] contains "test string"'
+ set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2))
+ self.execute_module(failed=True)
+ self.assertEqual(self.run_commands.call_count, 2)
+
+ def test_os6_command_match_any(self):
+ wait_for = ['result[0] contains "Machine Description"',
+ 'result[0] contains "test string"']
+ set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any'))
+ self.execute_module()
+
+ def test_os6_command_match_all(self):
+ wait_for = ['result[0] contains "Machine Description"',
+ 'result[0] contains "Dell Networking"']
+ set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all'))
+ self.execute_module()
+
+ def test_os6_command_match_all_failure(self):
+ wait_for = ['result[0] contains "Machine Description"',
+ 'result[0] contains "test string"']
+ commands = ['show version', 'show version']
+ set_module_args(dict(commands=commands, wait_for=wait_for, match='all'))
+ self.execute_module(failed=True)
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_config.py b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_config.py
new file mode 100644
index 00000000..1d2f60eb
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_config.py
@@ -0,0 +1,146 @@
+#
+# (c) 2020 Red Hat Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+
+# Make coding more python3-ish
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+from ansible.compat.tests.mock import patch
+from ansible_collections.dellemc.os6.plugins.modules import os6_config
+from units.modules.utils import set_module_args
+from .os6_module import TestDellos6Module, load_fixture
+
+
+class TestDellos6ConfigModule(TestDellos6Module):
+
+ module = os6_config
+
+ def setUp(self):
+ super(TestDellos6ConfigModule, self).setUp()
+
+ self.mock_get_config = patch('ansible.modules.network.os6.os6_config.get_config')
+ self.get_config = self.mock_get_config.start()
+
+ self.mock_load_config = patch('ansible.modules.network.os6.os6_config.load_config')
+ self.load_config = self.mock_load_config.start()
+
+ self.mock_run_commands = patch('ansible.modules.network.os6.os6_config.run_commands')
+ self.run_commands = self.mock_run_commands.start()
+
+ def tearDown(self):
+ super(TestDellos6ConfigModule, self).tearDown()
+ self.mock_get_config.stop()
+ self.mock_load_config.stop()
+ self.mock_run_commands.stop()
+
+ def load_fixtures(self, commands=None):
+ config_file = 'os6_config_config.cfg'
+ self.get_config.return_value = load_fixture(config_file)
+ self.load_config.return_value = None
+
+ def test_os6_config_unchanged(self):
+ src = load_fixture('os6_config_config.cfg')
+ set_module_args(dict(src=src))
+ self.execute_module()
+
+ def test_os6_config_src(self):
+ src = load_fixture('os6_config_src.cfg')
+ set_module_args(dict(src=src))
+ commands = ['hostname foo', 'exit', 'interface Te1/0/2', 'shutdown', 'exit']
+ self.execute_module(changed=True, commands=commands)
+
+ def test_os6_config_backup(self):
+ set_module_args(dict(backup=True))
+ result = self.execute_module()
+ self.assertIn('__backup__', result)
+
+ def test_os6_config_save(self):
+ set_module_args(dict(save=True))
+ self.execute_module(changed=True)
+ self.assertEqual(self.run_commands.call_count, 1)
+ self.assertEqual(self.get_config.call_count, 0)
+ self.assertEqual(self.load_config.call_count, 0)
+ args = self.run_commands.call_args[0][1]
+ self.assertDictContainsSubset({'command': 'copy running-config startup-config'}, args[0])
+# self.assertIn('copy running-config startup-config\r', args)
+
+ def test_os6_config_lines_wo_parents(self):
+ set_module_args(dict(lines=['hostname foo']))
+ commands = ['hostname foo']
+ self.execute_module(changed=True, commands=commands)
+
+ def test_os6_config_lines_w_parents(self):
+ set_module_args(dict(lines=['description "teest"', 'exit'], parents=['interface Te1/0/2']))
+ commands = ['interface Te1/0/2', 'description "teest"', 'exit']
+ self.execute_module(changed=True, commands=commands)
+
+ def test_os6_config_before(self):
+ set_module_args(dict(lines=['hostname foo'], before=['snmp-server contact bar']))
+ commands = ['snmp-server contact bar', 'hostname foo']
+ self.execute_module(changed=True, commands=commands, sort=False)
+
+ def test_os6_config_after(self):
+ set_module_args(dict(lines=['hostname foo'], after=['snmp-server contact bar']))
+ commands = ['hostname foo', 'snmp-server contact bar']
+ self.execute_module(changed=True, commands=commands, sort=False)
+
+ def test_os6_config_before_after_no_change(self):
+ set_module_args(dict(lines=['hostname router'],
+ before=['snmp-server contact bar'],
+ after=['snmp-server location chennai']))
+ self.execute_module()
+
+ def test_os6_config_config(self):
+ config = 'hostname localhost'
+ set_module_args(dict(lines=['hostname router'], config=config))
+ commands = ['hostname router']
+ self.execute_module(changed=True, commands=commands)
+
+ def test_os6_config_replace_block(self):
+ lines = ['description test string', 'shutdown']
+ parents = ['interface Te1/0/2']
+ set_module_args(dict(lines=lines, replace='block', parents=parents))
+ commands = parents + lines
+ self.execute_module(changed=True, commands=commands)
+
+ def test_os6_config_match_none(self):
+ lines = ['hostname router']
+ set_module_args(dict(lines=lines, match='none'))
+ self.execute_module(changed=True, commands=lines)
+
+ def test_os6_config_match_none(self):
+ lines = ['description test string', 'shutdown']
+ parents = ['interface Te1/0/2']
+ set_module_args(dict(lines=lines, parents=parents, match='none'))
+ commands = parents + lines
+ self.execute_module(changed=True, commands=commands, sort=False)
+
+ def test_os6_config_match_strict(self):
+ lines = ['description "test_string"',
+ 'shutdown']
+ parents = ['interface Te1/0/1']
+ set_module_args(dict(lines=lines, parents=parents, match='strict'))
+ commands = parents + ['shutdown']
+ self.execute_module(changed=True, commands=commands, sort=False)
+
+ def test_os6_config_match_exact(self):
+ lines = ['description test_string', 'shutdown']
+ parents = ['interface Te1/0/1']
+ set_module_args(dict(lines=lines, parents=parents, match='exact'))
+ commands = parents + lines
+ self.execute_module(changed=True, commands=commands, sort=False)
diff --git a/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_facts.py b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_facts.py
new file mode 100644
index 00000000..ace3a8a8
--- /dev/null
+++ b/collections-debian-merged/ansible_collections/dellemc/os6/tests/unit/modules/network/os6/test_os6_facts.py
@@ -0,0 +1,105 @@
+# (c) 2020 Red Hat Inc.
+#
+# This file is part of Ansible
+#
+# Ansible is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Ansible is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+
+# Make coding more python3-ish
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+import json
+
+from ansible.compat.tests.mock import patch
+from units.modules.utils import set_module_args
+from .os6_module import TestDellos6Module, load_fixture
+from ansible_collections.dellemc.os6.plugins.modules import os6_facts
+
+
+class TestDellos6Facts(TestDellos6Module):
+
+ module = os6_facts
+
+ def setUp(self):
+ super(TestDellos6Facts, self).setUp()
+
+ self.mock_run_command = patch(
+ 'ansible.modules.network.os6.os6_facts.run_commands')
+ self.run_command = self.mock_run_command.start()
+
+ def tearDown(self):
+ super(TestDellos6Facts, self).tearDown()
+
+ self.mock_run_command.stop()
+
+ def load_fixtures(self, commands=None):
+
+ def load_from_file(*args, **kwargs):
+ module, commands = args
+ output = list()
+
+ for item in commands:
+ try:
+ obj = json.loads(item)
+ command = obj['command']
+ except ValueError:
+ command = item
+ if '|' in command:
+ command = str(command).replace('|', '')
+ filename = str(command).replace(' ', '_')
+ filename = filename.replace('/', '7')
+ output.append(load_fixture(filename))
+ return output
+
+ self.run_command.side_effect = load_from_file
+
+ def test_os6_facts_gather_subset_default(self):
+ set_module_args(dict())
+ result = self.execute_module()
+ ansible_facts = result['ansible_facts']
+ self.assertIn('hardware', ansible_facts['ansible_net_gather_subset'])
+ self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
+ self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset'])
+ self.assertEquals('"os6_sw1"', ansible_facts['ansible_net_hostname'])
+ self.assertIn('Te1/0/1', ansible_facts['ansible_net_interfaces'].keys())
+ self.assertEquals(1682, ansible_facts['ansible_net_memtotal_mb'])
+ self.assertEquals(623, ansible_facts['ansible_net_memfree_mb'])
+
+ def test_os6_facts_gather_subset_config(self):
+ set_module_args({'gather_subset': 'config'})
+ result = self.execute_module()
+ ansible_facts = result['ansible_facts']
+ self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
+ self.assertIn('config', ansible_facts['ansible_net_gather_subset'])
+ self.assertEquals('"os6_sw1"', ansible_facts['ansible_net_hostname'])
+ self.assertIn('ansible_net_config', ansible_facts)
+
+ def test_os6_facts_gather_subset_hardware(self):
+ set_module_args({'gather_subset': 'hardware'})
+ result = self.execute_module()
+ ansible_facts = result['ansible_facts']
+ self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
+ self.assertIn('hardware', ansible_facts['ansible_net_gather_subset'])
+ self.assertEquals(1682, ansible_facts['ansible_net_memtotal_mb'])
+ self.assertEquals(623, ansible_facts['ansible_net_memfree_mb'])
+
+ def test_os6_facts_gather_subset_interfaces(self):
+ set_module_args({'gather_subset': 'interfaces'})
+ result = self.execute_module()
+ ansible_facts = result['ansible_facts']
+ self.assertIn('default', ansible_facts['ansible_net_gather_subset'])
+ self.assertIn('interfaces', ansible_facts['ansible_net_gather_subset'])
+ self.assertIn('Te1/0/1', ansible_facts['ansible_net_interfaces'].keys())
+ self.assertEquals(['Te1/0/5', 'Te1/0/6'], ansible_facts['ansible_net_neighbors'].keys())
+ self.assertIn('ansible_net_interfaces', ansible_facts)