From fc6bb81efbaada4ff5aa2380d5bd02113f903c28 Mon Sep 17 00:00:00 2001 From: Sven Marnach Date: Thu, 18 Feb 2016 22:31:13 +0100 Subject: [PATCH] Revert "Merge pull request #2772 from edx/ned/merge-dogwood-to-master" This reverts commit adae6cf39c06ff5c4e242668c8dcba2b6c25d179, reversing changes made to 43e2f6f8822ed63cb31d435b6f8cfb42ac346d41. --- playbooks/roles/certs/handlers/main.yml | 23 +++++++++++ playbooks/roles/certs/tasks/deploy.yml | 17 ++++---- playbooks/roles/certs/tasks/main.yml | 7 ++++ playbooks/roles/xqueue/handlers/main.yml | 10 +++++ playbooks/roles/xqueue/tasks/deploy.yml | 27 +++++++----- playbooks/roles/xqueue/tasks/main.yml | 6 +++ util/vagrant/migrate.sh | 52 ++++++------------------ vagrant/release/devstack/Vagrantfile | 12 +++--- vagrant/release/fullstack/Vagrantfile | 14 ++++--- 9 files changed, 100 insertions(+), 68 deletions(-) create mode 100644 playbooks/roles/certs/handlers/main.yml create mode 100644 playbooks/roles/xqueue/handlers/main.yml diff --git a/playbooks/roles/certs/handlers/main.yml b/playbooks/roles/certs/handlers/main.yml new file mode 100644 index 00000000000..816d753fdf1 --- /dev/null +++ b/playbooks/roles/certs/handlers/main.yml @@ -0,0 +1,23 @@ +--- +# +# edX Configuration +# +# github: https://github.com/edx/configuration +# wiki: https://github.com/edx/configuration/wiki +# code style: https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions +# license: https://github.com/edx/configuration/blob/master/LICENSE.TXT +# +# +# +# Handlers for role certs +# +# Overview: +# + +- name: restart certs + supervisorctl: > + name=certs + supervisorctl_path={{ supervisor_ctl }} + config={{ supervisor_cfg }} + state=restarted + when: certs_installed is defined and not disable_edx_services diff --git a/playbooks/roles/certs/tasks/deploy.yml b/playbooks/roles/certs/tasks/deploy.yml index 7cf47b3706a..dc1f189fc49 100644 --- a/playbooks/roles/certs/tasks/deploy.yml +++ b/playbooks/roles/certs/tasks/deploy.yml @@ -5,12 +5,14 @@ src=certs.env.json.j2 dest={{ certs_app_dir }}/env.json sudo_user: "{{ certs_user }}" + notify: restart certs - name: create certificate auth file template: > src=certs.auth.json.j2 dest={{ certs_app_dir }}/auth.json sudo_user: "{{ certs_user }}" + notify: restart certs - name: writing supervisor script for certificates template: > @@ -25,12 +27,14 @@ state=link force=yes mode=0644 + notify: restart certs when: not disable_edx_services - name: create ssh script for git template: > src={{ certs_git_ssh|basename }}.j2 dest={{ certs_git_ssh }} owner={{ certs_user }} mode=750 + notify: restart certs # This key is only needed if you are pulling down a private # certificates repo @@ -39,6 +43,7 @@ content="{{ CERTS_GIT_IDENTITY }}" dest={{ certs_git_identity }} force=yes owner={{ certs_user }} mode=0600 when: CERTS_GIT_IDENTITY != "none" + notify: restart certs - name: checkout certificates repo into {{ certs_code_dir }} git: > @@ -49,6 +54,7 @@ GIT_SSH: "{{ certs_git_ssh }}" register: certs_checkout when: CERTS_GIT_IDENTITY != "none" + notify: restart certs - name: checkout certificates repo into {{ certs_code_dir }} git: > @@ -57,16 +63,19 @@ sudo_user: "{{ certs_user }}" register: certs_checkout when: CERTS_GIT_IDENTITY == "none" + notify: restart certs - name: remove read-only ssh key for the certs repo file: path={{ certs_git_identity }} state=absent when: CERTS_GIT_IDENTITY != "none" + notify: restart certs - name : install python requirements pip: > requirements="{{ certs_requirements_file }}" virtualenv="{{ certs_venv_dir }}" state=present extra_args="-i {{ COMMON_PYPI_MIRROR_URL }}" sudo_user: "{{ certs_user }}" + notify: restart certs # call supervisorctl update. this reloads # the supervisorctl config and restarts @@ -101,10 +110,4 @@ - include: tag_ec2.yml tags=deploy when: COMMON_TAG_EC2_INSTANCE -- name: restart certs - supervisorctl: > - name=certs - supervisorctl_path={{ supervisor_ctl }} - config={{ supervisor_cfg }} - state=restarted - when: not disable_edx_services +- set_fact: certs_installed=true diff --git a/playbooks/roles/certs/tasks/main.yml b/playbooks/roles/certs/tasks/main.yml index 51ad178fd24..d87b2d48ed1 100644 --- a/playbooks/roles/certs/tasks/main.yml +++ b/playbooks/roles/certs/tasks/main.yml @@ -37,6 +37,7 @@ home="{{ certs_app_dir }}" createhome=no shell=/bin/false + notify: restart certs - name: create certs app dirs file: > @@ -44,6 +45,7 @@ state=directory owner="{{ certs_user }}" group="{{ common_web_group }}" + notify: restart certs with_items: - "{{ certs_app_dir }}" # needed for the ansible 1.5 git module @@ -66,12 +68,14 @@ path="{{ certs_gpg_dir }}" state=directory owner="{{ common_web_user }}" mode=0700 + notify: restart certs - name: copy the private gpg signing key copy: > src={{ CERTS_LOCAL_PRIVATE_KEY }} dest={{ certs_app_dir }}/{{ CERTS_LOCAL_PRIVATE_KEY|basename }} owner={{ common_web_user }} mode=0600 + notify: restart certs register: certs_gpg_key - name: copy the pgp trust export @@ -79,17 +83,20 @@ content="{{ CERTS_OWNER_TRUST }}" dest={{ certs_app_dir }}/trust.export owner={{ common_web_user }} mode=0600 + notify: restart certs - name: load the gpg key shell: > /usr/bin/gpg --homedir {{ certs_gpg_dir }} --import {{ certs_app_dir }}/{{ CERTS_LOCAL_PRIVATE_KEY|basename }} sudo_user: "{{ common_web_user }}" when: certs_gpg_key.changed + notify: restart certs - name: import the trust export shell: > /usr/bin/gpg --homedir {{ certs_gpg_dir }} --import-ownertrust {{ certs_app_dir }}/trust.export sudo_user: "{{ common_web_user }}" when: certs_gpg_key.changed + notify: restart certs - include: deploy.yml tags=deploy diff --git a/playbooks/roles/xqueue/handlers/main.yml b/playbooks/roles/xqueue/handlers/main.yml new file mode 100644 index 00000000000..950d97594ad --- /dev/null +++ b/playbooks/roles/xqueue/handlers/main.yml @@ -0,0 +1,10 @@ +- name: restart xqueue + supervisorctl: > + name={{ item }} + supervisorctl_path={{ supervisor_ctl }} + config={{ supervisor_cfg }} + state=restarted + when: xqueue_installed is defined and not disable_edx_services + with_items: + - xqueue + - xqueue_consumer diff --git a/playbooks/roles/xqueue/tasks/deploy.yml b/playbooks/roles/xqueue/tasks/deploy.yml index 8a646d56434..c50cbf6d31c 100644 --- a/playbooks/roles/xqueue/tasks/deploy.yml +++ b/playbooks/roles/xqueue/tasks/deploy.yml @@ -23,6 +23,8 @@ template: > src=xqueue_gunicorn.py.j2 dest={{ xqueue_app_dir }}/xqueue_gunicorn.py sudo_user: "{{ xqueue_user }}" + notify: + - restart xqueue tags: - install - install:configuration @@ -30,6 +32,8 @@ - name: create xqueue application config template: src=xqueue.env.json.j2 dest={{ xqueue_app_dir }}/xqueue.env.json mode=0644 sudo_user: "{{ xqueue_user }}" + notify: + - restart xqueue tags: - install - install:configuration @@ -37,6 +41,8 @@ - name: create xqueue auth file template: src=xqueue.auth.json.j2 dest={{ xqueue_app_dir }}/xqueue.auth.json mode=0644 sudo_user: "{{ xqueue_user }}" + notify: + - restart xqueue tags: - install - install:configuration @@ -48,6 +54,8 @@ accept_hostkey=yes sudo_user: "{{ xqueue_user }}" register: xqueue_checkout + notify: + - restart xqueue tags: - install - install:code @@ -59,6 +67,8 @@ requirements="{{ xqueue_pre_requirements_file }}" virtualenv="{{ xqueue_venv_dir }}" state=present extra_args="-i {{ COMMON_PYPI_MIRROR_URL }} --exists-action w" sudo_user: "{{ xqueue_user }}" + notify: + - restart xqueue tags: - install - install:app-requirements @@ -69,6 +79,8 @@ requirements="{{ xqueue_post_requirements_file }}" virtualenv="{{ xqueue_venv_dir }}" state=present extra_args="-i {{ COMMON_PYPI_MIRROR_URL }} --exists-action w" sudo_user: "{{ xqueue_user }}" + notify: + - restart xqueue tags: - install - install:app-requirements @@ -83,6 +95,8 @@ DB_MIGRATION_USER: "{{ COMMON_MYSQL_MIGRATE_USER }}" DB_MIGRATION_PASS: "{{ COMMON_MYSQL_MIGRATE_PASS }}" when: migrate_db is defined and migrate_db|lower == "yes" and COMMON_MYSQL_MIGRATE_PASS + notify: + - restart xqueue tags: - migrate - migrate:db @@ -91,6 +105,8 @@ shell: > SERVICE_VARIANT=xqueue {{ xqueue_venv_bin }}/django-admin.py update_users --settings=xqueue.aws_settings --pythonpath={{ xqueue_code_dir }} sudo_user: "{{ xqueue_user }}" + notify: + - restart xqueue tags: - manage - manage:app-users @@ -132,13 +148,4 @@ - install - install:app-requirements -- name: restart xqueue - supervisorctl: > - name={{ item }} - supervisorctl_path={{ supervisor_ctl }} - config={{ supervisor_cfg }} - state=restarted - when: not disable_edx_services - with_items: - - xqueue - - xqueue_consumer +- set_fact: xqueue_installed=true diff --git a/playbooks/roles/xqueue/tasks/main.yml b/playbooks/roles/xqueue/tasks/main.yml index 87ebd259039..f836b54e8e8 100644 --- a/playbooks/roles/xqueue/tasks/main.yml +++ b/playbooks/roles/xqueue/tasks/main.yml @@ -12,6 +12,8 @@ home="{{ xqueue_app_dir }}" createhome=no shell=/bin/false + notify: + - restart xqueue tags: - install - install:base @@ -22,6 +24,8 @@ state=directory owner="{{ xqueue_user }}" group="{{ common_web_group }}" + notify: + - restart xqueue with_items: - "{{ xqueue_app_dir }}" - "{{ xqueue_venvs_dir }}" @@ -31,6 +35,8 @@ - name: install a bunch of system packages on which xqueue relies apt: pkg={{','.join(xqueue_debian_pkgs)}} state=present + notify: + - restart xqueue tags: - install - install:system-requirements diff --git a/util/vagrant/migrate.sh b/util/vagrant/migrate.sh index cdadccccc48..6e63dcb2af6 100755 --- a/util/vagrant/migrate.sh +++ b/util/vagrant/migrate.sh @@ -64,8 +64,14 @@ confirm_proceed () { } # Check we are in the right place, and have the info we need. + +if [[ "`whoami`" != "vagrant" ]]; then + echo "Run this from the vagrant account in your Open edX machine." + exit 1 +fi + if [[ ! -d /edx/app/edxapp ]]; then - echo "Run this on your Open edX machine." + echo "Run this from the vagrant account in your Open edX machine." exit 1 fi @@ -84,11 +90,6 @@ if [[ $CONFIGURATION == none ]]; then exit 1 fi -APPUSER=edxapp -if [[ $CONFIGURATION == fullstack ]] ; then - APPUSER=www-data -fi - # Birch details if [[ $TARGET == *birch* && $INTERACTIVE == true ]] ; then @@ -172,22 +173,6 @@ make_config_venv # Dogwood details if [[ $TARGET == *dogwood* ]] ; then - # Run the forum migrations. - cat > migrate-008-context.js <<"EOF" - // from: https://github.com/edx/cs_comments_service/blob/master/scripts/db/migrate-008-context.js - print ("Add the new indexes for the context field"); - db.contents.ensureIndex({ _type: 1, course_id: 1, context: 1, pinned: -1, created_at: -1 }, {background: true}) - db.contents.ensureIndex({ _type: 1, commentable_id: 1, context: 1, pinned: -1, created_at: -1 }, {background: true}) - - print ("Adding context to all comment threads where it does not yet exist\n"); - var bulk = db.contents.initializeUnorderedBulkOp(); - bulk.find( {_type: "CommentThread", context: {$exists: false}} ).update( {$set: {context: "course"}} ); - bulk.execute(); - printjson (db.runCommand({ getLastError: 1, w: "majority", wtimeout: 5000 } )); -EOF - - mongo cs_comments_service migrate-008-context.js - # We are upgrading Python from 2.7.3 to 2.7.10, so remake the venvs. sudo rm -rf /edx/app/*/v*envs/* @@ -209,7 +194,7 @@ EOF make_config_venv # Need to get rid of South from edx-platform, or things won't work. - sudo -u edxapp /edx/bin/pip.edxapp uninstall -y South + sudo -u edxapp /edx/app/edxapp/venvs/edxapp/bin/pip uninstall -y South echo "Upgrading to the beginning of Django 1.8" cd configuration/playbooks/vagrant @@ -226,8 +211,10 @@ EOF echo "Running the Django 1.8 faked migrations" for item in lms cms; do - sudo -u $APPUSER -E /edx/bin/python.edxapp \ - /edx/bin/manage.edxapp $item migrate --settings=aws --noinput --fake-initial + sudo -u edxapp \ + /edx/app/edxapp/venvs/edxapp/bin/python \ + /edx/app/edxapp/edx-platform/manage.py $item migrate \ + --settings=aws --noinput --fake-initial done if [[ $CONFIGURATION == fullstack ]] ; then @@ -239,7 +226,6 @@ EOF fi fi -echo "Updating to final version of code" cd configuration/playbooks echo "edx_platform_version: $TARGET" > vars.yml echo "ora2_version: $TARGET" >> vars.yml @@ -252,20 +238,6 @@ sudo ansible-playbook \ --extra-vars="@vars.yml" \ $SERVER_VARS \ vagrant-$CONFIGURATION.yml -cd ../.. - -if [[ $TARGET == *dogwood* ]] ; then - echo "Running data fixup management commands" - sudo -u $APPUSER -E /edx/bin/python.edxapp \ - /edx/bin/manage.edxapp lms --settings=aws generate_course_overview --all - - sudo -u $APPUSER -E /edx/bin/python.edxapp \ - /edx/bin/manage.edxapp lms --settings=aws post_cohort_membership_fix --commit - - # Run the forums migrations again to catch things made while this script - # was running. - mongo cs_comments_service migrate-008-context.js -fi cd / sudo rm -rf $TEMPDIR diff --git a/vagrant/release/devstack/Vagrantfile b/vagrant/release/devstack/Vagrantfile index c1691da1de4..d5e5bf65e7d 100644 --- a/vagrant/release/devstack/Vagrantfile +++ b/vagrant/release/devstack/Vagrantfile @@ -63,13 +63,15 @@ openedx_releases = { "named-release/dogwood.rc" => { :name => "dogwood-devstack-rc2", :file => "20151221-dogwood-devstack-rc2.box", }, - "named-release/dogwood" => { + "named-release/dogwood.rc2" => { :name => "dogwood-devstack-rc2", :file => "20151221-dogwood-devstack-rc2.box", }, - # Cypress is deprecated and unsupported - # "named-release/cypress" => { - # :name => "cypress-devstack", :file => "cypress-devstack.box", - # }, + "named-release/dogwood.rc3" => { + :name => "dogwood-devstack-rc2", :file => "20151221-dogwood-devstack-rc2.box", + }, + "named-release/cypress" => { + :name => "cypress-devstack", :file => "cypress-devstack.box", + }, # Birch is deprecated and unsupported # "named-release/birch.2" => { # :name => "birch-devstack-2", :file => "birch-2-devstack.box", diff --git a/vagrant/release/fullstack/Vagrantfile b/vagrant/release/fullstack/Vagrantfile index a6caa68ecef..4ee0ba2762f 100644 --- a/vagrant/release/fullstack/Vagrantfile +++ b/vagrant/release/fullstack/Vagrantfile @@ -9,16 +9,18 @@ CPU_COUNT = 2 # to a name and a file path, which are used for retrieving # a Vagrant box from the internet. openedx_releases = { - "named-release/dogwood" => { + "named-release/dogwood.rc" => { :name => "dogwood-fullstack-rc2", :file => "20151221-dogwood-fullstack-rc2.box", }, - "named-release/dogwood.rc" => { + "named-release/dogwood.rc2" => { :name => "dogwood-fullstack-rc2", :file => "20151221-dogwood-fullstack-rc2.box", }, - # Cypress is deprecated and unsupported - # "named-release/cypress" => { - # :name => "cypress-fullstack", :file => "cypress-fullstack.box", - # }, + "named-release/dogwood.rc3" => { + :name => "dogwood-fullstack-rc2", :file => "20151221-dogwood-fullstack-rc2.box", + }, + "named-release/cypress" => { + :name => "cypress-fullstack", :file => "cypress-fullstack.box", + }, # Birch is deprecated and unsupported # "named-release/birch.2" => { # :name => "birch-fullstack-2", :file => "birch-2-fullstack.box",