..

  Note to patch submitters:

  # ============================= #
  # THIS FILE IS AUTOGENERATED !  #
  # ============================= #

  ** Plugins are found automatically and added to this list **

  This file is created by a periodic proposal job.  You should not
  edit this file.

  You should edit the files data/devstack-plugins-registry.footer
  data/devstack-plugins-registry.header to modify this text.

==========================
 DevStack Plugin Registry
==========================

The following list is an automatically-generated collection of
available DevStack plugins.  This includes, but is not limited to,
official OpenStack projects.
