Horizon dashboard to diagnose OpenStack networking issues.
Python HTML CSS JavaScript Shell
Switch branches/tags
Nothing to show
Clone or download
electrocucaracha Add Devstack commands
Including some linux commands to setup this project in a Devstack
deployment.

Change-Id: I809848fa93f7145f58fdac08f8f6715eb7ce4076
Latest commit b4d9638 May 4, 2017
Permalink
Failed to load latest commit information.
doc/source Initial commit with cookiecutter project template Aug 1, 2016
etc/don Adding DON changes to the repo Aug 1, 2016
images Added DON schematic to README Aug 7, 2016
openstack_dashboard Libvirt instance parser Nov 18, 2016
releasenotes Enable release notes translation Oct 6, 2016
static/don Adding DON changes to the repo Aug 1, 2016
.coveragerc Initial commit with cookiecutter project template Aug 1, 2016
.gitignore Initial commit with cookiecutter project template Aug 1, 2016
.gitreview Added .gitreview Jul 27, 2016
.mailmap Initial commit with cookiecutter project template Aug 1, 2016
.testr.conf Initial commit with cookiecutter project template Aug 1, 2016
CONTRIBUTING.rst Initial commit with cookiecutter project template Aug 1, 2016
HACKING.rst Initial commit with cookiecutter project template Aug 1, 2016
LICENSE Initial commit with cookiecutter project template Aug 1, 2016
MANIFEST.in Initial commit with cookiecutter project template Aug 1, 2016
README.md Add Devstack commands May 4, 2017
babel.cfg Initial commit with cookiecutter project template Aug 1, 2016
don_playbook.yaml Added ansible playbook and updated README Aug 2, 2016
requirements.txt Adding DON changes to the repo Aug 1, 2016
setup.cfg Adding README file Aug 1, 2016
setup.py Initial commit with cookiecutter project template Aug 1, 2016
test-requirements.txt Add test for ovs collector module and modify collector Oct 8, 2016
tox.ini Cleanup tox.ini: Remove obsolete constraints Aug 26, 2016

README.md

DON: Diagnosing OpenStack Networking

An OpenStack Horizon dashboard to diagnose OpenStack networking issues.

Overview

[Presented in the OpenStack Liberty Summit, Vancouver, May, 2015] (https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/don-diagnosing-ovs-in-neutron "DON Presentation at OpenStack Liberty Summit, Vancouver, May 2015").

A lot has changed since Vancouver! Support for multi-node OpenStack installations and complete integrated with Horizon, Liberty release are among the things to look forward to.

Neutron provides Networking-as-a-service in the OpenStack ecosystem. Networking functionalities are provided by plugins that implement well-defined Neutron APIs. Among many, the Open vSwitch plugin (OVS) is possibly the most widely used. Any practical OpenStack installation has complicated networking configuration and verifying it manually is time consuming and error prone. DON, written primarily in Python, and available as a dashboard in OpenStack Horizon, Libery release, is a network analysis and diagnostic system and provides a completely automated service for verifying and diagnosing the networking functionality provided by OVS. This service verifies (or points out deviations) that the user configuration is indeed reflected in the underlying infrastructure and presents the results in an intuitive graphical display.

Feature Lists:

  1. Visualize networking internals
  2. Perform OVS and Ping tests between all pairs of VMs
  3. Perform Ping tracing between any two VMs
  4. Allows storing collected data so that it can be retrieved later and displayed

As an example, given the following Neutron network topology: Neutron: Network Topology

DON generates the following view of the networking internals, DON: Internal View

does OVS tests and ping tests, DON: Analysis

and also allows the user to do ping tracing DON: Ping Tracer

DON Schematic

DON first collects the output of several commands, parses the output, and creates a JSON database. This database is then used by the analyzer module, the visualizer module, and the test module. DON Schematic

How to Run:

Prerequisites:

  • Django version must be 1.7 or later. However, since OpenStack Horizon uses Django, there is no need to separately install Django.

  • The Graphviz dot utility. This is used for drawing the visualization.

Steps for DevStack:

  1. You must have a devstack setup running on a single VM.
  2. Download and source the project specific rc file. .. code-block:: shell $ git clone https://github.com/openstack/python-don.git
  3. Copy openstack_dashboard/, static/ directories from DON source to Horizon directory.(/opt/stack/horizon/) .. code-block:: shell $ cp -R python-don/openstack_dashboard/don /opt/stack/horizon/openstack_dashboard/
  4. Copy etc/don/ from DON source to /etc .. code-block:: shell

    mkdir /etc/don

    chown stack:root /etc/don

    cp etc/don/don.conf /etc/don/

    chown -R stack:stack /etc/don/don.conf

  5. Edit /etc/don/don.conf and change deployment_type=devstack under [DEFAULT] section. .. code-block:: shell

    sed -i "s/deployment_type=multinode/deployment_type=devstack/" /etc/don/don.conf

  6. To allow DON to do Ping tests between all pairs of VMs, configure VM credentials manually into /opt/stack/horizon/openstack_dashboard/don/ovs/credentials.yaml
  7. Compress django javascript libraries .. code-block:: shell $ DJANGO_SETTINGS_MODULE=openstack_dashboard.settings django-admin compress --force
  8. Restart Horizon by executing sudo service apache2 restart

Steps for Multinode Openstack:

  1. You must have Ansible (version 2.0 or later) installed in execution server
  2. Clone DON source to execution server
  3. Open shell prompt and execute the below command from DON directory
  4. ansible-playbook don_playbook.yaml -i <inventory file path> --ask-pass