mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Add cli_config module (#42413)
* cli_config module Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * rename diff and replace Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * add nxos changes Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * nxos tests Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * remove severity * address review comment Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * add module diff Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * add iosxr test Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * address diff review Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Add junos tests Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * vyos cliconf diff fix Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
parent
227bf61daa
commit
a8c24a5d5e
42 changed files with 960 additions and 4 deletions
16
test/integration/targets/eos_config/tasks/cli_config.yaml
Normal file
16
test/integration/targets/eos_config/tasks/cli_config.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all cli_config test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli_config"
|
||||
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 (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -1,3 +1,4 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: cli_config.yaml, tags: ['cli_config'] }
|
||||
- { include: eapi.yaml, tags: ['eapi'] }
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup
|
||||
cli_config: &rm
|
||||
config: |
|
||||
interface Ethernet2
|
||||
no description
|
||||
no shutdown
|
||||
become: yes
|
||||
|
||||
- name: configure device with config
|
||||
cli_config: &conf
|
||||
config: "{{ lookup('template', 'basic/config.j2') }}"
|
||||
register: result
|
||||
become: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Idempotence
|
||||
cli_config: *conf
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
16
test/integration/targets/ios_config/tasks/cli_config.yaml
Normal file
16
test/integration/targets/ios_config/tasks/cli_config.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all cli_config test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli_config"
|
||||
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 (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -1,2 +1,3 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: cli_config.yaml, tags: ['cli_config'] }
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
||||
permit ip host 192.0.2.4 any log
|
|
@ -0,0 +1,6 @@
|
|||
no ip access-list extended test
|
||||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
||||
permit ip host 192.0.2.4 any log
|
|
@ -0,0 +1,5 @@
|
|||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
||||
permit ip host 192.0.2.4 any log
|
|
@ -0,0 +1,5 @@
|
|||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
||||
permit ip host 192.0.2.4 any log
|
|
@ -0,0 +1,5 @@
|
|||
no ip access-list extended test
|
||||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
|
@ -0,0 +1,7 @@
|
|||
no ip access-list extended test
|
||||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
||||
permit ip host 192.0.2.4 any log
|
||||
permit ip host 192.0.2.5 any log
|
|
@ -0,0 +1,7 @@
|
|||
no ip access-list extended test
|
||||
ip access-list extended test
|
||||
permit ip host 192.0.2.1 any log
|
||||
permit ip host 192.0.2.2 any log
|
||||
permit ip host 192.0.2.3 any log
|
||||
permit ip host 192.0.2.4 any log
|
||||
permit ip host 192.0.2.5 any log
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup
|
||||
cli_config: &rm
|
||||
config: |
|
||||
interface loopback999
|
||||
no description
|
||||
shutdown
|
||||
diff_match: none
|
||||
|
||||
- name: configure device with config
|
||||
cli_config: &conf
|
||||
config: "{{ lookup('template', 'basic/config.j2') }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Idempotence
|
||||
cli_config: *conf
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: remove config
|
||||
cli_config: *rm
|
||||
|
||||
- name: configure device with config
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/config.j2') }}"
|
||||
defaults: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_block_replace.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove configuration
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/setupblock.j2') }}"
|
||||
diff_match: none
|
||||
|
||||
- name: block replace
|
||||
cli_config: &block
|
||||
config: "{{ lookup('template', 'basic/configblock.j2') }}"
|
||||
diff_replace: block
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: block replace (Idempotence)
|
||||
cli_config: *block
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config:
|
||||
config: no ip access-list extended test
|
||||
diff_match: none
|
||||
|
||||
- debug: msg="END cli_config/cli_block_replace.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_exact_match.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove configuration
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/setupexact.j2') }}"
|
||||
diff_match: none
|
||||
|
||||
- name: configure using exact match
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/configexact1.j2') }}"
|
||||
diff_match: exact
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: check using exact match
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/configexact2.j2') }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config:
|
||||
config: no ip access-list extended test
|
||||
diff_match: none
|
||||
|
||||
- debug: msg="END cli_config/cli_exact_match.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_strict_match.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove configuration
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/setupstrict.j2') }}"
|
||||
diff_match: none
|
||||
|
||||
- name: configure using strict match
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/configstrict1.j2') }}"
|
||||
diff_match: strict
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: teardown
|
||||
cli_config:
|
||||
config: no ip access-list extended test
|
||||
diff_match: none
|
||||
|
||||
- debug: msg="END cli_config/cli_strict_match.yaml on connection={{ ansible_connection }}"
|
16
test/integration/targets/iosxr_config/tasks/cli_config.yaml
Normal file
16
test/integration/targets/iosxr_config/tasks/cli_config.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all cli test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli_config"
|
||||
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 (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -1,2 +1,3 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: cli_config.yaml, tags: ['cli_config'] }
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup
|
||||
cli_config: &rm
|
||||
config: |
|
||||
interface Loopback999
|
||||
no description
|
||||
no shutdown
|
||||
become: yes
|
||||
|
||||
- name: configure device with config
|
||||
cli_config: &conf
|
||||
config: "{{ lookup('template', 'basic/config.j2') }}"
|
||||
register: result
|
||||
become: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Idempotence
|
||||
cli_config: *conf
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
16
test/integration/targets/junos_config/tasks/cli_config.yaml
Normal file
16
test/integration/targets/junos_config/tasks/cli_config.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all cli test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli_config"
|
||||
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 (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -1,2 +1,3 @@
|
|||
---
|
||||
- { include: netconf.yaml, tags: ['netconf'] }
|
||||
- { include: cli_config.yaml, tags: ['cli_config'] }
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup
|
||||
cli_config: &rm
|
||||
config: delete interfaces ge-0/0/1
|
||||
become: yes
|
||||
|
||||
- name: configure device with config
|
||||
cli_config: &conf
|
||||
config: set interfaces ge-0/0/1 description 'test-interface'
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Idempotence
|
||||
cli_config: *conf
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
16
test/integration/targets/nxos_config/tasks/cli_config.yaml
Normal file
16
test/integration/targets/nxos_config/tasks/cli_config.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all cli_config test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli_config"
|
||||
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 (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -1,3 +1,4 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: nxapi.yaml, tags: ['nxapi'] }
|
||||
- { include: cli_config.yaml, tags: ['cli_config'] }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
interface Ethernet2/5
|
||||
description this is a test
|
||||
shutdown
|
||||
interface loopback1
|
||||
description this is a test
|
||||
shutdown
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
ip access-list test
|
||||
10 permit ip 192.0.2.1/32 any log
|
||||
20 permit ip 192.0.2.2/32 any log
|
||||
30 permit ip 192.0.2.3/32 any log
|
||||
40 permit ip 192.0.2.4/32 any log
|
|
@ -0,0 +1,5 @@
|
|||
ip access-list test
|
||||
10 permit ip 192.0.2.1/32 any log
|
||||
20 permit ip 192.0.2.2/32 any log
|
||||
30 permit ip 192.0.2.3/32 any log
|
||||
40 permit ip 192.0.2.4/32 any log
|
|
@ -0,0 +1,6 @@
|
|||
ip access-list test
|
||||
10 permit ip 192.0.2.1/32 any log
|
||||
20 permit ip 192.0.2.2/32 any log
|
||||
30 permit ip 192.0.2.3/32 any log
|
||||
40 permit ip 192.0.2.4/32 any log
|
||||
50 permit ip 192.0.2.5/32 any log
|
|
@ -0,0 +1,6 @@
|
|||
no ip access-list test
|
||||
ip access-list test
|
||||
10 permit ip 192.0.2.1/32 any log
|
||||
20 permit ip 192.0.2.2/32 any log
|
||||
30 permit ip 192.0.2.3/32 any log
|
||||
40 permit ip 192.0.2.4/32 any log
|
|
@ -0,0 +1,7 @@
|
|||
no ip access-list test
|
||||
ip access-list test
|
||||
10 permit ip 192.0.2.1/32 any log
|
||||
20 permit ip 192.0.2.2/32 any log
|
||||
30 permit ip 192.0.2.3/32 any log
|
||||
40 permit ip 192.0.2.4/32 any log
|
||||
50 permit ip 192.0.2.5/32 any log
|
|
@ -0,0 +1,7 @@
|
|||
no ip access-list test
|
||||
ip access-list test
|
||||
10 permit ip 192.0.2.1/32 any log
|
||||
20 permit ip 192.0.2.2/32 any log
|
||||
30 permit ip 192.0.2.3/32 any log
|
||||
40 permit ip 192.0.2.4/32 any log
|
||||
50 permit ip 192.0.2.5/32 any log
|
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup
|
||||
cli_config: &rm
|
||||
config: |
|
||||
interface loopback1
|
||||
no description
|
||||
no shutdown
|
||||
diff_match: none
|
||||
|
||||
- name: configure device with config
|
||||
cli_config: &conf
|
||||
config: "{{ lookup('template', 'basic/config.j2') }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Idempotence
|
||||
cli_config: *conf
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: remove config
|
||||
cli_config: *rm
|
||||
|
||||
- name: configure device with config
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/config.j2') }}"
|
||||
defaults: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_block_replace.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove configuration
|
||||
cli_config: &rm
|
||||
config: "no ip access-list test"
|
||||
diff_match: none
|
||||
|
||||
- name: block replace
|
||||
cli_config: &block
|
||||
config: "{{ lookup('template', 'basic/configblock.j2') }}"
|
||||
diff_replace: block
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: block replace (Idempotence)
|
||||
cli_config: *block
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_block_replace.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_exact_match.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove configuration
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/setupexact.j2') }}"
|
||||
diff_match: none
|
||||
|
||||
- name: configure using exact match
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/configexact1.j2') }}"
|
||||
diff_match: exact
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: check using exact match
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/configexact2.j2') }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config:
|
||||
config: no ip access-list test
|
||||
diff_match: none
|
||||
|
||||
- debug: msg="END cli_config/cli_exact_match.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_strict_match.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove configuration
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/setupstrict.j2') }}"
|
||||
diff_match: none
|
||||
|
||||
- name: configure using strict match
|
||||
cli_config:
|
||||
config: "{{ lookup('template', 'basic/configstrict1.j2') }}"
|
||||
diff_match: strict
|
||||
diff_replace: block
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: teardown
|
||||
cli_config:
|
||||
config: no ip access-list test
|
||||
diff_match: none
|
||||
|
||||
- debug: msg="END cli_config/cli_strict_match.yaml on connection={{ ansible_connection }}"
|
16
test/integration/targets/vyos_config/tasks/cli_config.yaml
Normal file
16
test/integration/targets/vyos_config/tasks/cli_config.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: collect all cli_config test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli_config"
|
||||
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 (connection=network_cli)
|
||||
include: "{{ test_case_to_run }} ansible_connection=network_cli"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -1,2 +1,3 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: cli_config.yaml, tags: ['cli_config'] }
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup - remove interface description
|
||||
cli_config: &rm
|
||||
config: delete interfaces loopback lo description
|
||||
|
||||
- name: configure device with config
|
||||
cli_config: &conf
|
||||
config: set interfaces loopback lo description 'this is a test'
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Idempotence
|
||||
cli_config: *conf
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_basic.yaml on connection={{ ansible_connection }}"
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
- debug: msg="START cli_config/cli_comment.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: setup
|
||||
cli_config: &rm
|
||||
config: set system host-name {{ inventory_hostname_short }}
|
||||
|
||||
- name: configure using comment
|
||||
cli_config:
|
||||
config: set system host-name foo
|
||||
commit_comment: this is a test
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: collect system commits
|
||||
vyos_command:
|
||||
commands: show system commit
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "'this is a test' in result.stdout_lines[0][1]"
|
||||
|
||||
- name: teardown
|
||||
cli_config: *rm
|
||||
|
||||
- debug: msg="END cli_config/cli_comment.yaml on connection={{ ansible_connection }}"
|
Loading…
Add table
Add a link
Reference in a new issue