Skip to content

Commit

Permalink
Add SSH connection tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
felixfontein committed Mar 27, 2021
1 parent 458cf6c commit af3da9e
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 0 deletions.
4 changes: 4 additions & 0 deletions tests/integration/targets/generic_ssh_connection/aliases
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
shippable/posix/group4
destructive
needs/root
skip/docker # we need a VM, and not a container
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
dependencies:
- setup_docker
- setup_paramiko
77 changes: 77 additions & 0 deletions tests/integration/targets/generic_ssh_connection/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################

- name: Get docker daemon information directly
docker_host_info:
register: output

- name: Make sure we got information
assert:
that:
- 'output.host_info.Name is string'
- 'output.containers is not defined'
- 'output.networks is not defined'
- 'output.volumes is not defined'
- 'output.images is not defined'
- 'output.disk_usage is not defined'

- name: Show contents of ~/.ssh
command: ls -lah ~/.ssh
ignore_errors: true

- name: Create SSH config
copy:
dest: "{{ lookup('env', 'HOME') }}/.ssh/config"
mode: '0600'
content: |
Host localhost
User root
IdentityFile ~/.ssh/id_rsa
- name: Get docker daemon information via ssh (paramiko) to localhost
docker_host_info:
docker_host: "ssh://root@localhost"
register: output
ignore_errors: true

- name: Make sure we got information
assert:
that:
- 'output.host_info.Name is string'
- 'output.containers is not defined'
- 'output.networks is not defined'
- 'output.volumes is not defined'
- 'output.images is not defined'
- 'output.disk_usage is not defined'
when: output is succeeded or 'Install paramiko package to enable' in output.msg
# For whatever reason, even though paramiko is installed, *sometimes* this error
# shows up. I have no idea why it sometimes works and sometimes not...

- name: Get docker daemon information via ssh (OpenSSH) to localhost
docker_host_info:
docker_host: "ssh://root@localhost"
use_ssh_client: true
register: output
ignore_errors: true

- name: Make sure we got information
assert:
that:
- output is succeeded
- 'output.host_info.Name is string'
- 'output.containers is not defined'
- 'output.networks is not defined'
- 'output.volumes is not defined'
- 'output.images is not defined'
- 'output.disk_usage is not defined'
when: docker_py_version is version('4.4.0', '>=')

- name: Make sure we got information
assert:
that:
- output is failed
- "'use_ssh_client=True requires Docker SDK for Python 4.4.0 or newer' in output.msg"
when: docker_py_version is version('4.4.0', '<')
4 changes: 4 additions & 0 deletions tests/integration/targets/setup_paramiko/meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
dependencies:
- setup_remote_constraints
- setup_openssl # so cryptography is installed
6 changes: 6 additions & 0 deletions tests/integration/targets/setup_paramiko/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
- name: Install paramiko
pip:
name: "paramiko{% if cryptography_version.stdout is version('2.5.0', '<') %}<2.5.0{% endif %}"
extra_args: "-c {{ remote_constraints }}"
become: true

0 comments on commit af3da9e

Please sign in to comment.