Skip to content

Updating Galaxy Test

kxk302 edited this page Jul 13, 2020 · 27 revisions

Before you begin

See Getting Set Up At TACC. Make sure you meet the requirements.

Branch

The branch that Galaxy is running is configured in usegalaxy-playbook/env/test/group_vars/all/all.yml.

Client Build

As of 18.09, the client always needs to be built regardless of branch. This is done by Ansible. If you need to update the client without updating Galaxy itself, you can do so with ansible-env test client. Note that client build is done as part of the update procedure, described below.

Update Procedure

I've been unsuccessful in getting Ansible to properly update the galaxy_commit_id variable in the middle of a playbook run. As a result, the Galaxy clone on Pulsar servers would be updated to the previous version of Galaxy (the version in env/test/files/galaxy/galaxy_version.yml at the time of first running ansible-env test update) and the commit hash in welcome.html was also being set to the previous version. As a temporary solution, you can run these three processes separately, as shown in the instructions below.

Note this does not update configurations, see changing configuration in the sidebar for info on that.

user@local$ pass psc/xcgalaxy/ssh/private | ssh-add -
user@galaxy04$ ssh -A galaxy04.tacc.utexas.edu
user@galaxy04$ . ./ansible/bin/activate
user@galaxy04$ cd usegalaxy-playbook
user@galaxy04$ git pull && git submodule update
user@galaxy04$ ansible-galaxy role install -r requirements.yml   # use --force if role versions have changed
user@galaxy04$ make LIMIT='!pulsargalaxyservers' test-update
user@galaxy04$ make LIMIT=pulsargalaxyservers test-update
user@galaxy04$ make test-static
user@galaxy04$ git diff     # verify that none of the mutable configs pulled to the playbook are mangled
user@galaxy04$ git add -- .
user@galaxy04$ git commit -m 'Update Test'
user@galaxy04$ git push

To abort a transaction (Updating Galaxy, Installing Tools, etc.):

user@galaxy04$ ssh [email protected] (from your laptop)
user@galaxy04$ cvmfs_server abort test.galaxyproject.org (or Main or Reference Data repos)

To view Galaxy logs to see if it has re-started:

user@galaxy04$ ssh [email protected]
user@galaxy04$ supervisorctl status (to see which Test Galaxy node is running)
user@galaxy04$ tail -f /srv/galaxy/test/log/zergling0.log (or zergling1)

Bugs

As of 2019-04-09, Test runs from Python 3.6 installed via the tool depenency Conda in the env _galaxy_. However, this has been done without a virtualenv as described in the 19.01 docs. Conda's Python has a few dependencies, one of which is certifi, also one of Galaxy's dependencies. When Galaxy's pinned version of certifi changes, installing the new version with pip (as performed by Ansible) will fail. We need a proper solution for this, but in the meantime, the solution is to update certifi prior to updating Galaxy with e.g.:

$ /cvmfs/test.galaxyproject.org/deps/_conda/bin/conda install -n _galaxy_ certifi=YYYY.MM.DD

If the ansible-galaxy role install -r requirements.yml step does nothing, returns cleanly, but subsequent steps indicate missing playbooks, then you probably have too old a version of ansible-galaxy. Make sure you update to 2.9+