summaryrefslogtreecommitdiff
path: root/test/integration/targets/nxos_vlan/tests/common/interface.yaml
blob: cba7372ce53e3e6082445d224ece0c8ca6547c58 (plain)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---
- set_fact: testint1="{{ nxos_int1 }}"
- set_fact: testint2="{{ nxos_int2 }}"

- name: setup - remove vlan used in test
  nxos_config:
    lines:
      - no vlan 100
    provider: "{{ connection }}"

- name: setup - remove vlan from interfaces used in test(part1)
  nxos_config:
    lines:
      - no switchport access vlan 100
    parents: switchport
    before: "interface {{ testint1 }}"
    provider: "{{ connection }}"

- name: setup - remove vlan from interfaces used in test(part2)
  nxos_config:
    lines:
      - no switchport access vlan 100
    parents: switchport
    before: "interface {{ testint2 }}"
    provider: "{{ connection }}"

- name: create vlan
  nxos_vlan:
    vlan_id: 100
    provider: "{{ connection }}"

- name: Add interfaces to vlan and check intent (config + intent)
  nxos_vlan: &interfaces
    vlan_id: 100
    interfaces:
      - "{{ testint1 }}"
      - "{{ testint2 }}"
    associated_interfaces:
      - "{{ testint1 }}"
      - "{{ testint2 }}"
    provider: "{{ connection }}"
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"interface {{ testint1 }}" in result.commands'
      - '"switchport" in result.commands'
      - '"switchport mode access" in result.commands'
      - '"switchport access vlan 100" in result.commands'
      - '"interface {{ testint2 }}" in result.commands'
      - '"switchport" in result.commands'
      - '"switchport mode access" in result.commands'
      - '"switchport access vlan 100" in result.commands'

- name: Add interfaces to vlan(idempotence)
  nxos_vlan: *interfaces
  register: result

- assert:
    that:
      - 'result.changed == false'

- name: Check interfaces intent
  nxos_vlan:
    vlan_id: 100
    associated_interfaces:
      - "{{ testint1 }}"
      - "{{ testint2 }}"
    provider: "{{ connection }}"
  register: result

- assert:
    that:
      - "result.failed == false"

- name: Check interfaces intent fail
  nxos_vlan:
    vlan_id: 100
    associated_interfaces:
      - test
    provider: "{{ connection }}"
  register: result
  ignore_errors: yes

- assert:
    that:
      - "result.failed == True"

- name: Remove interface from vlan
  nxos_vlan: &single_int
    vlan_id: 100
    interfaces:
      - "{{ testint2 }}"
    provider: "{{ connection }}"
  register: result

- assert:
    that:
      - 'result.changed == true'
      - '"interface {{ testint1 }}" in result.commands'
      - '"switchport" in result.commands'
      - '"switchport mode access" in result.commands'
      - '"no switchport access vlan 100" in result.commands'

- name: Remove interface from vlan(idempotence)
  nxos_vlan: *single_int
  register: result

- assert:
    that:
      - 'result.changed == false'

- name: teardown(part1)
  nxos_config:
    lines:
      - no vlan 100
    provider: "{{ connection }}"

- name: teardown - remove vlan from interfaces used in test(part1)
  nxos_config:
    lines:
      - no switchport access vlan 100
    parents: switchport
    before: "interface {{ testint1 }}"
    provider: "{{ connection }}"

- name: teardown - remove vlan from interfaces used in test(part2)
  nxos_config:
    lines:
      - no switchport access vlan 100
    parents: switchport
    before: "interface {{ testint2 }}"
    provider: "{{ connection }}"