---
# install packages and generate shared configuration files
- name: install the packages required for ODCS
  package:
    pkg: "{{ item }}"
    state: present
  with_items:
  - python3-psycopg2
  - python3-odcs-common
  - odcs
  tags:
  - odcs

- name: install the latest ODCS packagess
  package:
    pkg: "{{ item }}"
    state: latest
  with_items:
  - python3-odcs-common
  - odcs
  when: odcs_upgrade
  tags:
  - odcs

# install required packages for frontend here, as we may
# need to reload httpd in next task when host is frontend
- name: install the packages required for ODCS frontend
  package:
    pkg: "{{ item }}"
    state: present
  with_items:
  - mod_auth_openidc
  - python3-mod_wsgi
  when: inventory_hostname.startswith('odcs-frontend')
  tags:
  - odcs
  - odcs/frontend

- name: install the packages required for ODCS backend
  package:
    pkg: "{{ item }}"
    state: present
  with_items:
  - koji
  - libmodulemd
  - pdc-client
  when: inventory_hostname.startswith('odcs-backend')
  tags:
  - odcs
  - odcs/backend

# this app config is shared by backend and frontend, but has different
# owner groups on backend and frontend, and notify different handlers,
# we can have vars set for frontend and backend seperately to do that,
# but it looks a little weird to have such special vars in
# inventory/group_vars/odcs-*, also we don't want to repeat the same
# required vars in frontend and backend, so just have 2 tasks in base
# to keep it simple.
- name: generate the ODCS app config for frontend
  template:
    src: etc/odcs/config.py.j2
    dest: /etc/odcs/config.py
    owner: odcs
    group: apache
    mode: 0440
  notify:
  - restart apache
  when: inventory_hostname.startswith('odcs-frontend')
  tags:
  - odcs
  - odcs/frontend

- name: generate the ODCS app config for backend
  template:
    src: etc/odcs/config.py.j2
    dest: /etc/odcs/config.py
    owner: odcs
    group: fedmsg
    mode: 0440
  notify:
  - restart fedmsg-hub
  when: inventory_hostname.startswith('odcs-backend')
  tags:
  - odcs
  - odcs/backend

- name: generate the ODCS raw_config_wrapper config for backend
  template:
    src: etc/odcs/raw_config_wrapper.conf.j2
    dest: /etc/odcs/raw_config_wrapper.conf
    owner: odcs
    group: fedmsg
    mode: 0440
  notify:
  - restart fedmsg-hub-3
  when: inventory_hostname.startswith('odcs-backend')
  tags:
  - odcs
  - odcs/backend

- name: generate the ODCS runroot_koji config for backend
  template:
    src: etc/odcs/runroot_koji.conf.j2
    dest: /etc/odcs/runroot_koji.conf
    owner: odcs
    group: fedmsg
    mode: 0440
  notify:
  - restart fedmsg-hub-3
  when: inventory_hostname.startswith('odcs-backend')
  tags:
  - odcs
  - odcs/backend

- name: Make sure the /etc/fedmsg.d/odcs.py file (provided by rpm) is absent.
  file:
    path: /etc/fedmsg.d/odcs.py
    state: absent
  notify:
  - restart fedmsg-hub-3
  tags:
  - odcs
  - odcs/backend

- name: copy the ODCS pungi config template to backend
  copy:
    src: "{{ roles_path }}/odcs/base/files/pungi.conf"
    dest: /etc/odcs/pungi.conf
    owner: odcs
    group: fedmsg
    mode: 0640
  notify:
  - restart fedmsg-hub-3
  when: inventory_hostname.startswith('odcs-backend')
  tags:
  - odcs
  - odcs/backend
