forked from networktocode/ntc-ansible
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-template.yml
45 lines (36 loc) · 1.27 KB
/
test-template.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
---
- name: Verify TextFSM template
hosts: localhost
gather_facts: False
vars_prompt:
- name: template_name
prompt: "Enter the name of the template to verify:"
default: "cisco_ios_show_ip_int_brief"
private: no
- name: device_type
prompt: "Enter the device type:"
default: "cisco_ios"
private: no
tasks:
- name: extract command from template name
set_fact: command_variable="{{ template_name | split(device_type + "_") | last }}"
- name: extract command string from command_variable
set_fact: command="{{ command_variable | split("_") | join(" ") }}"
- name: run TextFSM locally on test input
ntc_show_command:
connection: offline
file: "{{ item }}"
vendor: "{{ device_type }}"
command: "{{ command }}"
with_fileglob:
- "{{ TEST_DIR }}/{{ device_type }}/{{ template_name}}*.raw"
register: ntc_result
- name: read parsed sample files
include_vars: "{{ item.item | split('.') | first }}.parsed"
with_items: "{{ ntc_result.results }}"
register: ntc_result
- name: verify that parsed result is the same as expected
compare_dict:
result: "{{ item.item.response }}"
sample: "{{ item.ansible_facts.parsed_sample }}"
with_items: "{{ ntc_result.results }}"