02572cb9ec
* 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
133 lines
4.4 KiB
YAML
133 lines
4.4 KiB
YAML
---
|
|
- debug: msg="START nxos_file_copy negative 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"
|
|
|
|
# -------------------------
|
|
# Tests for file_pull False
|
|
# -------------------------
|
|
- name: "Attempt to copy file to invalid file_system"
|
|
nxos_file_copy:
|
|
file_pull: False
|
|
local_file: "./{{ test_source_file }}"
|
|
file_system: "invalid_media_type:"
|
|
connect_ssh_port: "{{ ansible_ssh_port }}"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- assert:
|
|
that:
|
|
- result is search('Invalid nxos filesystem invalid_media_type:')
|
|
|
|
- name: "Attempt to copy source file that does not exist on Ansible controller"
|
|
nxos_file_copy:
|
|
file_pull: False
|
|
local_file: "./{{ test_source_file }}_does_not_exist"
|
|
file_system: "bootflash:"
|
|
connect_ssh_port: "{{ ansible_ssh_port }}"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- assert:
|
|
that:
|
|
- result is search('Local file ./network-integration.cfg_does_not_exist not found')
|
|
|
|
# -------------------------
|
|
# Tests for file_pull True
|
|
# -------------------------
|
|
- name: "Try and copy file using an invalid remote scp server name"
|
|
nxos_file_copy:
|
|
file_pull: True
|
|
file_pull_timeout: 10
|
|
remote_file: "/{{ test_destination_file }}"
|
|
local_file: "{{ test_destination_file }}_copy"
|
|
local_file_directory: "dir1/dir2/dir3"
|
|
remote_scp_server: "scp_server_gone.example.com"
|
|
remote_scp_server_user: "{{ ansible_ssh_user }}"
|
|
remote_scp_server_password: "{{ ansible_ssh_pass }}"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- assert:
|
|
that:
|
|
- "result.changed == false"
|
|
- "'copy scp:' in result.copy_cmd"
|
|
- "'bootflash:' in result.file_system"
|
|
- "'No Transfer' in result.transfer_status"
|
|
|
|
- assert:
|
|
that:
|
|
- result.error_data is search("ERROR Could not resolve hostname|Copying to.*from this server name is not permitted")
|
|
|
|
- name: "Try and copy file using an invalid remote scp server ip address"
|
|
nxos_file_copy:
|
|
file_pull: True
|
|
file_pull_timeout: 300
|
|
remote_file: "/{{ test_destination_file }}"
|
|
local_file: "{{ test_destination_file }}_copy"
|
|
local_file_directory: "dir1/dir2/dir3"
|
|
remote_scp_server: "192.168.55.55"
|
|
remote_scp_server_user: "{{ ansible_ssh_user }}"
|
|
remote_scp_server_password: "{{ ansible_ssh_pass }}"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- assert:
|
|
that:
|
|
- "result.changed == false"
|
|
- "'copy scp:' in result.copy_cmd"
|
|
- "'timed out' in result.error_data"
|
|
- "'bootflash:' in result.file_system"
|
|
- "'No Transfer' in result.transfer_status"
|
|
|
|
# Sometimes the previous negative test needs a few seconds after the timeout
|
|
# failure before the next negative test is executed.
|
|
- pause:
|
|
seconds: 10
|
|
|
|
- name: "Try and copy file using an invalid username"
|
|
nxos_file_copy:
|
|
file_pull: True
|
|
file_pull_timeout: 10
|
|
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: "invalid_user_name"
|
|
remote_scp_server_password: "{{ ansible_ssh_pass }}"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- assert:
|
|
that:
|
|
- "result.changed == false"
|
|
- "'copy scp:' in result.copy_cmd"
|
|
- "'Too many authentication failures' in result.error_data"
|
|
- "'bootflash:' in result.file_system"
|
|
- "'No Transfer' in result.transfer_status"
|
|
|
|
- name: "Try and copy file using an invalid password"
|
|
nxos_file_copy:
|
|
file_pull: True
|
|
file_pull_timeout: 10
|
|
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: "invalid_password"
|
|
register: result
|
|
ignore_errors: true
|
|
|
|
- assert:
|
|
that:
|
|
- "result.changed == false"
|
|
- "'copy scp:' in result.copy_cmd"
|
|
- "'Too many authentication failures' in result.error_data"
|
|
- "'bootflash:' in result.file_system"
|
|
- "'No Transfer' in result.transfer_status"
|
|
|
|
- debug: msg="END nxos_file_copy negative test"
|