2014-02-19 22:42:02 +01:00
|
|
|
# test code for the pip module
|
|
|
|
# (c) 2014, Michael DeHaan <michael.dehaan@gmail.com>
|
|
|
|
|
|
|
|
# This file is part of Ansible
|
|
|
|
#
|
|
|
|
# Ansible is free software: you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# Ansible is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
2014-02-25 20:42:33 +01:00
|
|
|
- name: create a file that we can use to fetch
|
2019-01-25 04:25:06 +01:00
|
|
|
copy: content="test" dest={{ remote_tmp_dir }}/orig
|
2014-02-19 22:42:02 +01:00
|
|
|
|
2019-04-02 22:58:54 +02:00
|
|
|
- name: fetch the test file
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }}/orig dest={{ output_dir }}/fetched
|
2014-02-19 22:42:02 +01:00
|
|
|
register: fetched
|
|
|
|
|
|
|
|
- debug: var=fetched
|
|
|
|
|
2017-04-26 16:24:36 +02:00
|
|
|
- name: Assert that we fetched correctly
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'fetched["changed"] == True'
|
|
|
|
- 'fetched["checksum"] == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"'
|
|
|
|
- 'fetched["remote_checksum"] == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"'
|
2019-01-25 04:25:06 +01:00
|
|
|
- 'lookup("file", output_dir + "/fetched/" + inventory_hostname + remote_tmp_dir + "/orig") == "test"'
|
2017-04-26 16:24:36 +02:00
|
|
|
|
2016-09-21 22:58:35 +02:00
|
|
|
# TODO: check the become and non-become forms of fetch because in one form we'll do
|
|
|
|
# the get method of the connection plugin and in the become case we'll use the
|
2014-02-19 22:42:02 +01:00
|
|
|
# fetch module.
|
|
|
|
|
2017-04-26 16:24:36 +02:00
|
|
|
- name: fetch a second time to show idempotence
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }}/orig dest={{ output_dir }}/fetched
|
2017-04-26 16:24:36 +02:00
|
|
|
register: fetched
|
|
|
|
|
|
|
|
- name: Assert that the file was not fetched the second time
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'fetched["changed"] == False'
|
|
|
|
- 'fetched["checksum"] == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"'
|
|
|
|
|
2015-09-14 20:21:52 +02:00
|
|
|
- name: attempt to fetch a non-existent file - do not fail on missing
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }}/doesnotexist dest={{ output_dir }}/fetched fail_on_missing=False
|
2015-09-14 20:21:52 +02:00
|
|
|
register: fetch_missing_nofail
|
2014-02-19 22:42:02 +01:00
|
|
|
|
2015-09-14 20:21:52 +02:00
|
|
|
- name: check fetch missing no fail result
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "fetch_missing_nofail.msg"
|
2017-11-27 23:58:08 +01:00
|
|
|
- "fetch_missing_nofail is not changed"
|
2015-09-14 20:21:52 +02:00
|
|
|
|
|
|
|
- name: attempt to fetch a non-existent file - fail on missing
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }}/doesnotexist dest={{ output_dir }}/fetched fail_on_missing=yes
|
2015-09-14 20:21:52 +02:00
|
|
|
register: fetch_missing
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: check fetch missing with failure
|
|
|
|
assert:
|
|
|
|
that:
|
2017-11-27 23:58:08 +01:00
|
|
|
- "fetch_missing is failed"
|
2015-09-14 20:21:52 +02:00
|
|
|
- "fetch_missing.msg"
|
2017-11-27 23:58:08 +01:00
|
|
|
- "fetch_missing is not changed"
|
2015-09-14 20:21:52 +02:00
|
|
|
|
2018-02-21 09:10:23 +01:00
|
|
|
- name: attempt to fetch a non-existent file - fail on missing implicit
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }}/doesnotexist dest={{ output_dir }}/fetched
|
2018-02-21 09:10:23 +01:00
|
|
|
register: fetch_missing_implicit
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: check fetch missing with failure with implicit fail
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "fetch_missing_implicit is failed"
|
|
|
|
- "fetch_missing_implicit.msg"
|
|
|
|
- "fetch_missing_implicit is not changed"
|
|
|
|
|
2015-09-14 20:21:52 +02:00
|
|
|
- name: attempt to fetch a directory - should not fail but return a message
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }} dest={{ output_dir }}/somedir fail_on_missing=False
|
2015-09-14 20:21:52 +02:00
|
|
|
register: fetch_dir
|
|
|
|
|
|
|
|
- name: check fetch directory result
|
|
|
|
assert:
|
|
|
|
that:
|
2017-11-27 23:58:08 +01:00
|
|
|
- "fetch_dir is not changed"
|
2015-09-14 20:21:52 +02:00
|
|
|
- "fetch_dir.msg"
|
2016-09-06 04:40:50 +02:00
|
|
|
|
2017-04-17 19:55:56 +02:00
|
|
|
- name: attempt to fetch a directory - should fail
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }} dest={{ output_dir }}/somedir fail_on_missing=True
|
2017-04-17 19:55:56 +02:00
|
|
|
register: failed_fetch_dir
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: check fetch directory result
|
|
|
|
assert:
|
|
|
|
that:
|
2017-11-27 23:58:08 +01:00
|
|
|
- "failed_fetch_dir is failed"
|
2017-04-17 19:55:56 +02:00
|
|
|
- "fetch_dir.msg"
|
|
|
|
|
2016-09-06 04:40:50 +02:00
|
|
|
- name: create symlink to a file that we can fetch
|
|
|
|
file:
|
2019-01-25 04:25:06 +01:00
|
|
|
path: "{{ remote_tmp_dir }}/link"
|
|
|
|
src: "{{ remote_tmp_dir }}/orig"
|
2016-09-06 04:40:50 +02:00
|
|
|
state: "link"
|
|
|
|
|
|
|
|
- name: fetch the file via a symlink
|
2019-01-25 04:25:06 +01:00
|
|
|
fetch: src={{ remote_tmp_dir }}/link dest={{ output_dir }}/fetched-link
|
2016-09-06 04:40:50 +02:00
|
|
|
register: fetched
|
|
|
|
|
|
|
|
- debug: var=fetched
|
|
|
|
|
2019-01-25 04:25:06 +01:00
|
|
|
- name: Assert that we fetched correctly
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- 'fetched["changed"] == True'
|
|
|
|
- 'fetched["checksum"] == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"'
|
|
|
|
- 'fetched["remote_checksum"] == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"'
|
|
|
|
- 'lookup("file", output_dir + "/fetched-link/" + inventory_hostname + remote_tmp_dir + "/link") == "test"'
|
|
|
|
|
2016-09-21 22:58:35 +02:00
|
|
|
# TODO: check the become and non-become forms of fetch because in one form we'll do
|
|
|
|
# the get method of the connection plugin and in the become case we'll use the
|
2016-09-06 04:40:50 +02:00
|
|
|
# fetch module.
|
|
|
|
|
2017-07-28 11:36:29 +02:00
|
|
|
- name: dest is an existing directory name without trailing slash and flat=yes, should fail
|
|
|
|
fetch:
|
2019-01-25 04:25:06 +01:00
|
|
|
src: "{{ remote_tmp_dir }}/orig"
|
2017-07-28 11:36:29 +02:00
|
|
|
dest: "{{ output_dir }}"
|
|
|
|
flat: yes
|
|
|
|
register: failed_fetch_dest_dir
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: check that it indeed failed
|
|
|
|
assert:
|
|
|
|
that:
|
2017-11-27 23:58:08 +01:00
|
|
|
- "failed_fetch_dest_dir is failed"
|
2017-07-28 11:36:29 +02:00
|
|
|
- "failed_fetch_dest_dir.msg"
|