Add testing and doc sections to docs/dev-quickstart
Add notes to dev/dev-quickstart to demonstrate how to start up and interact with ironic-api and ironic-conductor services locally, in a python virtualenv. Also add some instrutions on building the documentation locally. Change-Id: I01eb7ffb5ebe510cec9e4bc2f6ac0f0cc616493c
This commit is contained in:
parent
943585600d
commit
9d81333fd0
@ -5,7 +5,7 @@ Developer Quick-Start
|
||||
=====================
|
||||
|
||||
This is a quick walkthrough to get you started developing code for Ironic.
|
||||
This assumes you are already familiar with submitting code reviews to
|
||||
This assumes you are already familiar with submitting code reviews to
|
||||
an OpenStack project.
|
||||
|
||||
.. seealso::
|
||||
@ -37,7 +37,10 @@ Setting up a local environment for development can be done with tox::
|
||||
# activate the virtualenv
|
||||
source .tox/venv/bin/activate
|
||||
|
||||
# run testr init
|
||||
# install requirements within the virtualenv
|
||||
pip install -U -r requirements.txt test-requirements.txt
|
||||
|
||||
# initialize testr
|
||||
testr init
|
||||
|
||||
To run the pep8/flake8 syntax and style checks::
|
||||
@ -47,10 +50,110 @@ To run the pep8/flake8 syntax and style checks::
|
||||
|
||||
To run Ironic's unit test suite::
|
||||
|
||||
# run unit tests
|
||||
# run all the unit tests
|
||||
testr run
|
||||
|
||||
When you're done, to leave the venv::
|
||||
# to run specific tests only, specify the file, module or test name, eg:
|
||||
testr run test_conductor
|
||||
|
||||
When you're done::
|
||||
|
||||
# deactivate the virtualenv
|
||||
deactivate
|
||||
|
||||
===============================
|
||||
Exercising the Services Locally
|
||||
===============================
|
||||
|
||||
If you would like to exercise the Ironic services in isolation within a local
|
||||
virtual environment, you can do this without starting any other OpenStack
|
||||
services. For example, this is useful for rapidly prototyping and debugging
|
||||
interactions over the RPC channel, testing database migrations, and so forth.
|
||||
|
||||
First, install prerequisites::
|
||||
|
||||
# install rabbit message broker
|
||||
# Ubuntu/Debian:
|
||||
sudo apt-get install rabbitmq-server
|
||||
|
||||
# Fedora/RHEL:
|
||||
sudo yum install rabbitmq-server
|
||||
|
||||
# install ironic CLI
|
||||
sudo pip install python-ironicclient
|
||||
|
||||
Then, activate the virtual environment created in the previous section, and run
|
||||
everything else within that::
|
||||
|
||||
# enter the ironic directory
|
||||
cd <your source dir>
|
||||
cd ironic
|
||||
|
||||
# activate the virtualenv
|
||||
source .tox/venv/bin/activate
|
||||
|
||||
# install ironic within the virtualenv
|
||||
python setup.py develop
|
||||
|
||||
# initialize the ironic database; this defaults to storing data in
|
||||
# ./ironic/openstack/common/db/ironic.sqlite
|
||||
ironic-dbsync
|
||||
|
||||
# copy sample config and modify it as necessary
|
||||
cp etc/ironic/ironic.conf.sample etc/ironic/ironic.conf.local
|
||||
cat >> etc/ironic/ironic.conf.local <<EOL
|
||||
host = test-host
|
||||
auth_strategy = noauth
|
||||
EOL
|
||||
|
||||
# start services and observe their output
|
||||
# for each service, open a separate window and active the virtualenv in it
|
||||
ironic-api -v -d --config-file etc/ironic/ironic.conf.local
|
||||
ironic-conductor -v -d --config-file etc/ironic/ironic.conf.local
|
||||
|
||||
# export ENV vars so ironic client connects to the local services
|
||||
export OS_AUTH_TOKEN=fake-token
|
||||
export IRONIC_URL=http://localhost:6385/
|
||||
|
||||
# you should now be able to query the Ironic API
|
||||
# and see a list of supported drivers on "test-host"
|
||||
ironic driver-list
|
||||
|
||||
# enroll nodes with the "fake" driver, eg:
|
||||
ironic node-create -d fake
|
||||
|
||||
# if you make some code changes and want to test their effects,
|
||||
# install again with "python setup.py develop", stop the services
|
||||
# with Ctrl-C, and restart them.
|
||||
|
||||
================================
|
||||
Building developer documentation
|
||||
================================
|
||||
|
||||
If you would like to build the documentation locally, eg. to test your
|
||||
documentation changes before uploading them for review, you should install and
|
||||
configure Apache to serve the output. Below are some basic instructions. This
|
||||
guide does not cover the many ways one can configure Apache, nor does it
|
||||
address security issues with running a web server on your laptop.
|
||||
(In other words, you might want to do this in a VM.)
|
||||
|
||||
::
|
||||
|
||||
# Install Apache on Ubuntu/Debian
|
||||
sudo apt-get install apache2
|
||||
|
||||
# Install Apache on Fedora/RHEL
|
||||
sudo yum install httpd
|
||||
sudo systemctl start httpd
|
||||
|
||||
# Add symlink to build output. For this example, let's assume your
|
||||
# Apache DocumentRoot is /var/www and ironic source is at /opt/stack/ironic
|
||||
cd /var/www
|
||||
sudo ln -s /opt/stack/ironic/doc/build/html ironic
|
||||
cd /opt/stack/ironic
|
||||
|
||||
# build the documentation
|
||||
source .tox/venv/bin/activate
|
||||
python setup.py build_sphinx
|
||||
|
||||
# open a web browser pointed to http://localhost/ironic/index.html
|
||||
|
Loading…
Reference in New Issue
Block a user