Setting Up a Development Environment ==================================== This page describes how to point a local running Savanna instance to a Devstack deployed in a VM. You should be able to debug and test your changes without having to deploy. Setup VM with DevStack ---------------------- .. toctree:: :maxdepth: 1 devstack Setup Local Environment ----------------------- Now we are going to setup development environment for Savanna on your OS. 1. Install prerequisites On OS X Systems: .. sourcecode:: console # we actually need pip, which is part of python package $ brew install python $ pip install virtualenv tox On Ubuntu: .. sourcecode:: console $ sudo apt-get install git-core python-dev python-virtualenv $ sudo pip install tox On Fedora-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux): .. sourcecode:: console $ sudo yum install git-core python-devel python-virtualenv $ sudo pip install tox 2. Grab the code from GitHub: .. sourcecode:: console $ git clone git://github.com/openstack/savanna.git $ cd savanna 3. Prepare virtual environment: .. sourcecode:: console $ tools/install_venv 4. Create config file from default template: .. sourcecode:: console $ cp ./etc/savanna/savanna.conf.sample ./etc/savanna/savanna.conf 5. Look through the savanna.conf and change parameters which default values do not suite you. Set ``os_auth_host`` to the address of your VM with DevStack. If you are using Neutron instead of Nova Network add ``use_neutron = True`` to config. .. note:: Config file can be specified for ``savanna-api`` command using ``--config-file`` flag. 6. To start Savanna call: .. sourcecode:: console $ tox -evenv -- savanna-api --config-file etc/savanna/savanna.conf -d Setup local OpenStack dashboard with Savanna plugin --------------------------------------------------- .. toctree:: :maxdepth: 1 ../horizon/dev.environment.guide Tips and tricks for dev environment ----------------------------------- 1. Pip speedup Add the following lines to ~/.pip/pip.conf .. sourcecode:: cfg [global] download-cache = /home//.pip/cache index-url = Note! The ``~/.pip/cache`` folder should be created. 2. Git hook for fast checks Just add the following lines to .git/hooks/pre-commit and do chmod +x for it. .. sourcecode:: console #!/bin/sh # Run fast checks (PEP8 style check and PyFlakes fast static analysis) tools/run_fast_checks You can added the same check for pre-push, for example, run_tests and run_pylint. 3. Running static analysis (PyLint) Just run the following command .. sourcecode:: console tools/run_pylint