Python API Blueprint Other
Clone or download
Shawn Ashlee
Shawn Ashlee Merge pull request #1970 from cyrichardson/updateCredentialsCurlInfo
Update get-credentials.rst to remove outdated screenshot
Latest commit eb2e0bd Mar 23, 2017
Failed to load latest commit information.
abacus-config Add a JSON config for abacus. Sep 12, 2013
api-docs/rst/dev-guide Update get-credentials.rst to remove outdated screenshot and point Mar 22, 2017
autoscale_cloudcafe better comments and function name - thanks @glyph Feb 10, 2016
autoscale_cloudroast rcv3 test group names have "autoscale" Feb 18, 2016
doc Remove all reference to build_config in our docstrings, etc. and stop… Jul 22, 2015
docker moved docker stuff to docker/ dir Dec 7, 2016
otter Merge pull request #1962 from rackerlabs/suspended-group Jan 19, 2017
requirements update mimic includes include create-node feed Sep 27, 2016
schema migration cql to add suspended column Dec 15, 2016
scripts Merge branch 'master' into remove-on-error Dec 20, 2016
twisted/plugins adding twisted plugin for metrics Oct 7, 2014
.dockerignore docker cafe logs on host Dec 20, 2016
.gitignore docker cafe logs on host Dec 20, 2016
.travis.yml coverage after build succeeds Dec 18, 2016 Add link to docs contributor info Jun 14, 2016
LICENSE Bump license year May 15, 2014
Makefile correctly excluding tests/ dir for coverage Sep 2, 2016 travis build badge Dec 18, 2016
apiary.apib Remove all reference to build_config in our docstrings, etc. and stop… Jul 22, 2015
autoscale.polo complete dependencies Nov 22, 2016
cafe_requirements.txt Scale down wait and interval times for mimic - drops failure time in … Mar 26, 2015
config.example.json CLOUD_FEEDS_CAP service is from "terminator" config Jan 19, 2017
dev_requirements.txt update subunit version May 6, 2015
docker-compose.yml Merge branch 'master' into suspended-group Dec 22, 2016
requirements.txt use upstream effect testing functions Jan 5, 2017
setup.cfg Move max-complexity to config file Jan 14, 2015 no need for Nov 27, 2016

Build Status codecov

Rackspace Autoscale

There Otter be an Otter scaling system.

Otter Cups

If you have docker installed then running docker-compose up -d should run otter along with all its dependent services and cafe and trial integration tests against it. Try checking docker-compose logs cafe to see cloudcafe test results and docker-compose logs trial to see trial integration test results.

Talk with us! Join us in: #rackerlabs/otter

Otter Dev Hall of Fame (alphabetical):

  • cyli
  • lvh
  • manisht
  • radix
  • wirehead

Honorary Otters:

  • glyph

Emeritus otters:

  • dreid
  • fsargent
  • oubiwann
  • rockstar

make targets


  • make hooks to set up pre-commit hooks for the project (PLEASE RUN THIS IF DEVELOPING ON THE PROJECT)

Build an environment:

  • make env-precheck makes sure you have enough pre-existing infrastructure to be able to run make env to begin with.
  • make env creates and switches into the Python virtualenv environment. It'll also pip-install development requirements.

Run tests, check code quality:

  • make test runs both unit and integration tests.
  • make unit runs unit tests.
  • make integration runs integration tests.
  • make coverage performs coverage analysis.
  • make lint performs a lint (PEP8, et. al.) check on the source code.
  • make listoutdated returns the packages that are currently installed that have new versions available on PyPI. This is normally run as a part of make lint.
  • make flake8diff looks at the diff introduced by your current branch and lints it. This is normally run as a part of make lint.
  • make flake8full is like flake8diff, except on the entire repository.

Build the documentation:

  • make docs builds all other documentation targets (listed below).
  • make sphinxdocs builds all Sphinx documentation.
  • make docbook builds all user-facing Docbook documentation.


  • make bundle builds a "bundle" appropriate for deployment (Ubuntu only). For Jenkins and Chef use only.
  • make run starts up an instance of the Otter API.

Cleaning up

  • make cleandocs removes all documentation artifacts without removing other artifacts.
  • make clean removes all build-time artifacts, leaving the repository in a distributable state.

Build and migrate Cassandra schemata

Some tools for building Cassandra schemata as CQL files:

  • make schema-setup generates the setup CQL files.
  • make schema-teardown generates the teardown CQL files.
  • make schema generates the CQL files corresponding to setting up and tearing down Otter's Cassandra schema. Equivalent to running make schema-setup schema-teardown manually.

Some tools for applying Cassandra schemata (by default, these are pointed at localhost, because they're typically only used within the development VM):

  • make load-dev-schema will attempt to load the development schema into Cassandra.
  • make migrate-dev-schema will attempt to update the development schema on an existing Cassandra instance.
  • make teardown-dev-schema will attempt to remove a development schema from an existing Cassandra instance.
  • make clear-dev-schema first removes any existing development schema, then re-installs a fresh schema.