---
- name: Include OS-specific variables
  include_vars: '{{ ansible_os_family }}.yml'
  when: not ansible_os_family == "Darwin"

- name: Install OpenSSL
  become: True
  package:
    name: '{{ openssl_package_name }}'
  when: not ansible_os_family == 'Darwin'

- name: Install pyOpenSSL (Python 3)
  become: True
  package:
    name: '{{ pyopenssl_package_name_python3 }}'
  when: not ansible_os_family == 'Darwin' and ansible_python_version is version('3.0', '>=')

- name: Install pyOpenSSL (Python 2)
  become: True
  package:
    name: '{{ pyopenssl_package_name }}'
  when: not ansible_os_family == 'Darwin' and ansible_python_version is version('3.0', '<')

- name: Install pyOpenSSL (Darwin)
  become: True
  pip:
    name:
      - pyOpenSSL==19.1.0
      # dependencies for pyOpenSSL
      - cffi==1.14.2
      - cryptography==3.1
      - enum34==1.1.10
      - ipaddress==1.0.23
      - pycparser==2.20
      - six==1.15.0
  when: ansible_os_family == 'Darwin'

- name: register pyOpenSSL version
  command: "{{ ansible_python.executable }} -c 'import OpenSSL; print(OpenSSL.__version__)'"
  register: pyopenssl_version

- name: register openssl version
  shell: "openssl version | cut -d' ' -f2"
  register: openssl_version

- name: register cryptography version
  command: "{{ ansible_python.executable }} -c 'import cryptography; print(cryptography.__version__)'"
  register: cryptography_version
