---
# input variables:
# - openshift_service_type
# - component
# - openshift_pkg_version
# - openshift_is_atomic

# When we update package "a-${version}" and a requires b >= ${version} if we
# don't specify the version of b yum will choose the latest version of b
# available and the whole set of dependencies end up at the latest version.
# Since the package module, unlike the yum module, doesn't flatten a list
# of packages into one transaction we need to do that explicitly. The ansible
# core team tells us not to rely on yum module transaction flattening anyway.

# Pre-pull new node rpm, but don't install
- name: download new node packages
  command: "{{ ansible_pkg_mgr }} install -y --downloadonly {{ openshift_node_upgrade_rpm_list | join(' ')}}"
  register: result
  until: result is succeeded
  failed_when:
    - result.stdout is search(".*No package .* available.*") or result is failed
  vars:
    openshift_node_upgrade_rpm_list:
      - "{{ openshift_service_type }}{{ openshift_pkg_version }}"
      - "{{ openshift_service_type }}-hyperkube{{ openshift_pkg_version }}"
      - "{{ openshift_service_type }}-node{{ openshift_pkg_version }}"
      - "{{ openshift_service_type }}-clients{{ openshift_pkg_version }}"
