Add ios_logging implementation module (#26785)

* Add ios_logging implementation module

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* fix doc

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* integration test net_logging and ios_logging

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* modify the module code

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* modify the module code

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* change collection to aggregate

* fix buffer size logic

* fix pep8 issues
This commit is contained in:
Trishna Guha
2017-07-17 12:45:53 +05:30
committed by GitHub
parent 033a68d453
commit c38bccb3c4
9 changed files with 581 additions and 1 deletions

View File

@@ -69,9 +69,16 @@
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: ios_logging
when: "limit_to in ['*', 'ios_logging']"
rescue:
- set_fact: test_failed=true
###########
- name: Has any previous test failed?
fail:
msg: "One or more tests failed, check log for details"
when: test_failed
when: test_failed

View File

@@ -0,0 +1,2 @@
---
testcase: "*"

View File

@@ -0,0 +1,2 @@
dependencies:
- prepare_ios_tests

View File

@@ -0,0 +1,15 @@
---
- 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: "{{ test_case_to_run }}"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run

View File

@@ -0,0 +1,2 @@
---
- { include: cli.yaml, tags: ['cli'] }

View File

@@ -0,0 +1,97 @@
---
- name: Set up host logging
ios_logging:
dest: host
name: 172.16.0.1
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.chaned == true'
- '"logging host 172.16.0.1" in result.commands'
- '"logging facility local7" in result.commands'
- name: Set up host logging again (idempotent)
ios_logging:
dest: host
name: 172.16.0.1
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == false'
- name: Delete/disable host logging
ios_logging:
dest: host
name: 172.16.0.1
state: absent
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"no logging host 172.16.0.1" in result.commands'
- name: Delete/disable host logging (idempotent)
ios_logging:
dest: host
name: 172.16.0.1
state: absent
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == false'
- name: Console logging with level warnings
ios_logging:
dest: console
level: warnings
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"logging console warnings" in result.commands'
- name: Configure Buffer size
ios_logging:
dest: buffered
size: 8000
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"logging buffered 8000" in result.commands'
- name: remove logging as collection tearDown
ios_logging:
aggregate:
- { dest: console, level: warnings, state: absent }
- { dest: buffered, size: 8000, state: absent }
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"no logging console" in result.commands'
- '"no logging buffered" in result.commands'

View File

@@ -5,3 +5,6 @@
- include: "{{ role_path }}/tests/vyos/basic.yaml"
when: hostvars[inventory_hostname]['ansible_network_os'] == 'vyos'
- include: "{{ role_path }}/tests/ios/basic.yaml"
when: hostvars[inventory_hostname]['ansible_network_os'] == 'ios'

View File

@@ -0,0 +1,97 @@
---
- name: Set up host logging
net_logging:
dest: host
name: 172.16.0.1
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.chaned == true'
- '"logging host 172.16.0.1" in result.commands'
- '"logging facility local7" in result.commands'
- name: Set up host logging again (idempotent)
net_logging:
dest: host
name: 172.16.0.1
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == false'
- name: Delete/disable host logging
net_logging:
dest: host
name: 172.16.0.1
state: absent
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"no logging host 172.16.0.1" in result.commands'
- name: Delete/disable host logging (idempotent)
net_logging:
dest: host
name: 172.16.0.1
state: absent
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == false'
- name: Console logging with level warnings
net_logging:
dest: console
level: warnings
state: present
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"logging console warnings" in result.commands'
- name: Configure monitor logging
net_logging:
dest: monitor
level: debugging
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"logging monitor debugging" in result.commands'
- name: remove logging as collection tearDown
net_logging:
aggregate:
- { dest: console, level: warnings, state: absent }
- { dest: monitor, level: debuggning, state: absent }
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- 'result.changed == true'
- '"no logging console" in result.commands'
- '"no logging monitor" in result.commands'