mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-23 04:24:00 -07:00
IOS-XR NetConf and Cliconf plugin work (#33332)
* - Netconf plugin addition for iosxr - Utilities refactoring to support netconf and cliconf - iosx_banner refactoring for netconf and cliconf - Integration testcases changes to accomodate above changes * Fix sanity failures, shippable errors and review comments * fix pep8 issue * changes run_command method to send specific command args * - Review comment fixes - iosxr_command changes to remove ComplexDict based command_spec * - Move namespaces removal method from utils to netconf plugin * Minor refactoring in utils and change in deprecation message * rewrite build_xml logic and import changes for new utils dir structure * - Review comment changes and minor changes to documentation * * refactor common code and docs updates
This commit is contained in:
parent
4b6061ce3e
commit
2bc4c4f156
42 changed files with 1090 additions and 247 deletions
|
@ -1,2 +1,3 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: netconf.yaml, tags: ['netconf'] }
|
||||
|
|
16
test/integration/targets/iosxr_banner/tasks/netconf.yaml
Normal file
16
test/integration/targets/iosxr_banner/tasks/netconf.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all netconf test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/netconf"
|
||||
patterns: "{{ testcase }}.yaml"
|
||||
register: test_cases
|
||||
delegate_to: localhost
|
||||
|
||||
- name: set test_items
|
||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||
|
||||
- name: run test case
|
||||
include: "{{ test_case_to_run }}"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -2,6 +2,7 @@
|
|||
- name: setup - remove login
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
provider: "{{ cli }}"
|
||||
state: absent
|
||||
|
||||
- name: Set login
|
||||
|
@ -11,6 +12,7 @@
|
|||
this is my login banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ cli }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
|
@ -30,6 +32,7 @@
|
|||
this is my login banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ cli }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
iosxr_banner:
|
||||
banner: motd
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: Set motd
|
||||
iosxr_banner:
|
||||
|
@ -11,6 +12,7 @@
|
|||
this is my motd banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ cli }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
|
@ -30,6 +32,7 @@
|
|||
this is my motd banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ cli }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
|
|
|
@ -5,12 +5,14 @@
|
|||
text: |
|
||||
Junk login banner
|
||||
over multiple lines
|
||||
provider: "{{ cli }}"
|
||||
state: present
|
||||
|
||||
- name: remove login
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- debug:
|
||||
|
@ -25,6 +27,7 @@
|
|||
iosxr_banner:
|
||||
banner: login
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
- name: Enable Netconf service
|
||||
iosxr_netconf:
|
||||
netconf_port: 830
|
||||
netconf_vrf: 'default'
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: setup - remove login
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
provider: "{{ netconf }}"
|
||||
state: absent
|
||||
|
||||
- name: Set login
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
text: |
|
||||
this is my login banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ netconf }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- debug:
|
||||
msg: "{{ result }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'this is my login banner' in result.commands"
|
||||
- "'that has a multiline' in result.commands"
|
||||
|
||||
- name: Set login again (idempotent)
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
text: |
|
||||
this is my login banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ netconf }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
- "result.commands | length == 0"
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
- name: Enable Netconf service
|
||||
iosxr_netconf:
|
||||
netconf_port: 830
|
||||
netconf_vrf: 'default'
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: setup - remove motd
|
||||
iosxr_banner:
|
||||
banner: motd
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
|
||||
- name: Set motd
|
||||
iosxr_banner:
|
||||
banner: motd
|
||||
text: |
|
||||
this is my motd banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ netconf }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- debug:
|
||||
msg: "{{ result }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'this is my motd banner' in result.commands"
|
||||
- "'that has a multiline' in result.commands"
|
||||
|
||||
- name: Set motd again (idempotent)
|
||||
iosxr_banner:
|
||||
banner: motd
|
||||
text: |
|
||||
this is my motd banner
|
||||
that has a multiline
|
||||
string
|
||||
provider: "{{ netconf }}"
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
- "result.commands | length == 0"
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
- name: Enable Netconf service
|
||||
iosxr_netconf:
|
||||
netconf_port: 830
|
||||
netconf_vrf: 'default'
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- name: Setup
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
text: |
|
||||
Junk login banner
|
||||
over multiple lines
|
||||
provider: "{{ netconf }}"
|
||||
state: present
|
||||
|
||||
- name: remove login
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- debug:
|
||||
msg: "{{ result }}"
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'xc:operation=\"delete\"' in result.commands"
|
||||
|
||||
- name: remove login (idempotent)
|
||||
iosxr_banner:
|
||||
banner: login
|
||||
state: absent
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
- "result.commands | length == 0"
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
- name: run invalid command
|
||||
iosxr_command:
|
||||
commands: ['show foo']
|
||||
commands: [{command: 'show foo', prompt: 'fooprompt', answer: 'yes'}]
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
|||
iosxr_command:
|
||||
commands:
|
||||
- show version
|
||||
- show foo
|
||||
- [{command: 'show foo', prompt: 'fooprompt', answer: 'yes'}]
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
iosxr_facts:
|
||||
gather_subset:
|
||||
- all
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
- name: test getting default facts
|
||||
iosxr_facts:
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
iosxr_facts:
|
||||
gather_subset:
|
||||
- "foobar"
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -28,6 +29,7 @@
|
|||
gather_subset:
|
||||
- "!hardware"
|
||||
- "hardware"
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
iosxr_facts:
|
||||
gather_subset:
|
||||
- "!hardware"
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
iosxr_interface:
|
||||
name: GigabitEthernet0/0/0/2
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
|
||||
|
@ -13,6 +14,7 @@
|
|||
name: GigabitEthernet0/0/0/2
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -25,6 +27,7 @@
|
|||
name: GigabitEthernet0/0/0/2
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -39,6 +42,7 @@
|
|||
duplex: half
|
||||
mtu: 512
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -57,6 +61,7 @@
|
|||
duplex: full
|
||||
mtu: 256
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -75,6 +80,7 @@
|
|||
duplex: full
|
||||
mtu: 256
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
- assert:
|
||||
that:
|
||||
|
@ -84,6 +90,7 @@
|
|||
iosxr_interface:
|
||||
name: GigabitEthernet0/0/0/2
|
||||
enabled: False
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -95,6 +102,7 @@
|
|||
iosxr_interface:
|
||||
name: GigabitEthernet0/0/0/2
|
||||
enabled: True
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -107,6 +115,7 @@
|
|||
name: GigabitEthernet0/0/0/3
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -120,6 +129,7 @@
|
|||
- name: GigabitEthernet0/0/0/3
|
||||
- name: GigabitEthernet0/0/0/2
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: Add interface aggregate
|
||||
iosxr_interface:
|
||||
|
@ -129,6 +139,7 @@
|
|||
speed: 100
|
||||
duplex: full
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -152,6 +163,7 @@
|
|||
speed: 100
|
||||
duplex: full
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -165,6 +177,7 @@
|
|||
- name: GigabitEthernet0/0/0/2
|
||||
enabled: False
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -180,6 +193,7 @@
|
|||
- name: GigabitEthernet0/0/0/2
|
||||
enabled: True
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -194,6 +208,7 @@
|
|||
- name: GigabitEthernet0/0/0/4
|
||||
- name: GigabitEthernet0/0/0/5
|
||||
description: test-interface-initial
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- name: Create interface aggregate
|
||||
|
@ -204,6 +219,7 @@
|
|||
- name: GigabitEthernet0/0/0/5
|
||||
description: test_interface_2
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -218,6 +234,7 @@
|
|||
- name: GigabitEthernet0/0/0/4
|
||||
- name: GigabitEthernet0/0/0/5
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -232,6 +249,7 @@
|
|||
- name: GigabitEthernet0/0/0/4
|
||||
- name: GigabitEthernet0/0/0/5
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
description: test_interface_1
|
||||
enabled: True
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- name: Check intent arguments
|
||||
|
@ -14,6 +15,7 @@
|
|||
name: GigabitEthernet0/0/0/1
|
||||
state: up
|
||||
delay: 20
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -24,6 +26,7 @@
|
|||
iosxr_interface:
|
||||
name: GigabitEthernet0/0/0/1
|
||||
state: down
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
|
@ -38,6 +41,7 @@
|
|||
enabled: False
|
||||
state: down
|
||||
delay: 20
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -49,6 +53,7 @@
|
|||
name: GigabitEthernet0/0/0/1
|
||||
enabled: False
|
||||
state: up
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
|
@ -64,6 +69,7 @@
|
|||
enabled: True
|
||||
state: up
|
||||
delay: 20
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
|
|
|
@ -5,12 +5,14 @@
|
|||
dest: hostnameprefix
|
||||
name: 172.16.0.1
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: Remove console logging
|
||||
iosxr_logging:
|
||||
dest: console
|
||||
level: warning
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- name: Remove buffer
|
||||
|
@ -18,6 +20,7 @@
|
|||
dest: buffered
|
||||
size: 4800000
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
# Start tests
|
||||
|
@ -26,6 +29,7 @@
|
|||
dest: hostnameprefix
|
||||
name: 172.16.0.1
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -39,6 +43,7 @@
|
|||
dest: hostnameprefix
|
||||
name: 172.16.0.1
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -50,6 +55,7 @@
|
|||
dest: hostnameprefix
|
||||
name: 172.16.0.1
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -62,6 +68,7 @@
|
|||
dest: hostnameprefix
|
||||
name: 172.16.0.1
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -73,6 +80,7 @@
|
|||
dest: console
|
||||
level: warning
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -84,6 +92,7 @@
|
|||
iosxr_logging:
|
||||
dest: buffered
|
||||
size: 4800000
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -96,6 +105,7 @@
|
|||
aggregate:
|
||||
- { dest: console, level: notifications }
|
||||
- { dest: buffered, size: 4700000 }
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -110,6 +120,7 @@
|
|||
- { dest: console, level: notifications }
|
||||
- { dest: buffered, size: 4700000 }
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -7,12 +7,14 @@
|
|||
- no ip domain-list ansible.com
|
||||
- no ip domain-list redhat.com
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure domain_search
|
||||
iosxr_system:
|
||||
domain_search:
|
||||
- ansible.com
|
||||
- redhat.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -26,6 +28,7 @@
|
|||
domain_search:
|
||||
- ansible.com
|
||||
- redhat.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -36,6 +39,7 @@
|
|||
iosxr_system:
|
||||
domain_search:
|
||||
- ansible.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -47,6 +51,7 @@
|
|||
iosxr_system:
|
||||
domain_search:
|
||||
- ansible.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -58,6 +63,7 @@
|
|||
domain_search:
|
||||
- ansible.com
|
||||
- redhat.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -70,6 +76,7 @@
|
|||
domain_search:
|
||||
- ansible.com
|
||||
- redhat.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -81,6 +88,7 @@
|
|||
domain_search:
|
||||
- ansible.com
|
||||
- eng.ansible.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -95,6 +103,7 @@
|
|||
domain_search:
|
||||
- ansible.com
|
||||
- eng.ansible.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -108,5 +117,6 @@
|
|||
- no domain list redhat.com
|
||||
- no domain list eng.ansible.com
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- debug: msg="END cli/set_domain_search.yaml"
|
||||
|
|
|
@ -5,10 +5,12 @@
|
|||
iosxr_config:
|
||||
lines: no domain name
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure domain_name
|
||||
iosxr_system:
|
||||
domain_name: eng.ansible.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -18,6 +20,7 @@
|
|||
- name: verify domain_name
|
||||
iosxr_system:
|
||||
domain_name: eng.ansible.com
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -28,5 +31,6 @@
|
|||
iosxr_config:
|
||||
lines: no domain name
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- debug: msg="END cli/set_domain_name.yaml"
|
||||
|
|
|
@ -5,10 +5,12 @@
|
|||
iosxr_config:
|
||||
lines: hostname switch
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure hostname
|
||||
iosxr_system:
|
||||
hostname: foo
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -18,6 +20,7 @@
|
|||
- name: verify hostname
|
||||
iosxr_system:
|
||||
hostname: foo
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -28,5 +31,6 @@
|
|||
iosxr_config:
|
||||
lines: "hostname {{ inventory_hostname }}"
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- debug: msg="END cli/set_hostname.yaml"
|
||||
|
|
|
@ -7,10 +7,12 @@
|
|||
- no domain lookup source-interface Loopback10
|
||||
# - vrf ansible
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure lookup_source
|
||||
iosxr_system:
|
||||
lookup_source: Loopback10
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -21,6 +23,7 @@
|
|||
- name: verify lookup_source
|
||||
iosxr_system:
|
||||
lookup_source: Loopback10
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -58,5 +61,6 @@
|
|||
- no domain lookup source-interface Loopback10
|
||||
- no vrf ansible
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- debug: msg="END cli/set_lookup_source.yaml"
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
- no ip name-server 2.2.2.2
|
||||
- no ip name-server 3.3.3.3
|
||||
match: none
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure name_servers
|
||||
iosxr_system:
|
||||
|
@ -15,6 +16,7 @@
|
|||
- 1.1.1.1
|
||||
- 2.2.2.2
|
||||
- 3.3.3.3
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -31,6 +33,7 @@
|
|||
- 1.1.1.1
|
||||
- 2.2.2.2
|
||||
- 3.3.3.3
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -69,6 +72,7 @@
|
|||
name_servers:
|
||||
- 1.1.1.1
|
||||
- 2.2.2.2
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
name: auth_user
|
||||
state: present
|
||||
configured_password: pass123
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: test login
|
||||
expect:
|
||||
|
@ -30,6 +31,7 @@
|
|||
name: auth_user
|
||||
state: present
|
||||
public_key_contents: "{{ lookup('file', \"{{ role_path }}/files/public.pub\") }}"
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: test login with private key
|
||||
expect:
|
||||
|
@ -40,6 +42,7 @@
|
|||
- name: remove user and key
|
||||
iosxr_user:
|
||||
name: auth_user
|
||||
provider: "{{ cli }}"
|
||||
state: absent
|
||||
|
||||
- name: test login with private key (should fail, no user)
|
||||
|
@ -55,6 +58,7 @@
|
|||
name: auth_user
|
||||
state: present
|
||||
public_key: "{{ role_path }}/files/public.pub"
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: test login with private key
|
||||
expect:
|
||||
|
@ -68,6 +72,7 @@
|
|||
name: auth_user
|
||||
state: present
|
||||
public_key_contents: "{{ lookup('file', \"{{ role_path }}/files/public2.pub\") }}"
|
||||
provider: "{{ cli }}"
|
||||
|
||||
# FIXME: pexpect fails with OSError: [Errno 5] Input/output error
|
||||
- name: test login with invalid private key (should fail)
|
||||
|
@ -88,4 +93,5 @@
|
|||
iosxr_user:
|
||||
name: auth_user
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
|
|
@ -5,12 +5,14 @@
|
|||
- no username ansibletest1
|
||||
- no username ansibletest2
|
||||
- no username ansibletest3
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: Create user (SetUp)
|
||||
iosxr_user:
|
||||
name: ansibletest1
|
||||
configured_password: test
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -25,6 +27,7 @@
|
|||
configured_password: test
|
||||
update_password: always
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -39,6 +42,7 @@
|
|||
configured_password: test
|
||||
update_password: on_create
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -53,6 +57,7 @@
|
|||
update_password: on_create
|
||||
group: sysadmin
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -68,6 +73,7 @@
|
|||
update_password: on_create
|
||||
group: sysadmin
|
||||
state: present
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -83,6 +89,7 @@
|
|||
configured_password: test
|
||||
state: present
|
||||
group: sysadmin
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -103,6 +110,7 @@
|
|||
configured_password: test
|
||||
state: present
|
||||
group: sysadmin
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -122,6 +130,7 @@
|
|||
update_password: on_create
|
||||
state: present
|
||||
group: sysadmin
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -136,6 +145,7 @@
|
|||
- name: ansibletest2
|
||||
- name: ansibletest3
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
@ -150,6 +160,7 @@
|
|||
- name: ansibletest2
|
||||
- name: ansibletest3
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
|
|
|
@ -182,10 +182,6 @@ lib/ansible/modules/network/ios/ios_command.py
|
|||
lib/ansible/modules/network/ios/ios_facts.py
|
||||
lib/ansible/modules/network/ios/ios_system.py
|
||||
lib/ansible/modules/network/ios/ios_vrf.py
|
||||
lib/ansible/modules/network/iosxr/iosxr_command.py
|
||||
lib/ansible/modules/network/iosxr/iosxr_config.py
|
||||
lib/ansible/modules/network/iosxr/iosxr_facts.py
|
||||
lib/ansible/modules/network/iosxr/iosxr_system.py
|
||||
lib/ansible/modules/network/netvisor/pn_cluster.py
|
||||
lib/ansible/modules/network/netvisor/pn_ospfarea.py
|
||||
lib/ansible/modules/network/netvisor/pn_vlag.py
|
||||
|
|
|
@ -32,13 +32,13 @@ class TestIosxrCommandModule(TestIosxrModule):
|
|||
def setUp(self):
|
||||
super(TestIosxrCommandModule, self).setUp()
|
||||
|
||||
self.mock_run_commands = patch('ansible.modules.network.iosxr.iosxr_command.run_commands')
|
||||
self.run_commands = self.mock_run_commands.start()
|
||||
self.mock_run_command = patch('ansible.modules.network.iosxr.iosxr_command.run_command')
|
||||
self.run_command = self.mock_run_command.start()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestIosxrCommandModule, self).tearDown()
|
||||
|
||||
self.mock_run_commands.stop()
|
||||
self.mock_run_command.stop()
|
||||
|
||||
def load_fixtures(self, commands=None):
|
||||
|
||||
|
@ -49,13 +49,13 @@ class TestIosxrCommandModule(TestIosxrModule):
|
|||
for item in commands:
|
||||
try:
|
||||
command = item['command']
|
||||
except ValueError:
|
||||
except Exception:
|
||||
command = item
|
||||
filename = str(command).replace(' ', '_')
|
||||
output.append(load_fixture(filename))
|
||||
return output
|
||||
|
||||
self.run_commands.side_effect = load_from_file
|
||||
self.run_command.side_effect = load_from_file
|
||||
|
||||
def test_iosxr_command_simple(self):
|
||||
set_module_args(dict(commands=['show version']))
|
||||
|
@ -78,13 +78,13 @@ class TestIosxrCommandModule(TestIosxrModule):
|
|||
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)
|
||||
self.assertEqual(self.run_command.call_count, 10)
|
||||
|
||||
def test_iosxr_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)
|
||||
self.assertEqual(self.run_command.call_count, 2)
|
||||
|
||||
def test_iosxr_command_match_any(self):
|
||||
wait_for = ['result[0] contains "Cisco IOS"',
|
||||
|
|
|
@ -34,14 +34,14 @@ class TestIosxrFacts(TestIosxrModule):
|
|||
def setUp(self):
|
||||
super(TestIosxrFacts, self).setUp()
|
||||
|
||||
self.mock_run_commands = patch(
|
||||
'ansible.modules.network.iosxr.iosxr_facts.run_commands')
|
||||
self.run_commands = self.mock_run_commands.start()
|
||||
self.mock_run_command = patch(
|
||||
'ansible.modules.network.iosxr.iosxr_facts.run_command')
|
||||
self.run_command = self.mock_run_command.start()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestIosxrFacts, self).tearDown()
|
||||
|
||||
self.mock_run_commands.stop()
|
||||
self.mock_run_command.stop()
|
||||
|
||||
def load_fixtures(self, commands=None):
|
||||
|
||||
|
@ -60,7 +60,7 @@ class TestIosxrFacts(TestIosxrModule):
|
|||
output.append(load_fixture(filename))
|
||||
return output
|
||||
|
||||
self.run_commands.side_effect = load_from_file
|
||||
self.run_command.side_effect = load_from_file
|
||||
|
||||
def test_iosxr_facts_gather_subset_default(self):
|
||||
set_module_args(dict())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue