ansible/test/integration/targets/nxos_file_copy/tests/cli/negative.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

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"