summaryrefslogtreecommitdiff
path: root/test/integration/targets/nxos_switchport/tests/common/sanity.yaml
blob: db35d3ff3d658448d7758ad631dc02330ed81d6f (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
---
- debug: msg="START connection={{ ansible_connection }} nxos_switchport sanity test"
- debug: msg="Using provider={{ connection.transport }}"
  when: ansible_connection == "local"

# Select interface for test
- set_fact: intname="{{ nxos_int1 }}"

- name: "Interface selected for this test"
  debug: msg="{{ intname }}"

- name: "Setup interface"
  nxos_config: &default
    lines:
      - "default interface {{ intname }}"
    provider: "{{ connection }}"
  ignore_errors: yes

- name: "Setup vlans"
  nxos_vlan:
    vlan_range: "5-10,20"
    provider: "{{ connection }}"

- block:
  - name: Ensure interface is in L2 state
    nxos_interface:
      interface: "{{ intname }}"
      mode: 'layer2'
      provider: "{{ connection }}"

  - name: Ensure interface is in its default switchport state
    nxos_switchport: &def_swi
      interface: "{{ intname }}"
      state: unconfigured
      provider: "{{ connection }}"

  - name: Ensure interface is configured for access vlan 20
    nxos_switchport: &acc_vl
      interface: "{{ intname }}"
      mode: access
      access_vlan: 20
      provider: "{{ connection }}"
    register: result

  - assert: &true
      that:
        - "result.changed == true"

  - name: "access vlan Idempotence"
    nxos_switchport: *acc_vl
    register: result

  - assert: &false
      that:
        - "result.changed == false"

  - name: Ensure interface only has vlans 5-10 as trunk vlans
    nxos_switchport: &tr_vl
      interface: "{{ intname }}"
      mode: trunk
      native_vlan: 10
      trunk_allowed_vlans: 5-10
      provider: "{{ connection }}"
    register: result

  - assert: *true

  - name: "trunk vlan Idempotence"
    nxos_switchport: *tr_vl
    register: result

  - assert: *false

  - name: Ensure interface is a trunk port and ensure 2-50 are being tagged (doesn't mean others aren't also being tagged)
    nxos_switchport: &tag
      interface: "{{ intname }}"
      mode: trunk
      native_vlan: 10
      trunk_vlans: 2-50
      provider: "{{ connection }}"
    register: result

  - assert: *true

  - name: "tag vlan Idempotence"
    nxos_switchport: *tag
    register: result

  - assert: *false

  - name: Ensure these VLANs are not being tagged on the trunk
    nxos_switchport: &no_tag
      interface: "{{ intname }}"
      mode: trunk
      trunk_vlans: 30-4094
      state: absent
      provider: "{{ connection }}"
    register: result

  - assert: *true

  - name: "no tag vlan Idempotence"
    nxos_switchport: *no_tag
    register: result

  - assert: *false

  - name: put interface default state
    nxos_switchport: *def_swi
    register: result

  - assert: *true

  - name: "default state idempotence"
    nxos_switchport: *def_swi
    register: result

  - assert: *false

  always:
  - name: "remove vlans"
    nxos_vlan:
      vlan_range: "5-10,20"
      state: absent
      provider: "{{ connection }}"
    ignore_errors: yes

  - name: "default interface"
    nxos_config: *default
    ignore_errors: yes

- debug: msg="END connection={{ ansible_connection }} nxos_switchport sanity test"