From 6733bffd5dd7f093d05c702b9eddb017604bb7a4 Mon Sep 17 00:00:00 2001 From: saichint Date: Mon, 4 Jun 2018 22:26:32 -0700 Subject: [PATCH] fix nxos_snapshot issues (#41034) * fix nxos_snapshot issues * review comments * doc change --- .../modules/network/nxos/nxos_snapshot.py | 10 +- .../nxos_snapshot/tests/common/sanity.yaml | 105 +++++++++++++++--- 2 files changed, 89 insertions(+), 26 deletions(-) diff --git a/lib/ansible/modules/network/nxos/nxos_snapshot.py b/lib/ansible/modules/network/nxos/nxos_snapshot.py index be0e3e13687..621f166fbb1 100644 --- a/lib/ansible/modules/network/nxos/nxos_snapshot.py +++ b/lib/ansible/modules/network/nxos/nxos_snapshot.py @@ -289,12 +289,6 @@ def invoke(name, *args, **kwargs): return func(*args, **kwargs) -def get_snapshot(module): - command = 'show snapshot dump {0}'.format(module.params['snapshot_name']) - body = execute_show_command(command, module)[0] - return body - - def write_on_file(content, filename, module): path = module.params['path'] if path[-1] != '/': @@ -373,10 +367,10 @@ def main(): result['changed'] = True if action == 'create' and module.params['path'] and module.params['save_snapshot_locally']: - command = 'show snapshot | include {}'.format(module.params['snapshot_name']) + command = 'show snapshot dump {} | json'.format(module.params['snapshot_name']) content = execute_show_command(command, module)[0] if content: - write_on_file(content, module.params['snapshot_name'], module) + write_on_file(str(content), module.params['snapshot_name'], module) module.exit_json(**result) diff --git a/test/integration/targets/nxos_snapshot/tests/common/sanity.yaml b/test/integration/targets/nxos_snapshot/tests/common/sanity.yaml index a2a1704e519..750bcfb50fe 100644 --- a/test/integration/targets/nxos_snapshot/tests/common/sanity.yaml +++ b/test/integration/targets/nxos_snapshot/tests/common/sanity.yaml @@ -4,19 +4,61 @@ when: ansible_connection == "local" - set_fact: snapshot_run="true" + +- set_fact: snapshot_run="false" + when: titanium and (ansible_connection is match('nxapi')) + - set_fact: snapshot_run="false" - when: titanium and ( connection.transport is match('nxapi')) + when: platform is match('N35') + +- set_fact: add_sec="true" +- set_fact: add_sec="false" + when: imagetag is search("D1") - block: - name: create snapshot - nxos_snapshot: + nxos_snapshot: &crss1 action: create snapshot_name: test_snapshot1 description: Ansible - save_snapshot_locally: true + save_snapshot_locally: True + register: result + + - assert: &true + that: + - "result.changed == true" + + - name: "Conf Idempotence" + nxos_snapshot: *crss1 + register: result + + - assert: &false + that: + - "result.changed == false" + + - block: + - name: Add section + nxos_snapshot: &add + action: add + section: myshow + show_command: show ip interface brief + row_id: ROW_intf + element_key1: intf-name + element_key2: intf-name + register: result + + - assert: *true + + - name: "Conf Idempotence" + nxos_snapshot: *add + register: result + + - assert: *false + + when: add_sec - name: create another snapshot - nxos_snapshot: + nxos_snapshot: &crss2 action: create snapshot_name: test_snapshot2 description: row @@ -24,7 +66,15 @@ show_command: show ip interface brief row_id: ROW_intf element_key1: intf-name - save_snapshot_locally: true + register: result + + - assert: *true + + - name: "Conf Idempotence" + nxos_snapshot: *crss2 + register: result + + - assert: *false - name: compare snapshots nxos_snapshot: @@ -35,25 +85,44 @@ compare_option: summary path: '.' - - name: FAIL compare snapshots - nxos_snapshot: - action: compare - snapshot1: test_snapshot1 - snapshot2: test_snapshot2 - compare_option: summary - path: '.' + - name: delete snapshot + nxos_snapshot: &del + snapshot_name: test_snapshot2 + action: delete register: result - ignore_errors: yes - - assert: - that: - - 'result.failed == True' - - '"action is compare but all of the following are missing: comparison_results_file" in result.msg' + - assert: *true + + - name: "Conf Idempotence" + nxos_snapshot: *del + register: result + + - assert: *false + + - name: delete all snapshots + nxos_snapshot: &delall + action: delete_all + register: result + + - assert: *true + + - name: "Conf Idempotence" + nxos_snapshot: *delall + register: result + + - assert: *false when: snapshot_run always: - - name: delete snapshot + - name: delete all sections + nxos_config: + commands: + - snapshot section delete myshow + match: none + ignore_errors: yes + + - name: delete all snapshots nxos_snapshot: action: delete_all ignore_errors: yes