* Add content about how to install Zun with devstack plugin * Move the content about how to manually add Zun to devstack to a separated document. Change-Id: I5737c18fa9b26e43936aa8959e48e5c14d06ef3c
4.2 KiB
Developer Quick-Start
This is a quick walkthrough to get you started developing code for Zun. This assumes you are already familiar with submitting code reviews to an OpenStack project.
Setup Dev Environment
Install OS-specific prerequisites:
# Ubuntu/Debian:
sudo apt-get update
sudo apt-get install -y libmysqlclient-dev build-essential python-dev \
python3.4-dev git
Install pip:
curl -s https://bootstrap.pypa.io/get-pip.py | sudo python
Install common prerequisites:
sudo pip install virtualenv flake8 tox testrepository git-review
You may need to explicitly upgrade virtualenv if you've installed the one from your OS distribution and it is too old (tox will complain). You can upgrade it individually, if you need to:
sudo pip install -U virtualenv
Zun source code should be pulled directly from git:
# from your home or source directory
cd ~
git clone https://git.openstack.org/openstack/zun
cd zun
All unit tests should be run using tox. To run Zun's entire test suite:
# run all tests (unit and pep8)
tox
To run a specific test, use a positional argument for the unit tests:
# run a specific test for Python 2.7
tox -epy27 -- test_conductor
You may pass options to the test programs using positional arguments:
# run all the Python 2.7 unit tests (in parallel!)
tox -epy27 -- --parallel
To run only the pep8/flake8 syntax and style checks:
tox -epep8
Exercising the Services Using Devstack
This session has only been tested on Ubuntu 14.04 (Trusty). We recommend users to select one of it if it is possible.
Clone devstack:
# Create a root directory for devstack if needed
sudo mkdir -p /opt/stack
sudo chown $USER /opt/stack
git clone https://git.openstack.org/openstack-dev/devstack /opt/stack/devstack
We will run devstack with minimal local.conf settings required to enable required OpenStack services:
cat > /opt/stack/devstack/local.conf << END
[[local|localrc]]
HOST_IP=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_TOKEN=password
SERVICE_PASSWORD=password
ADMIN_PASSWORD=password
enable_plugin zun https://git.openstack.org/openstack/zun
END
More devstack configuration information can be found at http://docs.openstack.org/developer/devstack/configuration.html
More neutron configuration information can be found at http://docs.openstack.org/developer/devstack/guides/neutron.html
Run devstack:
cd /opt/stack/devstack
./stack.sh
Prepare your session to be able to use the various openstack clients including nova, neutron, and glance. Create a new shell, and source the devstack openrc script:
source /opt/stack/devstack/openrc admin admin
Using the service
We will create a container that pings the address 8.8.8.8 four times:
zun create --name test --image cirros --command "ping -c 4 8.8.8.8"
zun start test
You should see a similar output to:
zun list
+--------------------------------------+------+---------+--------+-------------------+--------+
| uuid | name | status | image | command | memory |
+--------------------------------------+------+---------+--------+-------------------+--------+
| 010fde12-bcc4-4857-94e3-e3f0e301fc7f | test | Stopped | cirros | ping -c 4 8.8.8.8 | None |
+--------------------------------------+------+---------+--------+-------------------+--------+
zun logs test
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=40 time=25.513 ms
64 bytes from 8.8.8.8: seq=1 ttl=40 time=25.348 ms
64 bytes from 8.8.8.8: seq=2 ttl=40 time=25.226 ms
64 bytes from 8.8.8.8: seq=3 ttl=40 time=25.275 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 25.226/25.340/25.513 ms
Delete the container:
zun delete test