---
# TODO: Not available in ansible-base
# - python_requirements_info:
#     dependencies:
#       - openshift==0.6.0
#       - kubernetes==6.0.0

# append_hash
- name: use append_hash with ConfigMap
  k8s:
    definition:
      metadata:
        name: config-map-test
        namespace: "{{ playbook_namespace }}"
      apiVersion: v1
      kind: ConfigMap
      data:
        hello: world
    append_hash: yes
  ignore_errors: yes
  register: k8s_append_hash

- name: assert that append_hash fails gracefully
  assert:
    that:
      - k8s_append_hash is failed
      - "'Failed to import the required Python library (openshift >= 0.7.2)' in k8s_append_hash.msg"
      - "'. This is required for append_hash.' in k8s_append_hash.msg"

# validate
- name: attempt to use validate with older openshift
  k8s:
    definition:
      metadata:
        name: config-map-test
        namespace: "{{ playbook_namespace }}"
      apiVersion: v1
      kind: ConfigMap
      data:
        hello: world
    validate:
      fail_on_error: yes
  ignore_errors: yes
  register: k8s_validate

- name: assert that validate fails gracefully
  assert:
    that:
      - k8s_validate is failed
      - "k8s_validate.msg == 'openshift >= 0.8.0 is required for validate'"

# apply
- name: attempt to use apply with older openshift
  k8s:
    definition:
      metadata:
        name: config-map-test
        namespace: "{{ playbook_namespace }}"
      apiVersion: v1
      kind: ConfigMap
      data:
        hello: world
    apply: yes
  ignore_errors: yes
  register: k8s_apply

- name: assert that apply fails gracefully
  assert:
    that:
      - k8s_apply is failed
      - "k8s_apply.msg.startswith('Failed to import the required Python library (openshift >= 0.9.2)')"
