Commit e224d111 by Brian Beggs

GoCD migrations automation for edxapp

parent 5eb17c87
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
# Other variables: # Other variables:
# - unapplied_migrations_output - the filename where the unapplied migration YAML output is stored # - unapplied_migrations_output - the filename where the unapplied migration YAML output is stored
# - migration_output - the filename where the migration output is saved # - migration_output - the filename where the migration output is saved
# - SUB_APPLICATION_NAME - used for migrations in edxapp {lms|cms}, must be specified
# when APPLICATION_NAME is edxapp
# - EDX_PLATFORM_SETTINGS - The settings to use for the edx platform {aws|devstack} DEFAULT: aws
# #
# Example command line to run this playbook: # Example command line to run this playbook:
# ansible-playbook -vvvv -i "localhost," -c local \ # ansible-playbook -vvvv -i "localhost," -c local \
...@@ -28,12 +31,16 @@ ...@@ -28,12 +31,16 @@
# #
- hosts: all - hosts: all
vars: vars:
unapplied_migrations_output: unapplied_migrations.yml unapplied_migrations_output: unapplied_migrations.yml
migration_output: migration_output.yml migration_output: migration_output.yml
HIPCHAT_URL: https://api.hipchat.com/v2/ HIPCHAT_URL: https://api.hipchat.com/v2/
COMMAND_PREFIX: ". {{ APPLICATION_PATH }}/{{ APPLICATION_NAME }}_env; DB_MIGRATION_USER={{ DB_MIGRATION_USER }} DB_MIGRATION_PASS={{ DB_MIGRATION_PASS }} /edx/bin/python.{{ APPLICATION_NAME }} /edx/bin/manage.{{ APPLICATION_NAME }} " EDX_PLATFORM_SETTINGS: "aws"
COMMAND_PREFIX: " . {{ APPLICATION_PATH }}/{{ APPLICATION_NAME }}_env; DB_MIGRATION_USER={{ DB_MIGRATION_USER }} DB_MIGRATION_PASS={{ DB_MIGRATION_PASS }} /edx/bin/python.{{ APPLICATION_NAME }} /edx/bin/manage.{{ APPLICATION_NAME }}"
vars_files:
- roles/edxapp/defaults/main.yml
gather_facts: False gather_facts: False
tasks: tasks:
...@@ -45,10 +52,24 @@ ...@@ -45,10 +52,24 @@
- name: generate list of unapplied migrations - name: generate list of unapplied migrations
shell: '{{ COMMAND_PREFIX }} show_unapplied_migrations --output_file "{{ temp_output_dir.stdout }}/{{ unapplied_migrations_output }}"' shell: '{{ COMMAND_PREFIX }} show_unapplied_migrations --output_file "{{ temp_output_dir.stdout }}/{{ unapplied_migrations_output }}"'
become_user: "{{ APPLICATION_USER }}" become_user: "{{ APPLICATION_USER }}"
when: APPLICATION_NAME != "edxapp"
- name: generate list of edxapp unapplied migrations
shell: '{{ COMMAND_PREFIX }} {{ SUB_APPLICATION_NAME }} show_unapplied_migrations --database "{{ item }}" --output_file "{{ temp_output_dir.stdout }}/{{ unapplied_migrations_output }}" --settings "{{ EDX_PLATFORM_SETTINGS }}"'
become_user: "{{ APPLICATION_USER }}"
when: APPLICATION_NAME == "edxapp" and item != "read_replica"
with_items: edxapp_databases.keys()
- name: migrate to apply any unapplied migrations - name: migrate to apply any unapplied migrations
shell: '{{ COMMAND_PREFIX }} run_migrations "{{ temp_output_dir.stdout }}/{{ unapplied_migrations_output }}" --output_file "{{ temp_output_dir.stdout }}/{{ migration_output }}"' shell: '{{ COMMAND_PREFIX }} run_migrations "{{ temp_output_dir.stdout }}/{{ unapplied_migrations_output }}" --output_file "{{ temp_output_dir.stdout }}/{{ migration_output }}"'
become_user: "{{ APPLICATION_USER }}" become_user: "{{ APPLICATION_USER }}"
when: APPLICATION_NAME != "edxapp"
- name: migrate to apply any edxapp unapplied migrations
shell: '{{ COMMAND_PREFIX }} {{ SUB_APPLICATION_NAME }} run_migrations "{{ temp_output_dir.stdout }}/{{ unapplied_migrations_output }}" --database "{{ item }}" --settings "{{ EDX_PLATFORM_SETTINGS }}" --output_file "{{ temp_output_dir.stdout }}/{{ migration_output }}"'
become_user: "{{ APPLICATION_USER }}"
when: APPLICATION_NAME == "edxapp" and item != "read_replica"
with_items: edxapp_databases.keys()
- name: Transfer artifacts to the proper place. - name: Transfer artifacts to the proper place.
fetch: fetch:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment