---
#
# edX Configuration
#
# github:     https://github.com/edx/configuration
# wiki:       https://openedx.atlassian.net/wiki/display/OpenOPS
# code style: https://openedx.atlassian.net/wiki/display/OpenOPS/Ansible+Code+Conventions
# license:    https://github.com/edx/configuration/blob/master/LICENSE.TXT
#
#
#
# Tasks for role gitreload
# 
# Overview: Install gitreload for doing course reload via github Web hooks
# 
#
# Dependencies: supervisor, common
#
# 
# Example playbook:
#
# - hosts: all
#   become: True
#   gather_facts: True
#   vars:
#     COMMON_ENABLE_BASIC_AUTH: True
#   roles:
#     - gitreload
#     - role: nginx
#       nginx_sites:
#         - gitreload
#

# grab edxapp vars without being dependent on its tasks
- include_vars: ../../edxapp/defaults/main.yml
  tags:
    - course_pull
    - deploy

- name: create gitreload user
  user:
    name: "{{ gitreload_user }}"
    home: "{{ gitreload_dir }}"
    createhome: no
    shell: /bin/false

- name: ensure home folder exists
  file:
    path: "{{ gitreload_dir }}"
    state: directory
    owner: "{{ gitreload_user }}"
    group: "{{ gitreload_user }}"

- name: ensure repo dir exists
  file:
    path: "{{ GITRELOAD_REPODIR }}"
    state: directory
    owner: "{{ common_web_user }}"
    group: "{{ common_web_group }}"

- name: grab ssh host keys
  shell: ssh-keyscan {{ item }}
  become_user: "{{ common_web_user }}"
  with_items: "{{ GITRELOAD_HOSTS }}"
  register: gitreload_repo_host_keys

- name: add host keys if needed to known_hosts
  lineinfile:
    create: yes
    dest: ~/.ssh/known_hosts
    line: "{{ item.stdout }}"
  become_user: "{{ common_web_user }}"
  with_items: "{{ gitreload_repo_host_keys.results }}"

- name: create a symlink for venv python
  file:
    src: "{{ gitreload_venv_bin }}/{{ item }}"
    dest: "{{ COMMON_BIN_DIR }}/{{ item }}.gitreload"
    state: "link"
  with_items:
  - python
  - pip

- include: deploy.yml tags=deploy