How to qa turnip API changes

qa is usually performed on


  • You need access to launchpad-bastion-ps5.internal

  • Your user needs to be able to sudo into stg-launchpad-git

  • You need to have lp-shell installed in your development environment

Access to above host and the sudo permission are granted by IS.

lp-shell can be installed via

sudo apt install lptools

Example qa for querying the commits endpoint

  • Pick a project on, e.g.

  • From above project, pick one git repository, and get its repo id via

    $ lp-shell qastaging devel
    >>> lp.git_repositories.getByPath(path='~canonical-launchpad-branches/turnip/+git/turnip').id

    This id will be used for building the query, e.g. for querying the commit API (/repo/<id>/commits>).

    When you want to work with a repository, please pay attention to the special git URLs, i.e. the paddev part of them:

    git+ssh:// and

  • Turn on company VPN

  • Log into the bastion host

    $ ssh launchpad-bastion-ps5.internal
  • Switch to the service user

    ubuntu@juju-a7beac-stg-launchpad-git-7:~$ sudo -iu stg-launchpad-git
  • Get an overview of the available staging servers via Juju

    $ stg-launchpad-git@launchpad-bastion-ps5:~$ juju status
    turnip-api ...
    turnip-celery ...
  • Log into one of the API servers

    stg-launchpad-git@launchpad-bastion-ps5:~$ juju ssh turnip-api/0
  • Perform the query

    $ curl \
    -H "Content-Type: application/json" \
    -d '{"commits": ["180ad564a7297ee61fbdfe70fdf53d95febd1e09"], "filter_paths": ["config.yaml"]}' \
    $ <results>
  • <optional> You can inspect the turnip logs in /srv/turnip/logs/.

Further steps

Once the changes are verified, you can mark the corresponding commit on as deployable.

And finally, the changes can be deployed!