Developer Guide

The document walks you through installing the necessary packages and environment preparations in order to build the Ubuntu OpenStack Installer.

  • Development and testing is done on Ubuntu and using a release of Trusty or later.

Building the installer

Once sbuild is configured, checkout the source code of the installer:

$ git clone ~/openstack-installer
$ cd ~/openstack-installer
$ make git-sync-requirements

Use the target 'install-dependencies' to install a custom binary package for the build dependencies:

$ make install-dependencies

From here you can build the entire package set by running:

$ make sbuild
# or, if you prefer not to use sbuild:
$ make deb
# or a source only package
$ make deb-src

Once finished your packages will be stored in the top level directory where your OpenStack project is kept.

$ ls ../*.deb

Running the OpenStack installer

Running the installer for testing currently requires installing the packages. (Unit tests can be run without installing the packages, provided the install-dependencies make target has been run.)

After building the packages using either 'make deb' or 'make sbuild', you can install and run with the 'run' target:

$ sudo make run type=single
# or
$ sudo make run type=multi

You can also set the MAAS//HTTP//PROXY env var for the openstack-install command like this:

$ sudo make run type=single proxy=http://myproxy/

If you are running the landscape installer, you will want to use the 'landscape' target:

$ sudo make landscape proxy=http://myproxy/

Running the OpenStack status screen

If you have run the installer and are working on changes to the status screen (in cloudinstall/), you can re-run the status screen with the correct python path using this target:

$ make status

If you are testing the status screen's code for deploying charms, you may need to first start your juju environment over from scratch:

$ juju destroy-environment local
$ juju bootstrap
$ make status

Changing the log level

The openstack-status program logs to ~/.cloud-install/commands.log. The default log level for that log is "DEBUG". Most of the program logs at the DEBUG level, which is the most verbose that is currently defined. If you want a different log level, you can set the UCI_LOGLEVEL environment variable. Your choices are "DEBUG", "INFO", "WARNING", "ERROR", and "CRITICAL".

$ UCI_LOGLEVEL=ERROR openstack-status

Building documentation

Documentation will be built in docs/_build/html, and requires Sphinx to build.

$ cd docs && make html

Running Tests

A unit test suite is in tests/ and is run using Nose and tox. Tox will cover both pep8 and flakes automatically and unit tests do not require a live Juju or MAAS connection.

Run it as follows:

$ make test

OpenStack/Installer/developer-setup (last edited 2015-10-21 13:03:09 by adam-stokes)