ansible/test/integration/targets/nxos_file_copy/tests/cli/sanity.yaml
Mike Wiebe 02572cb9ec Rewrite nxos_file_copy as an action plugin (#60643)
* Initial nxos_file_copy action plugin work
* Remove code from nxos_file_copy module
* Add file_push and file_pull support
* Additional refactoring and shipable updates
* Simplify outcomes and update doc header
* Add more error data information for easier debugging
* Reorder outcomes and add additional tests
* Capture more data for permission denied outcome
2019-08-29 12:57:39 -07:00

137 lines
4.9 KiB
YAML

---
- debug: msg="START connection={{ ansible_connection }} nxos_file_copy sanity test"
# This test uses a file that is committed to the Ansible core repository.
# The file name and relative path is test/integration/targets/network-integration.cfg
- set_fact: test_source_file="network-integration.cfg"
- set_fact: test_destination_file="test_destination_file"
- name: "Setup - Remove existing file"
nxos_command: &remove_file
commands:
- terminal dont-ask
- "delete {{ test_source_file }}"
- "delete {{ test_destination_file }}"
- "delete bootflash:/dir1/dir2/dir3/*"
- rmdir dir1/dir2/dir3
- rmdir dir1/dir2
- rmdir dir1
ignore_errors: yes
- name: "Setup - Turn on feature scp-server"
nxos_feature:
feature: scp-server
state: enabled
- block:
- name: "Copy {{ test_source_file }} file from Ansible controller to bootflash"
nxos_file_copy: &copy_file_same_name
local_file: "./{{ test_source_file }}"
file_system: "bootflash:"
connect_ssh_port: "{{ ansible_ssh_port }}"
register: result
- assert:
that:
- "result.changed == true"
- "'bootflash:' in result.file_system"
- "'./{{ test_source_file }}' in result.local_file"
- "'network-integration.cfg' in result.remote_file"
- "'Sent: File copied to remote device.' in result.transfer_status"
- name: "Idempotence - Copy {{ test_source_file }} file from Ansible controller to bootflash"
nxos_file_copy: *copy_file_same_name
register: result
- assert: &false
that:
- "result.changed == false"
- name: "Setup - Remove existing file"
nxos_command: *remove_file
register: result
- name: "Copy {{ test_source_file }} file from Ansible controller to bootflash renamed as {{ test_destination_file }}"
nxos_file_copy: &copy_file_different_name
local_file: "./{{ test_source_file }}"
remote_file: "{{ test_destination_file }}"
file_system: "bootflash:"
connect_ssh_port: "{{ ansible_ssh_port }}"
register: result
- assert:
that:
- "result.changed == true"
- "'bootflash:' in result.file_system"
- "'./{{ test_source_file }}' in result.local_file"
- "'{{ test_destination_file }}' in result.remote_file"
- "'Sent: File copied to remote device.' in result.transfer_status"
- name: "Idempotence - Copy {{ test_source_file }} file from Ansible controller to bootflash renamed as {{ test_destination_file }}"
nxos_file_copy: *copy_file_different_name
register: result
- name: "Verify file_pull true options have no impact when file_true is false"
nxos_file_copy:
file_pull: False
file_pull_timeout: 1200
file_pull_compact: True
file_pull_kstack: True
local_file_directory: "dir1/dir2/dir3"
remote_scp_server: "{{ inventory_hostname_short }}"
remote_scp_server_user: "{{ ansible_ssh_user }}"
remote_scp_server_password: "{{ ansible_ssh_pass }}"
# Parameters above are only used when file_pull is True
local_file: "./{{ test_source_file }}"
remote_file: "{{ test_destination_file }}"
file_system: "bootflash:"
connect_ssh_port: "{{ ansible_ssh_port }}"
register: result
- assert: *false
# This step validates the ability to initiate the copy from the nxos device
# to pull a file from a remote file server to the nxos bootflash device.
#
# In this case we are using the nxos device as the remote file server so we
# copy a file from bootflash: to bootflash:dir1/dir2/dir3
- name: "Initiate copy from nxos device to copy {{ test_destination_file }} to bootflash:dir1/dir2/dir3/{{ test_destination_file }}_copy"
nxos_file_copy: &copy_pull
file_pull: True
file_pull_timeout: 30
remote_file: "/{{ test_destination_file }}"
local_file: "{{ test_destination_file }}_copy"
local_file_directory: "dir1/dir2/dir3"
remote_scp_server: "{{ inventory_hostname_short }}"
remote_scp_server_user: "{{ ansible_ssh_user }}"
remote_scp_server_password: "{{ ansible_ssh_pass }}"
register: result
- assert: &overwrite
that:
- "result.changed == true"
- "'copy scp:' in result.copy_cmd"
- "'bootflash:' in result.file_system"
- "'bootflash:dir1/dir2/dir3/{{ test_destination_file }}_copy' in result.local_file"
- "'/{{ test_destination_file }}' in result.remote_file"
- "'Received: File copied/pulled to nxos device from remote scp server.' in result.transfer_status"
- "'{{ inventory_hostname_short }}' in result.remote_scp_server"
- name: "Overwrite the file"
nxos_file_copy: *copy_pull
register: result
- assert: *overwrite
always:
- name: "Remove file"
nxos_command: *remove_file
ignore_errors: yes
- name: "Turn off feature scp-server"
nxos_feature:
feature: scp-server
state: disabled
- debug: msg="END connection={{ ansible_connection }} nxos_file_copy sanity test"