diff --git a/lib/ansible/modules/network/nxos/nxos_ntp.py b/lib/ansible/modules/network/nxos/nxos_ntp.py index adb2ceed6e5..1bfe673fd0c 100644 --- a/lib/ansible/modules/network/nxos/nxos_ntp.py +++ b/lib/ansible/modules/network/nxos/nxos_ntp.py @@ -135,16 +135,16 @@ import re def execute_show_command(command, module, command_type='cli_show'): - if module.params['transport'] == 'cli': - if 'show run' not in command: - command += ' | json' - cmds = [command] - body = run_commands(module, cmds) - elif module.params['transport'] == 'nxapi': - cmds = [command] - body = run_commands(module, cmds) + if 'show run' not in command: + output = 'json' + else: + output = 'text' - return body + commands = [{ + 'command': command, + 'output': output, + }] + return run_commands(module, commands) def flatten_list(command_lists): @@ -170,7 +170,7 @@ def get_ntp_source(module): else: source_type = 'source' source = output[0].split()[2].lower() - except AttributeError: + except (AttributeError, IndexError): source_type = None source = None @@ -327,7 +327,6 @@ def main(): warnings = list() check_args(module, warnings) - server = module.params['server'] or None peer = module.params['peer'] or None key_id = module.params['key_id'] diff --git a/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py b/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py index c1a507f99b2..ad5ec2601f3 100644 --- a/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py +++ b/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py @@ -146,7 +146,6 @@ from ansible.module_utils.netcfg import CustomNetworkConfig PARAM_TO_COMMAND_KEYMAP = { 'vrf': 'vrf', - 'ospf': 'ospf', 'router_id': 'router-id', 'default_metric': 'default-metric', 'log_adjacency': 'log-adjacency-changes', diff --git a/test/integration/nxos.yaml b/test/integration/nxos.yaml index e32d01d9578..e76ae257550 100644 --- a/test/integration/nxos.yaml +++ b/test/integration/nxos.yaml @@ -240,6 +240,14 @@ failed_modules: "{{ failed_modules }} + [ 'nxos_vxlan_vtep' ]" test_failed: true + - block: + - include_role: + name: nxos_ntp + when: "limit_to in ['*', 'nxos_ntp']" + rescue: + - set_fact: + failed_modules: "{{ failed_modules }} + [ 'nxos_ntp' ]" + test_failed: true - block: - include_role: name: nxos_ospf @@ -249,6 +257,15 @@ failed_modules: "{{ failed_modules }} + [ 'nxos_ospf' ]" test_failed: true + - block: + - include_role: + name: nxos_ospf_vrf + when: "limit_to in ['*', 'nxos_ospf_vrf']" + rescue: + - set_fact: + failed_modules: "{{ failed_modules }} + [ 'nxos_ospf_vrf' ]" + test_failed: true + - block: - include_role: name: nxos_interface_ospf diff --git a/test/integration/targets/nxos_ntp/defaults/main.yaml b/test/integration/targets/nxos_ntp/defaults/main.yaml new file mode 100644 index 00000000000..5f709c5aac1 --- /dev/null +++ b/test/integration/targets/nxos_ntp/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/test/integration/targets/nxos_ntp/meta/main.yml b/test/integration/targets/nxos_ntp/meta/main.yml new file mode 100644 index 00000000000..ae741cbdc71 --- /dev/null +++ b/test/integration/targets/nxos_ntp/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nxos_tests diff --git a/test/integration/targets/nxos_ntp/tasks/cli.yaml b/test/integration/targets/nxos_ntp/tasks/cli.yaml new file mode 100644 index 00000000000..d675462dd02 --- /dev/null +++ b/test/integration/targets/nxos_ntp/tasks/cli.yaml @@ -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 diff --git a/test/integration/targets/nxos_ntp/tasks/main.yaml b/test/integration/targets/nxos_ntp/tasks/main.yaml new file mode 100644 index 00000000000..fea9337c14c --- /dev/null +++ b/test/integration/targets/nxos_ntp/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +# Use block to ensure that both cli and nxapi tests +# will run even if there are failures or errors. +- block: + - { include: cli.yaml, tags: ['cli'] } + always: + - { include: nxapi.yaml, tags: ['nxapi'] } diff --git a/test/integration/targets/nxos_ntp/tasks/nxapi.yaml b/test/integration/targets/nxos_ntp/tasks/nxapi.yaml new file mode 100644 index 00000000000..ea525379f7f --- /dev/null +++ b/test/integration/targets/nxos_ntp/tasks/nxapi.yaml @@ -0,0 +1,28 @@ +--- +- name: collect all nxapi test cases + find: + paths: "{{ role_path }}/tests/nxapi" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: enable nxapi + nxos_config: + lines: + - feature nxapi + - nxapi http port 80 + provider: "{{ cli }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: disable nxapi + nxos_config: + lines: + - no feature nxapi + provider: "{{ cli }}" diff --git a/test/integration/targets/nxos_ntp/tests/cli/sanity.yaml b/test/integration/targets/nxos_ntp/tests/cli/sanity.yaml new file mode 100644 index 00000000000..c28f9d61456 --- /dev/null +++ b/test/integration/targets/nxos_ntp/tests/cli/sanity.yaml @@ -0,0 +1,4 @@ +--- +- set_fact: connection="{{ cli }}" + +- import_tasks: targets/nxos_ntp/tests/common/sanity.yaml diff --git a/test/integration/targets/nxos_ntp/tests/common/sanity.yaml b/test/integration/targets/nxos_ntp/tests/common/sanity.yaml new file mode 100644 index 00000000000..8a5f654f9a4 --- /dev/null +++ b/test/integration/targets/nxos_ntp/tests/common/sanity.yaml @@ -0,0 +1,56 @@ +--- +- debug: msg="START TRANSPORT:{{ connection.transport }} nxos_ntp sanity test" + +- name: Setup - Remove ntp if configured + nxos_ntp: &remove + server: 1.2.3.4 + key_id: 32 + prefer: disabled + vrf_name: management + source_addr: 5.5.5.5 + state: absent + provider: "{{ connection }}" + ignore_errors: yes + +- block: + + - name: Configure ntp + nxos_ntp: &config + server: 1.2.3.4 + key_id: 32 + prefer: enabled + vrf_name: management + source_addr: 5.5.5.5 + state: present + provider: "{{ connection }}" + register: result + + - assert: &true + that: + - "result.changed == true" + + - name: Idempotence Check + nxos_ntp: *config + register: result + + - assert: &false + that: + - "result.changed == false" + + - name: Remove ntp config + nxos_ntp: *remove + register: result + + - assert: *true + + - name: Remove Idempotence Check + nxos_ntp: *remove + register: result + + - assert: *false + + always: + - name: Remove ntp config + nxos_ntp: *remove + + - debug: msg="END TRANSPORT:{{ connection.transport }} nxos_ntp sanity test" diff --git a/test/integration/targets/nxos_ntp/tests/nxapi/sanity.yaml b/test/integration/targets/nxos_ntp/tests/nxapi/sanity.yaml new file mode 100644 index 00000000000..7e6a8bd9dbe --- /dev/null +++ b/test/integration/targets/nxos_ntp/tests/nxapi/sanity.yaml @@ -0,0 +1,4 @@ +--- +- set_fact: connection="{{ nxapi }}" + +- import_tasks: targets/nxos_ntp/tests/common/sanity.yaml diff --git a/test/integration/targets/nxos_ospf_vrf/defaults/main.yaml b/test/integration/targets/nxos_ospf_vrf/defaults/main.yaml new file mode 100644 index 00000000000..5f709c5aac1 --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/test/integration/targets/nxos_ospf_vrf/meta/main.yml b/test/integration/targets/nxos_ospf_vrf/meta/main.yml new file mode 100644 index 00000000000..ae741cbdc71 --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - prepare_nxos_tests diff --git a/test/integration/targets/nxos_ospf_vrf/tasks/cli.yaml b/test/integration/targets/nxos_ospf_vrf/tasks/cli.yaml new file mode 100644 index 00000000000..d675462dd02 --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/tasks/cli.yaml @@ -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 diff --git a/test/integration/targets/nxos_ospf_vrf/tasks/main.yaml b/test/integration/targets/nxos_ospf_vrf/tasks/main.yaml new file mode 100644 index 00000000000..fea9337c14c --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/tasks/main.yaml @@ -0,0 +1,7 @@ +--- +# Use block to ensure that both cli and nxapi tests +# will run even if there are failures or errors. +- block: + - { include: cli.yaml, tags: ['cli'] } + always: + - { include: nxapi.yaml, tags: ['nxapi'] } diff --git a/test/integration/targets/nxos_ospf_vrf/tasks/nxapi.yaml b/test/integration/targets/nxos_ospf_vrf/tasks/nxapi.yaml new file mode 100644 index 00000000000..ea525379f7f --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/tasks/nxapi.yaml @@ -0,0 +1,28 @@ +--- +- name: collect all nxapi test cases + find: + paths: "{{ role_path }}/tests/nxapi" + patterns: "{{ testcase }}.yaml" + register: test_cases + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: enable nxapi + nxos_config: + lines: + - feature nxapi + - nxapi http port 80 + provider: "{{ cli }}" + +- name: run test case + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: disable nxapi + nxos_config: + lines: + - no feature nxapi + provider: "{{ cli }}" diff --git a/test/integration/targets/nxos_ospf_vrf/tests/cli/sanity.yaml b/test/integration/targets/nxos_ospf_vrf/tests/cli/sanity.yaml new file mode 100644 index 00000000000..57109695e42 --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/tests/cli/sanity.yaml @@ -0,0 +1,4 @@ +--- +- set_fact: connection="{{ cli }}" + +- import_tasks: targets/nxos_ospf_vrf/tests/common/sanity.yaml diff --git a/test/integration/targets/nxos_ospf_vrf/tests/common/sanity.yaml b/test/integration/targets/nxos_ospf_vrf/tests/common/sanity.yaml new file mode 100644 index 00000000000..2ab02bbcf46 --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/tests/common/sanity.yaml @@ -0,0 +1,64 @@ +--- +- debug: msg="START TRANSPORT:{{ connection.transport }} nxos_ospf_vrf sanity test" + +- name: "Enable feature OSPF" + nxos_feature: + feature: ospf + state: enabled + provider: "{{ connection }}" + ignore_errors: yes + +- block: + - name: Configure ospf vrf + nxos_ospf_vrf: &config + ospf: 1 + router_id: 1.1.1.1 + timer_throttle_spf_start: 50 + timer_throttle_spf_hold: 1000 + timer_throttle_spf_max: 2000 + timer_throttle_lsa_start: 60 + timer_throttle_lsa_hold: 1100 + timer_throttle_lsa_max: 3000 + vrf: test + state: present + provider: "{{ connection }}" + register: result + + - assert: &true + that: + - "result.changed == true" + + - name: "Check Idempotence" + nxos_ospf_vrf: *config + register: result + + - assert: &false + that: + - "result.changed == false" + + rescue: + - name: "Disable feature OSPF" + nxos_feature: + feature: ospf + state: disabled + provider: "{{ connection }}" + ignore_errors: yes + + always: + - name: Unconfigure ospf vrf + nxos_ospf_vrf: &unconfig + ospf: 1 + vrf: test + state: absent + provider: "{{ connection }}" + register: result + + - assert: *true + + - name: "Check Idempotence" + nxos_ospf_vrf: *unconfig + register: result + + - assert: *false + +- debug: msg="END TRANSPORT:{{ connection.transport }} nxos_ospf_vrf sanity test" diff --git a/test/integration/targets/nxos_ospf_vrf/tests/nxapi/sanity.yaml b/test/integration/targets/nxos_ospf_vrf/tests/nxapi/sanity.yaml new file mode 100644 index 00000000000..1c3f845c164 --- /dev/null +++ b/test/integration/targets/nxos_ospf_vrf/tests/nxapi/sanity.yaml @@ -0,0 +1,4 @@ +--- +- set_fact: connection="{{ nxapi }}" + +- import_tasks: targets/nxos_ospf_vrf/tests/common/sanity.yaml diff --git a/test/units/modules/network/nxos/test_nxos_ospf_vrf.py b/test/units/modules/network/nxos/test_nxos_ospf_vrf.py index 1fec5aa1d5e..9fac7471ca0 100644 --- a/test/units/modules/network/nxos/test_nxos_ospf_vrf.py +++ b/test/units/modules/network/nxos/test_nxos_ospf_vrf.py @@ -59,7 +59,6 @@ class TestNxosOspfVrfModule(TestNxosModule): sorted(['router ospf 1', 'vrf test', 'timers throttle lsa 60 1100 3000', - 'ospf 1', 'timers throttle spf 50 1000 2000', 'vrf test']))