summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
authorSumit Jaiswal <sjaiswal@redhat.com>2019-08-19 20:41:00 +0530
committerGitHub <noreply@github.com>2019-08-19 20:41:00 +0530
commit04ef376ab2359a301e9b6ba6cffb149093fd2e6a (patch)
tree546899944108a05bd5915e45b68d07d361a16210 /test/integration
parent31bfcd4745fdceeb0c29f77f43726abfed044cab (diff)
downloadansible-04ef376ab2359a301e9b6ba6cffb149093fd2e6a.tar.gz
Resource module for ios_lag_interfaces (#60672)
Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/targets/ios_lag_interfaces/defaults/main.yaml3
-rw-r--r--test/integration/targets/ios_lag_interfaces/meta/main.yaml1
-rw-r--r--test/integration/targets/ios_lag_interfaces/tasks/cli.yaml24
-rw-r--r--test/integration/targets/ios_lag_interfaces/tasks/main.yaml2
-rw-r--r--test/integration/targets/ios_lag_interfaces/tests/cli/_populate_config.yaml11
-rw-r--r--test/integration/targets/ios_lag_interfaces/tests/cli/_remove_config.yaml11
-rw-r--r--test/integration/targets/ios_lag_interfaces/tests/cli/deleted.yaml41
-rw-r--r--test/integration/targets/ios_lag_interfaces/tests/cli/merged.yaml46
-rw-r--r--test/integration/targets/ios_lag_interfaces/tests/cli/overridden.yaml46
-rw-r--r--test/integration/targets/ios_lag_interfaces/tests/cli/replaced.yaml50
-rw-r--r--test/integration/targets/ios_lag_interfaces/vars/main.yaml93
11 files changed, 328 insertions, 0 deletions
diff --git a/test/integration/targets/ios_lag_interfaces/defaults/main.yaml b/test/integration/targets/ios_lag_interfaces/defaults/main.yaml
new file mode 100644
index 0000000000..164afead28
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/defaults/main.yaml
@@ -0,0 +1,3 @@
+---
+testcase: "[^_].*"
+test_items: []
diff --git a/test/integration/targets/ios_lag_interfaces/meta/main.yaml b/test/integration/targets/ios_lag_interfaces/meta/main.yaml
new file mode 100644
index 0000000000..32cf5dda7e
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/meta/main.yaml
@@ -0,0 +1 @@
+dependencies: []
diff --git a/test/integration/targets/ios_lag_interfaces/tasks/cli.yaml b/test/integration/targets/ios_lag_interfaces/tasks/cli.yaml
new file mode 100644
index 0000000000..55d0413040
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tasks/cli.yaml
@@ -0,0 +1,24 @@
+---
+- name: Collect all cli test cases
+ find:
+ paths: "{{ role_path }}/tests/cli"
+ patterns: "{{ testcase }}.yaml"
+ use_regex: true
+ register: test_cases
+ delegate_to: localhost
+
+- name: Set test_items
+ set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
+ delegate_to: localhost
+
+- name: Get the IOS version
+ ios_facts:
+ gather_subset: all
+
+- name: Run test case (connection=network_cli)
+ include: "{{ test_case_to_run }}"
+ vars:
+ ansible_connection: network_cli
+ with_items: "{{ test_items }}"
+ loop_control:
+ loop_var: test_case_to_run
diff --git a/test/integration/targets/ios_lag_interfaces/tasks/main.yaml b/test/integration/targets/ios_lag_interfaces/tasks/main.yaml
new file mode 100644
index 0000000000..415c99d8b1
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tasks/main.yaml
@@ -0,0 +1,2 @@
+---
+- { include: cli.yaml, tags: ['cli'] }
diff --git a/test/integration/targets/ios_lag_interfaces/tests/cli/_populate_config.yaml b/test/integration/targets/ios_lag_interfaces/tests/cli/_populate_config.yaml
new file mode 100644
index 0000000000..6a3f2f8ca1
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tests/cli/_populate_config.yaml
@@ -0,0 +1,11 @@
+---
+- name: Populate Config
+ cli_config:
+ config: "{{ lines }}"
+ vars:
+ lines: |
+ interface GigabitEthernet 0/1
+ channel-group 1 mode active
+ interface GigabitEthernet 0/2
+ channel-group 1 mode passive
+ when: ansible_net_version != "15.6(2)T"
diff --git a/test/integration/targets/ios_lag_interfaces/tests/cli/_remove_config.yaml b/test/integration/targets/ios_lag_interfaces/tests/cli/_remove_config.yaml
new file mode 100644
index 0000000000..3a57969291
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tests/cli/_remove_config.yaml
@@ -0,0 +1,11 @@
+---
+- name: Remove Config
+ cli_config:
+ config: "{{ lines }}"
+ vars:
+ lines: |
+ interface GigabitEthernet 0/1
+ no channel-group
+ interface GigabitEthernet 0/2
+ no channel-group
+ when: ansible_net_version != "15.6(2)T"
diff --git a/test/integration/targets/ios_lag_interfaces/tests/cli/deleted.yaml b/test/integration/targets/ios_lag_interfaces/tests/cli/deleted.yaml
new file mode 100644
index 0000000000..01429d3d2a
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tests/cli/deleted.yaml
@@ -0,0 +1,41 @@
+---
+- debug:
+ msg: "Start Deleted integration state for ios_lag_interfaces ansible_connection={{ ansible_connection }}"
+
+- include_tasks: _remove_config.yaml
+
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Delete attributes of all configured interfaces
+ ios_lag_interfaces: &deleted
+ state: deleted
+ register: result
+
+ - name: Assert that correct set of commands were generated
+ assert:
+ that:
+ - "{{ deleted['commands'] | symmetric_difference(result['commands']) | length == 0 }}"
+
+ - name: Assert that before dicts are correctly generated
+ assert:
+ that:
+ - "{{ deleted['before'] | symmetric_difference(result['before']) | length == 0 }}"
+
+ - name: Assert that after dict is correctly generated
+ assert:
+ that:
+ - "{{ deleted['after'] | symmetric_difference(result['after']) | length == 0 }}"
+
+ - name: Delete attributes of all configured interfaces (IDEMPOTENT)
+ ios_lag_interfaces: *deleted
+ register: result
+
+ - name: Assert that the previous task was idempotent
+ assert:
+ that:
+ - "result.changed == false"
+ when: ansible_net_version != "15.6(2)T"
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/test/integration/targets/ios_lag_interfaces/tests/cli/merged.yaml b/test/integration/targets/ios_lag_interfaces/tests/cli/merged.yaml
new file mode 100644
index 0000000000..07ade884b7
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tests/cli/merged.yaml
@@ -0,0 +1,46 @@
+---
+- debug:
+ msg: "START Merged ios_lag_interfaces state for integration tests on connection={{ ansible_connection }}"
+
+- include_tasks: _remove_config.yaml
+
+- block:
+ - name: Merge provided configuration with device configuration
+ ios_lag_interfaces: &merged
+ config:
+ - name: Port-channel1
+ members:
+ - member: GigabitEthernet0/1
+ mode: active
+ - member: GigabitEthernet0/2
+ mode: passive
+ state: merged
+ register: result
+
+ - name: Assert that correct set of commands were generated
+ assert:
+ that:
+ - "{{ merged['commands'] | symmetric_difference(result['commands']) | length == 0 }}"
+
+ - name: Assert that before dicts are correctly generated
+ assert:
+ that:
+ - "{{ merged['before'] | symmetric_difference(result['before']) | length == 0 }}"
+
+ - name: Assert that after dict is correctly generated
+ assert:
+ that:
+ - "{{ merged['after'] | symmetric_difference(result['after']) | length == 0 }}"
+
+ - name: Merge provided configuration with device configuration (IDEMPOTENT)
+ ios_lag_interfaces: *merged
+ register: result
+
+ - name: Assert that the previous task was idempotent
+ assert:
+ that:
+ - "result['changed'] == false"
+ when: ansible_net_version != "15.6(2)T"
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/test/integration/targets/ios_lag_interfaces/tests/cli/overridden.yaml b/test/integration/targets/ios_lag_interfaces/tests/cli/overridden.yaml
new file mode 100644
index 0000000000..03415b97bc
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tests/cli/overridden.yaml
@@ -0,0 +1,46 @@
+---
+- debug:
+ msg: "START Overridden ios_lag_interfaces state for integration tests on connection={{ ansible_connection }}"
+
+- include_tasks: _remove_config.yaml
+
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Override device configuration of all interfaces with provided configuration
+ ios_lag_interfaces: &overridden
+ config:
+ - name: Port-channel10
+ members:
+ - member: GigabitEthernet0/2
+ mode: passive
+ state: overridden
+ register: result
+
+ - name: Assert that correct set of commands were generated
+ assert:
+ that:
+ - "{{ overridden['commands'] | symmetric_difference(result['commands']) | length == 0 }}"
+
+ - name: Assert that before dicts are correctly generated
+ assert:
+ that:
+ - "{{ overridden['before'] | symmetric_difference(result['before']) | length == 0 }}"
+
+ - name: Assert that after dict is correctly generated
+ assert:
+ that:
+ - "{{ overridden['after'] | symmetric_difference(result['after']) | length == 0 }}"
+
+ - name: Override device configuration of all interfaces with provided configuration (IDEMPOTENT)
+ ios_lag_interfaces: *overridden
+ register: result
+
+ - name: Assert that task was idempotent
+ assert:
+ that:
+ - "result['changed'] == false"
+ when: ansible_net_version != "15.6(2)T"
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/test/integration/targets/ios_lag_interfaces/tests/cli/replaced.yaml b/test/integration/targets/ios_lag_interfaces/tests/cli/replaced.yaml
new file mode 100644
index 0000000000..26ec314e31
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/tests/cli/replaced.yaml
@@ -0,0 +1,50 @@
+---
+- debug:
+ msg: "START Replaced ios_lag_interfaces state for integration tests on connection={{ ansible_connection }}"
+
+- include_tasks: _remove_config.yaml
+
+- include_tasks: _populate_config.yaml
+
+- block:
+ - name: Replaces device configuration of listed interfaces with provided configuration
+ ios_lag_interfaces: &replaced
+ config:
+ - name: Port-channel2
+ members:
+ - member: GigabitEthernet0/1
+ mode: active
+ - name: Port-channel40
+ members:
+ - member: GigabitEthernet0/2
+ mode: active
+ state: replaced
+ register: result
+
+ - name: Assert that correct set of commands were generated
+ assert:
+ that:
+ - "{{ replaced['commands'] | symmetric_difference(result['commands']) | length == 0 }}"
+
+ - name: Assert that before dicts are correctly generated
+ assert:
+ that:
+ - "{{ replaced['before'] | symmetric_difference(result['before']) | length == 0 }}"
+
+ - name: Assert that after dict is correctly generated
+ assert:
+ that:
+ - "{{ replaced['after'] | symmetric_difference(result['after']) | length == 0 }}"
+
+ - name: Replaces device configuration of listed interfaces with provided configuration (IDEMPOTENT)
+ ios_lag_interfaces: *replaced
+ register: result
+
+ - name: Assert that task was idempotent
+ assert:
+ that:
+ - "result['changed'] == false"
+ when: ansible_net_version != "15.6(2)T"
+
+ always:
+ - include_tasks: _remove_config.yaml
diff --git a/test/integration/targets/ios_lag_interfaces/vars/main.yaml b/test/integration/targets/ios_lag_interfaces/vars/main.yaml
new file mode 100644
index 0000000000..e97107f1dd
--- /dev/null
+++ b/test/integration/targets/ios_lag_interfaces/vars/main.yaml
@@ -0,0 +1,93 @@
+---
+merged:
+ before:
+ - name: GigabitEthernet0/0
+ - name: GigabitEthernet0/1
+ - name: GigabitEthernet0/2
+
+ commands:
+ - "interface GigabitEthernet0/1"
+ - "channel-group 1 mode active"
+ - "interface GigabitEthernet0/2"
+ - "channel-group 1 mode passive"
+
+ after:
+ - name: GigabitEthernet0/0
+ - members:
+ - member: GigabitEthernet0/1
+ mode: active
+ - member: GigabitEthernet0/2
+ mode: passive
+ name: Port-channel1
+
+replaced:
+ before:
+ - name: GigabitEthernet0/0
+ - members:
+ - member: GigabitEthernet0/1
+ mode: active
+ - member: GigabitEthernet0/2
+ mode: passive
+ name: Port-channel1
+
+ commands:
+ - "interface GigabitEthernet0/1"
+ - "channel-group 2 mode active"
+ - "interface GigabitEthernet0/2"
+ - "channel-group 40 mode active"
+
+ after:
+ - name: GigabitEthernet0/0
+ - members:
+ - member: GigabitEthernet0/1
+ mode: active
+ name: Port-channel2
+ - members:
+ - member: GigabitEthernet0/2
+ mode: active
+ name: Port-channel40
+
+overridden:
+ before:
+ - name: GigabitEthernet0/0
+ - members:
+ - member: GigabitEthernet0/1
+ mode: active
+ - member: GigabitEthernet0/2
+ mode: passive
+ name: Port-channel1
+
+ commands:
+ - "interface GigabitEthernet0/1"
+ - "no channel-group"
+ - "interface GigabitEthernet0/2"
+ - "channel-group 10 mode passive"
+
+ after:
+ - name: GigabitEthernet0/0
+ - name: GigabitEthernet0/1
+ - members:
+ - member: GigabitEthernet0/2
+ mode: passive
+ name: Port-channel10
+
+deleted:
+ before:
+ - name: GigabitEthernet0/0
+ - members:
+ - member: GigabitEthernet0/1
+ mode: active
+ - member: GigabitEthernet0/2
+ mode: passive
+ name: Port-channel1
+
+ commands:
+ - "interface GigabitEthernet0/1"
+ - "no channel-group"
+ - "interface GigabitEthernet0/2"
+ - "no channel-group"
+
+ after:
+ - name: GigabitEthernet0/0
+ - name: GigabitEthernet0/1
+ - name: GigabitEthernet0/2