MAINTAINERS
===========


Overview
--------

The following is a list of people known to have interests in
particular areas or sub-systems of devstack.

It is a rather general guide intended to help seed the initial
reviewers list of a change.  A +1 on a review from someone identified
as being a maintainer of its affected area is a very positive flag to
the core team for the veracity of the change.

The ``devstack-core`` group can still be added to all reviews.


Format
~~~~~~

The format of the file is the name of the maintainer and their
gerrit-registered email.


Maintainers
-----------

.. contents:: :local:


Ceph
~~~~

* Sebastien Han <sebastien.han@enovance.com>

Cinder
~~~~~~

Fedora/CentOS/RHEL
~~~~~~~~~~~~~~~~~~

* Ian Wienand <iwienand@redhat.com>

Neutron
~~~~~~~

OpenDaylight
~~~~~~~~~~~~

* Kyle Mestery <mestery@mestery.com>

OpenFlow Agent (ofagent)
~~~~~~~~~~~~~~~~~~~~~~~~

* YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* Fumihiko Kakuma <kakuma@valinux.co.jp>

Sahara
~~~~~~

* Sergey Lukjanov <slukjanov@mirantis.com>

Swift
~~~~~

* Chmouel Boudjnah <chmouel@enovance.com>

SUSE
~~~~

* Ralf Haferkamp <rhafer@suse.de>
* Vincent Untz <vuntz@suse.com>

Tempest
~~~~~~~

Trove
~~~~~

* Nikhil Manchanda <SlickNik@gmail.com>
* Michael Basnight <mbasnight@gmail.com>

Xen
~~~
* Bob Ball <bob.ball@citrix.com>

Zaqar (Marconi)
~~~~~~~~~~~~~~~

* Flavio Percoco <flaper87@gmail.com>
* Malini Kamalambal <malini.kamalambal@rackspace.com>

Oracle Linux
~~~~~~~~~~~~
* Wiekus Beukes <wiekus.beukes@oracle.com>
