# Push out any new badge stuff.
#
# Badge artists and badge developers should be pushing stuff to this repo:
#
#   https://pagure.io/fedora-badges.git
#
# This playbook will take any new content from there and push it out onto our
# servers.

- name: get the badges repo happening from the batcave
  hosts: batcave01.iad2.fedoraproject.org
  user: root
  gather_facts: False

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  vars:
   upstream: "https://pagure.io/fedora-badges.git"
   workingdir: /srv/web/infra/badges/
   local_repo: /srv/git/badges

  tasks:
  - name: Make a tmp directory
    tempfile:
      state: directory
      suffix: _badges_tempdir
    register: tmp

  - set_fact:
      tempdir: "{{tmp.path}}"

  - name: clone the local bare repo
    git:
      dest: "{{tempdir}}"
      repo: "{{local_repo}}"
      remote: origin
      update: yes

  - name: add pagure as a second remote
    command: git remote add pagure {{upstream}}
    args:
      chdir: "{{tempdir}}"

  - name: pull down changes from pagure
    command: git pull pagure master 
    args: 
      chdir: "{{tempdir}}"

  - name: push pagure changes back to the lockbox bare repo
    command: git push origin master 
    args:
      chdir: "{{tempdir}}"

  - name: clean up that temporary {{tempdir}} dir
    file: 
      dest: "{{tempdir}}" 
      state: absent

  - name: fix the working dir repo to use the right location
    command: git remote set-url origin {{local_repo}}
    args:
      chdir: "{{workingdir}}"
 
  - name: and pull those commits from the bare repo to the working dir
    command: git pull origin master
    args:
      chdir: "{{workingdir}}"

  handlers:
  - import_tasks: "{{ handlers_path }}/restart_services.yml"

- name: copy new badge art over to the badges web nodes
  hosts: badges_web:badges_web_stg
  user: root
  gather_facts: False

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  roles:
   - badges/frontend

  handlers:
  - import_tasks: "{{ handlers_path }}/restart_services.yml"

- name: copy any new badges rules over to the badges backend and restart it
  hosts: badges_backend:badges_backend_stg
  user: root
  gather_facts: False

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  roles:
   - badges/backend

  handlers:
  - import_tasks: "{{ handlers_path }}/restart_services.yml"

- name: run  /usr/local/bin/update_checkout.sh
  hosts: badges_web

  tasks:
  - command:  /usr/local/bin/update_checkout.sh
