# Deploy a specific version of edx-ora2 and re-run migrations
# edx-ora2 is already included in the requirements for edx-platform,
# but we need to override that version when deploying to
# the continuous integration server for testing ora2 changes.

- name: Update edx-ora2
  hosts: all
  become: True
  gather_facts: True
  vars:
    - env_path: /edx/app/edxapp/edxapp_env
    - edxapp_venv_dir: "/edx/app/edxapp/venvs/edxapp"
    - edxapp_code_dir: "/edx/app/edxapp/edx-platform"
    - edxapp_deploy_path: "{{ edxapp_venv_dir }}/bin:{{ edxapp_code_dir }}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    - edxapp_user: "edxapp"
    - edxapp_mysql_user: "migrate"
    - edxapp_mysql_password: "password"
    - supervisorctl_path: "/edx/bin/supervisorctl"
    - ora2_version: "master"
    - ora2_pip_req: "git+https://github.com/edx/edx-ora2.git@{{ ora2_version }}#egg=edx-ora2"

  tasks:
    - name: install edx-ora2
      shell: >
        {{ edxapp_venv_dir }}/bin/pip install -e {{ ora2_pip_req }}
        chdir={{ edxapp_code_dir }}
      environment:
        PATH: "{{ edxapp_deploy_path }}"
      become_user: "{{ edxapp_user }}"
      tags:
        - deploy

    - name: migrate
      shell: >
        . {{env_path}} && {{ edxapp_venv_dir }}/bin/python manage.py lms migrate --settings=production --noinput
        chdir={{ edxapp_code_dir }}
      environment:
        DB_MIGRATION_USER: "{{ edxapp_mysql_user }}"
        DB_MIGRATION_PASS: "{{ edxapp_mysql_password }}"
      tags:
        - deploy

    - name: restart lms
      shell: "{{ supervisorctl_path }} restart lms"

    - name: restart studio
      shell: "{{ supervisorctl_path }} restart cms"

    - name: restart workers
      shell: "{{ supervisorctl_path }} restart edxapp_worker:"
