Merge "Remove driver certs directory"
diff --git a/doc/source/plugin-registry.rst b/doc/source/plugin-registry.rst
index b467123..999350f 100644
--- a/doc/source/plugin-registry.rst
+++ b/doc/source/plugin-registry.rst
@@ -19,182 +19,105 @@
namespace, which includes but is not limited to official OpenStack
projects.
-+----------------------------+-------------------------------------------------------------------------+
-|Plugin Name |URL |
-+----------------------------+-------------------------------------------------------------------------+
-|aodh |git://git.openstack.org/openstack/aodh |
-+----------------------------+-------------------------------------------------------------------------+
-|app-catalog-ui |git://git.openstack.org/openstack/app-catalog-ui |
-+----------------------------+-------------------------------------------------------------------------+
-|astara |git://git.openstack.org/openstack/astara |
-+----------------------------+-------------------------------------------------------------------------+
-|barbican |git://git.openstack.org/openstack/barbican |
-+----------------------------+-------------------------------------------------------------------------+
-|blazar |git://git.openstack.org/openstack/blazar |
-+----------------------------+-------------------------------------------------------------------------+
-|broadview-collector |git://git.openstack.org/openstack/broadview-collector |
-+----------------------------+-------------------------------------------------------------------------+
-|ceilometer |git://git.openstack.org/openstack/ceilometer |
-+----------------------------+-------------------------------------------------------------------------+
-|ceilometer-powervm |git://git.openstack.org/openstack/ceilometer-powervm |
-+----------------------------+-------------------------------------------------------------------------+
-|cerberus |git://git.openstack.org/openstack/cerberus |
-+----------------------------+-------------------------------------------------------------------------+
-|cloudkitty |git://git.openstack.org/openstack/cloudkitty |
-+----------------------------+-------------------------------------------------------------------------+
-|collectd-ceilometer-plugin |git://git.openstack.org/openstack/collectd-ceilometer-plugin |
-+----------------------------+-------------------------------------------------------------------------+
-|congress |git://git.openstack.org/openstack/congress |
-+----------------------------+-------------------------------------------------------------------------+
-|cue |git://git.openstack.org/openstack/cue |
-+----------------------------+-------------------------------------------------------------------------+
-|designate |git://git.openstack.org/openstack/designate |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-amqp1 |git://git.openstack.org/openstack/devstack-plugin-amqp1 |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-bdd |git://git.openstack.org/openstack/devstack-plugin-bdd |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-ceph |git://git.openstack.org/openstack/devstack-plugin-ceph |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-glusterfs |git://git.openstack.org/openstack/devstack-plugin-glusterfs |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-hdfs |git://git.openstack.org/openstack/devstack-plugin-hdfs |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-kafka |git://git.openstack.org/openstack/devstack-plugin-kafka |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-pika |git://git.openstack.org/openstack/devstack-plugin-pika |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-sheepdog |git://git.openstack.org/openstack/devstack-plugin-sheepdog |
-+----------------------------+-------------------------------------------------------------------------+
-|devstack-plugin-zmq |git://git.openstack.org/openstack/devstack-plugin-zmq |
-+----------------------------+-------------------------------------------------------------------------+
-|dragonflow |git://git.openstack.org/openstack/dragonflow |
-+----------------------------+-------------------------------------------------------------------------+
-|drbd-devstack |git://git.openstack.org/openstack/drbd-devstack |
-+----------------------------+-------------------------------------------------------------------------+
-|ec2-api |git://git.openstack.org/openstack/ec2-api |
-+----------------------------+-------------------------------------------------------------------------+
-|freezer |git://git.openstack.org/openstack/freezer |
-+----------------------------+-------------------------------------------------------------------------+
-|freezer-api |git://git.openstack.org/openstack/freezer-api |
-+----------------------------+-------------------------------------------------------------------------+
-|freezer-web-ui |git://git.openstack.org/openstack/freezer-web-ui |
-+----------------------------+-------------------------------------------------------------------------+
-|gce-api |git://git.openstack.org/openstack/gce-api |
-+----------------------------+-------------------------------------------------------------------------+
-|gnocchi |git://git.openstack.org/openstack/gnocchi |
-+----------------------------+-------------------------------------------------------------------------+
-|ironic |git://git.openstack.org/openstack/ironic |
-+----------------------------+-------------------------------------------------------------------------+
-|ironic-inspector |git://git.openstack.org/openstack/ironic-inspector |
-+----------------------------+-------------------------------------------------------------------------+
-|kingbird |git://git.openstack.org/openstack/kingbird |
-+----------------------------+-------------------------------------------------------------------------+
-|kuryr |git://git.openstack.org/openstack/kuryr |
-+----------------------------+-------------------------------------------------------------------------+
-|magnum |git://git.openstack.org/openstack/magnum |
-+----------------------------+-------------------------------------------------------------------------+
-|manila |git://git.openstack.org/openstack/manila |
-+----------------------------+-------------------------------------------------------------------------+
-|mistral |git://git.openstack.org/openstack/mistral |
-+----------------------------+-------------------------------------------------------------------------+
-|monasca-api |git://git.openstack.org/openstack/monasca-api |
-+----------------------------+-------------------------------------------------------------------------+
-|murano |git://git.openstack.org/openstack/murano |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-6wind |git://git.openstack.org/openstack/networking-6wind |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-bagpipe |git://git.openstack.org/openstack/networking-bagpipe |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-bgpvpn |git://git.openstack.org/openstack/networking-bgpvpn |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-brocade |git://git.openstack.org/openstack/networking-brocade |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-calico |git://git.openstack.org/openstack/networking-calico |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-cisco |git://git.openstack.org/openstack/networking-cisco |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-fortinet |git://git.openstack.org/openstack/networking-fortinet |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-generic-switch |git://git.openstack.org/openstack/networking-generic-switch |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-infoblox |git://git.openstack.org/openstack/networking-infoblox |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-l2gw |git://git.openstack.org/openstack/networking-l2gw |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-midonet |git://git.openstack.org/openstack/networking-midonet |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-mlnx |git://git.openstack.org/openstack/networking-mlnx |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-nec |git://git.openstack.org/openstack/networking-nec |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-odl |git://git.openstack.org/openstack/networking-odl |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-ofagent |git://git.openstack.org/openstack/networking-ofagent |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-ovn |git://git.openstack.org/openstack/networking-ovn |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-ovs-dpdk |git://git.openstack.org/openstack/networking-ovs-dpdk |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-plumgrid |git://git.openstack.org/openstack/networking-plumgrid |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-powervm |git://git.openstack.org/openstack/networking-powervm |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-sfc |git://git.openstack.org/openstack/networking-sfc |
-+----------------------------+-------------------------------------------------------------------------+
-|networking-vsphere |git://git.openstack.org/openstack/networking-vsphere |
-+----------------------------+-------------------------------------------------------------------------+
-|neutron |git://git.openstack.org/openstack/neutron |
-+----------------------------+-------------------------------------------------------------------------+
-|neutron-lbaas |git://git.openstack.org/openstack/neutron-lbaas |
-+----------------------------+-------------------------------------------------------------------------+
-|neutron-lbaas-dashboard |git://git.openstack.org/openstack/neutron-lbaas-dashboard |
-+----------------------------+-------------------------------------------------------------------------+
-|neutron-vpnaas |git://git.openstack.org/openstack/neutron-vpnaas |
-+----------------------------+-------------------------------------------------------------------------+
-|nova-docker |git://git.openstack.org/openstack/nova-docker |
-+----------------------------+-------------------------------------------------------------------------+
-|nova-powervm |git://git.openstack.org/openstack/nova-powervm |
-+----------------------------+-------------------------------------------------------------------------+
-|octavia |git://git.openstack.org/openstack/octavia |
-+----------------------------+-------------------------------------------------------------------------+
-|osprofiler |git://git.openstack.org/openstack/osprofiler |
-+----------------------------+-------------------------------------------------------------------------+
-|rally |git://git.openstack.org/openstack/rally |
-+----------------------------+-------------------------------------------------------------------------+
-|sahara |git://git.openstack.org/openstack/sahara |
-+----------------------------+-------------------------------------------------------------------------+
-|sahara-dashboard |git://git.openstack.org/openstack/sahara-dashboard |
-+----------------------------+-------------------------------------------------------------------------+
-|scalpels |git://git.openstack.org/openstack/scalpels |
-+----------------------------+-------------------------------------------------------------------------+
-|searchlight |git://git.openstack.org/openstack/searchlight |
-+----------------------------+-------------------------------------------------------------------------+
-|senlin |git://git.openstack.org/openstack/senlin |
-+----------------------------+-------------------------------------------------------------------------+
-|smaug |git://git.openstack.org/openstack/smaug |
-+----------------------------+-------------------------------------------------------------------------+
-|solum |git://git.openstack.org/openstack/solum |
-+----------------------------+-------------------------------------------------------------------------+
-|tacker |git://git.openstack.org/openstack/tacker |
-+----------------------------+-------------------------------------------------------------------------+
-|tap-as-a-service |git://git.openstack.org/openstack/tap-as-a-service |
-+----------------------------+-------------------------------------------------------------------------+
-|tricircle |git://git.openstack.org/openstack/tricircle |
-+----------------------------+-------------------------------------------------------------------------+
-|trove |git://git.openstack.org/openstack/trove |
-+----------------------------+-------------------------------------------------------------------------+
-|trove-dashboard |git://git.openstack.org/openstack/trove-dashboard |
-+----------------------------+-------------------------------------------------------------------------+
-|vitrage |git://git.openstack.org/openstack/vitrage |
-+----------------------------+-------------------------------------------------------------------------+
-|vitrage-dashboard |git://git.openstack.org/openstack/vitrage-dashboard |
-+----------------------------+-------------------------------------------------------------------------+
-|vmware-nsx |git://git.openstack.org/openstack/vmware-nsx |
-+----------------------------+-------------------------------------------------------------------------+
-|watcher |git://git.openstack.org/openstack/watcher |
-+----------------------------+-------------------------------------------------------------------------+
-|watcher-dashboard |git://git.openstack.org/openstack/watcher-dashboard |
-+----------------------------+-------------------------------------------------------------------------+
-|zaqar |git://git.openstack.org/openstack/zaqar |
-+----------------------------+-------------------------------------------------------------------------+
+
+====================================== ===
+Plugin Name URL
+====================================== ===
+aodh `git://git.openstack.org/openstack/aodh <https://git.openstack.org/cgit/openstack/aodh>`__
+app-catalog-ui `git://git.openstack.org/openstack/app-catalog-ui <https://git.openstack.org/cgit/openstack/app-catalog-ui>`__
+astara `git://git.openstack.org/openstack/astara <https://git.openstack.org/cgit/openstack/astara>`__
+barbican `git://git.openstack.org/openstack/barbican <https://git.openstack.org/cgit/openstack/barbican>`__
+blazar `git://git.openstack.org/openstack/blazar <https://git.openstack.org/cgit/openstack/blazar>`__
+broadview-collector `git://git.openstack.org/openstack/broadview-collector <https://git.openstack.org/cgit/openstack/broadview-collector>`__
+ceilometer `git://git.openstack.org/openstack/ceilometer <https://git.openstack.org/cgit/openstack/ceilometer>`__
+ceilometer-powervm `git://git.openstack.org/openstack/ceilometer-powervm <https://git.openstack.org/cgit/openstack/ceilometer-powervm>`__
+cerberus `git://git.openstack.org/openstack/cerberus <https://git.openstack.org/cgit/openstack/cerberus>`__
+cloudkitty `git://git.openstack.org/openstack/cloudkitty <https://git.openstack.org/cgit/openstack/cloudkitty>`__
+collectd-ceilometer-plugin `git://git.openstack.org/openstack/collectd-ceilometer-plugin <https://git.openstack.org/cgit/openstack/collectd-ceilometer-plugin>`__
+congress `git://git.openstack.org/openstack/congress <https://git.openstack.org/cgit/openstack/congress>`__
+cue `git://git.openstack.org/openstack/cue <https://git.openstack.org/cgit/openstack/cue>`__
+designate `git://git.openstack.org/openstack/designate <https://git.openstack.org/cgit/openstack/designate>`__
+devstack-plugin-additional-pkg-repos `git://git.openstack.org/openstack/devstack-plugin-additional-pkg-repos <https://git.openstack.org/cgit/openstack/devstack-plugin-additional-pkg-repos>`__
+devstack-plugin-amqp1 `git://git.openstack.org/openstack/devstack-plugin-amqp1 <https://git.openstack.org/cgit/openstack/devstack-plugin-amqp1>`__
+devstack-plugin-bdd `git://git.openstack.org/openstack/devstack-plugin-bdd <https://git.openstack.org/cgit/openstack/devstack-plugin-bdd>`__
+devstack-plugin-ceph `git://git.openstack.org/openstack/devstack-plugin-ceph <https://git.openstack.org/cgit/openstack/devstack-plugin-ceph>`__
+devstack-plugin-glusterfs `git://git.openstack.org/openstack/devstack-plugin-glusterfs <https://git.openstack.org/cgit/openstack/devstack-plugin-glusterfs>`__
+devstack-plugin-hdfs `git://git.openstack.org/openstack/devstack-plugin-hdfs <https://git.openstack.org/cgit/openstack/devstack-plugin-hdfs>`__
+devstack-plugin-kafka `git://git.openstack.org/openstack/devstack-plugin-kafka <https://git.openstack.org/cgit/openstack/devstack-plugin-kafka>`__
+devstack-plugin-nfs `git://git.openstack.org/openstack/devstack-plugin-nfs <https://git.openstack.org/cgit/openstack/devstack-plugin-nfs>`__
+devstack-plugin-pika `git://git.openstack.org/openstack/devstack-plugin-pika <https://git.openstack.org/cgit/openstack/devstack-plugin-pika>`__
+devstack-plugin-sheepdog `git://git.openstack.org/openstack/devstack-plugin-sheepdog <https://git.openstack.org/cgit/openstack/devstack-plugin-sheepdog>`__
+devstack-plugin-zmq `git://git.openstack.org/openstack/devstack-plugin-zmq <https://git.openstack.org/cgit/openstack/devstack-plugin-zmq>`__
+dragonflow `git://git.openstack.org/openstack/dragonflow <https://git.openstack.org/cgit/openstack/dragonflow>`__
+drbd-devstack `git://git.openstack.org/openstack/drbd-devstack <https://git.openstack.org/cgit/openstack/drbd-devstack>`__
+ec2-api `git://git.openstack.org/openstack/ec2-api <https://git.openstack.org/cgit/openstack/ec2-api>`__
+freezer `git://git.openstack.org/openstack/freezer <https://git.openstack.org/cgit/openstack/freezer>`__
+freezer-api `git://git.openstack.org/openstack/freezer-api <https://git.openstack.org/cgit/openstack/freezer-api>`__
+freezer-web-ui `git://git.openstack.org/openstack/freezer-web-ui <https://git.openstack.org/cgit/openstack/freezer-web-ui>`__
+gce-api `git://git.openstack.org/openstack/gce-api <https://git.openstack.org/cgit/openstack/gce-api>`__
+gnocchi `git://git.openstack.org/openstack/gnocchi <https://git.openstack.org/cgit/openstack/gnocchi>`__
+ironic `git://git.openstack.org/openstack/ironic <https://git.openstack.org/cgit/openstack/ironic>`__
+ironic-inspector `git://git.openstack.org/openstack/ironic-inspector <https://git.openstack.org/cgit/openstack/ironic-inspector>`__
+kingbird `git://git.openstack.org/openstack/kingbird <https://git.openstack.org/cgit/openstack/kingbird>`__
+kuryr `git://git.openstack.org/openstack/kuryr <https://git.openstack.org/cgit/openstack/kuryr>`__
+magnum `git://git.openstack.org/openstack/magnum <https://git.openstack.org/cgit/openstack/magnum>`__
+magnum-ui `git://git.openstack.org/openstack/magnum-ui <https://git.openstack.org/cgit/openstack/magnum-ui>`__
+manila `git://git.openstack.org/openstack/manila <https://git.openstack.org/cgit/openstack/manila>`__
+mistral `git://git.openstack.org/openstack/mistral <https://git.openstack.org/cgit/openstack/mistral>`__
+monasca-api `git://git.openstack.org/openstack/monasca-api <https://git.openstack.org/cgit/openstack/monasca-api>`__
+murano `git://git.openstack.org/openstack/murano <https://git.openstack.org/cgit/openstack/murano>`__
+networking-6wind `git://git.openstack.org/openstack/networking-6wind <https://git.openstack.org/cgit/openstack/networking-6wind>`__
+networking-bagpipe `git://git.openstack.org/openstack/networking-bagpipe <https://git.openstack.org/cgit/openstack/networking-bagpipe>`__
+networking-bgpvpn `git://git.openstack.org/openstack/networking-bgpvpn <https://git.openstack.org/cgit/openstack/networking-bgpvpn>`__
+networking-brocade `git://git.openstack.org/openstack/networking-brocade <https://git.openstack.org/cgit/openstack/networking-brocade>`__
+networking-calico `git://git.openstack.org/openstack/networking-calico <https://git.openstack.org/cgit/openstack/networking-calico>`__
+networking-cisco `git://git.openstack.org/openstack/networking-cisco <https://git.openstack.org/cgit/openstack/networking-cisco>`__
+networking-fortinet `git://git.openstack.org/openstack/networking-fortinet <https://git.openstack.org/cgit/openstack/networking-fortinet>`__
+networking-generic-switch `git://git.openstack.org/openstack/networking-generic-switch <https://git.openstack.org/cgit/openstack/networking-generic-switch>`__
+networking-infoblox `git://git.openstack.org/openstack/networking-infoblox <https://git.openstack.org/cgit/openstack/networking-infoblox>`__
+networking-l2gw `git://git.openstack.org/openstack/networking-l2gw <https://git.openstack.org/cgit/openstack/networking-l2gw>`__
+networking-midonet `git://git.openstack.org/openstack/networking-midonet <https://git.openstack.org/cgit/openstack/networking-midonet>`__
+networking-mlnx `git://git.openstack.org/openstack/networking-mlnx <https://git.openstack.org/cgit/openstack/networking-mlnx>`__
+networking-nec `git://git.openstack.org/openstack/networking-nec <https://git.openstack.org/cgit/openstack/networking-nec>`__
+networking-odl `git://git.openstack.org/openstack/networking-odl <https://git.openstack.org/cgit/openstack/networking-odl>`__
+networking-ofagent `git://git.openstack.org/openstack/networking-ofagent <https://git.openstack.org/cgit/openstack/networking-ofagent>`__
+networking-ovn `git://git.openstack.org/openstack/networking-ovn <https://git.openstack.org/cgit/openstack/networking-ovn>`__
+networking-ovs-dpdk `git://git.openstack.org/openstack/networking-ovs-dpdk <https://git.openstack.org/cgit/openstack/networking-ovs-dpdk>`__
+networking-plumgrid `git://git.openstack.org/openstack/networking-plumgrid <https://git.openstack.org/cgit/openstack/networking-plumgrid>`__
+networking-powervm `git://git.openstack.org/openstack/networking-powervm <https://git.openstack.org/cgit/openstack/networking-powervm>`__
+networking-sfc `git://git.openstack.org/openstack/networking-sfc <https://git.openstack.org/cgit/openstack/networking-sfc>`__
+networking-vsphere `git://git.openstack.org/openstack/networking-vsphere <https://git.openstack.org/cgit/openstack/networking-vsphere>`__
+neutron `git://git.openstack.org/openstack/neutron <https://git.openstack.org/cgit/openstack/neutron>`__
+neutron-lbaas `git://git.openstack.org/openstack/neutron-lbaas <https://git.openstack.org/cgit/openstack/neutron-lbaas>`__
+neutron-lbaas-dashboard `git://git.openstack.org/openstack/neutron-lbaas-dashboard <https://git.openstack.org/cgit/openstack/neutron-lbaas-dashboard>`__
+neutron-vpnaas `git://git.openstack.org/openstack/neutron-vpnaas <https://git.openstack.org/cgit/openstack/neutron-vpnaas>`__
+nova-docker `git://git.openstack.org/openstack/nova-docker <https://git.openstack.org/cgit/openstack/nova-docker>`__
+nova-powervm `git://git.openstack.org/openstack/nova-powervm <https://git.openstack.org/cgit/openstack/nova-powervm>`__
+octavia `git://git.openstack.org/openstack/octavia <https://git.openstack.org/cgit/openstack/octavia>`__
+osprofiler `git://git.openstack.org/openstack/osprofiler <https://git.openstack.org/cgit/openstack/osprofiler>`__
+python-freezerclient `git://git.openstack.org/openstack/python-freezerclient <https://git.openstack.org/cgit/openstack/python-freezerclient>`__
+rally `git://git.openstack.org/openstack/rally <https://git.openstack.org/cgit/openstack/rally>`__
+sahara `git://git.openstack.org/openstack/sahara <https://git.openstack.org/cgit/openstack/sahara>`__
+sahara-dashboard `git://git.openstack.org/openstack/sahara-dashboard <https://git.openstack.org/cgit/openstack/sahara-dashboard>`__
+scalpels `git://git.openstack.org/openstack/scalpels <https://git.openstack.org/cgit/openstack/scalpels>`__
+searchlight `git://git.openstack.org/openstack/searchlight <https://git.openstack.org/cgit/openstack/searchlight>`__
+searchlight-ui `git://git.openstack.org/openstack/searchlight-ui <https://git.openstack.org/cgit/openstack/searchlight-ui>`__
+senlin `git://git.openstack.org/openstack/senlin <https://git.openstack.org/cgit/openstack/senlin>`__
+smaug `git://git.openstack.org/openstack/smaug <https://git.openstack.org/cgit/openstack/smaug>`__
+smaug-dashboard `git://git.openstack.org/openstack/smaug-dashboard <https://git.openstack.org/cgit/openstack/smaug-dashboard>`__
+solum `git://git.openstack.org/openstack/solum <https://git.openstack.org/cgit/openstack/solum>`__
+tacker `git://git.openstack.org/openstack/tacker <https://git.openstack.org/cgit/openstack/tacker>`__
+tap-as-a-service `git://git.openstack.org/openstack/tap-as-a-service <https://git.openstack.org/cgit/openstack/tap-as-a-service>`__
+tricircle `git://git.openstack.org/openstack/tricircle <https://git.openstack.org/cgit/openstack/tricircle>`__
+trove `git://git.openstack.org/openstack/trove <https://git.openstack.org/cgit/openstack/trove>`__
+trove-dashboard `git://git.openstack.org/openstack/trove-dashboard <https://git.openstack.org/cgit/openstack/trove-dashboard>`__
+vitrage `git://git.openstack.org/openstack/vitrage <https://git.openstack.org/cgit/openstack/vitrage>`__
+vitrage-dashboard `git://git.openstack.org/openstack/vitrage-dashboard <https://git.openstack.org/cgit/openstack/vitrage-dashboard>`__
+vmware-nsx `git://git.openstack.org/openstack/vmware-nsx <https://git.openstack.org/cgit/openstack/vmware-nsx>`__
+watcher `git://git.openstack.org/openstack/watcher <https://git.openstack.org/cgit/openstack/watcher>`__
+watcher-dashboard `git://git.openstack.org/openstack/watcher-dashboard <https://git.openstack.org/cgit/openstack/watcher-dashboard>`__
+zaqar `git://git.openstack.org/openstack/zaqar <https://git.openstack.org/cgit/openstack/zaqar>`__
+zaqar-ui `git://git.openstack.org/openstack/zaqar-ui <https://git.openstack.org/cgit/openstack/zaqar-ui>`__
+====================================== ===
+
+
diff --git a/lib/cinder b/lib/cinder
index 1b6a956..4df7de8 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -375,17 +375,17 @@
get_or_create_endpoint \
"volume" \
"$REGION_NAME" \
- "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(tenant_id)s" \
- "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(tenant_id)s" \
- "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(tenant_id)s"
+ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(project_id)s" \
+ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(project_id)s" \
+ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v1/\$(project_id)s"
get_or_create_service "cinderv2" "volumev2" "Cinder Volume Service V2"
get_or_create_endpoint \
"volumev2" \
"$REGION_NAME" \
- "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(tenant_id)s" \
- "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(tenant_id)s" \
- "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(tenant_id)s"
+ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(project_id)s" \
+ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(project_id)s" \
+ "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:$CINDER_SERVICE_PORT/v2/\$(project_id)s"
fi
}
diff --git a/lib/heat b/lib/heat
index 2cf7a19..4326321 100644
--- a/lib/heat
+++ b/lib/heat
@@ -391,9 +391,9 @@
get_or_create_endpoint \
"orchestration" \
"$REGION_NAME" \
- "$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(tenant_id)s" \
- "$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(tenant_id)s" \
- "$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(tenant_id)s"
+ "$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(project_id)s" \
+ "$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(project_id)s" \
+ "$SERVICE_PROTOCOL://$HEAT_API_HOST:$HEAT_API_PORT/v1/\$(project_id)s"
get_or_create_service "heat-cfn" "cloudformation" "Heat CloudFormation Service"
get_or_create_endpoint \
diff --git a/lib/keystone b/lib/keystone
index d830924..f058114 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -619,9 +619,9 @@
--bootstrap-role-name admin \
--bootstrap-service-name keystone \
--bootstrap-region-id "$REGION_NAME" \
- --bootstrap-admin-url "$KEYSTONE_AUTH_URI/v$IDENTITY_API_VERSION" \
- --bootstrap-public-url "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v$IDENTITY_API_VERSION" \
- --bootstrap-internal-url "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v$IDENTITY_API_VERSION"
+ --bootstrap-admin-url "$KEYSTONE_AUTH_URI" \
+ --bootstrap-public-url "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT" \
+ --bootstrap-internal-url "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT"
}
# Restore xtrace
diff --git a/lib/neutron-legacy b/lib/neutron-legacy
index 34f9840..f5a7a0a 100644
--- a/lib/neutron-legacy
+++ b/lib/neutron-legacy
@@ -107,7 +107,6 @@
NEUTRON_DIR=$DEST/neutron
NEUTRON_FWAAS_DIR=$DEST/neutron-fwaas
-NEUTRON_LBAAS_DIR=$DEST/neutron-lbaas
NEUTRON_VPNAAS_DIR=$DEST/neutron-vpnaas
NEUTRON_AUTH_CACHE_DIR=${NEUTRON_AUTH_CACHE_DIR:-/var/cache/neutron}
@@ -122,9 +121,6 @@
NEUTRON_CONF=$NEUTRON_CONF_DIR/neutron.conf
export NEUTRON_TEST_CONFIG_FILE=${NEUTRON_TEST_CONFIG_FILE:-"$NEUTRON_CONF_DIR/debug.ini"}
-# Default provider for load balancer service
-DEFAULT_LB_PROVIDER=LOADBALANCER:Haproxy:neutron_lbaas.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
-
# Default provider for VPN service
DEFAULT_VPN_PROVIDER=VPN:openswan:neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default
@@ -347,12 +343,6 @@
source $TOP_DIR/lib/neutron_plugins/$Q_PLUGIN
fi
-# Agent loadbalancer service plugin functions
-# -------------------------------------------
-
-# Hardcoding for 1 service plugin for now
-source $TOP_DIR/lib/neutron_plugins/services/loadbalancer
-
# Agent metering service plugin functions
# -------------------------------------------
@@ -442,10 +432,6 @@
iniset_rpc_backend neutron $NEUTRON_CONF
# goes before q-svc to init Q_SERVICE_PLUGIN_CLASSES
- if is_service_enabled q-lbaas; then
- deprecated "Configuring q-lbaas through devstack is deprecated"
- _configure_neutron_lbaas
- fi
if is_service_enabled q-metering; then
_configure_neutron_metering
fi
@@ -544,8 +530,9 @@
}
function create_neutron_initial_network {
- TENANT_ID=$(openstack project list | grep " demo " | get_field 1)
- die_if_not_set $LINENO TENANT_ID "Failure retrieving TENANT_ID for demo"
+ local project_id
+ project_id=$(openstack project list | grep " demo " | get_field 1)
+ die_if_not_set $LINENO project_id "Failure retrieving project_id for demo"
# Allow drivers that need to create an initial network to do so here
if type -p neutron_plugin_create_initial_network_profile > /dev/null; then
@@ -555,17 +542,17 @@
if is_provider_network; then
die_if_not_set $LINENO PHYSICAL_NETWORK "You must specify the PHYSICAL_NETWORK"
die_if_not_set $LINENO PROVIDER_NETWORK_TYPE "You must specify the PROVIDER_NETWORK_TYPE"
- NET_ID=$(neutron net-create $PHYSICAL_NETWORK --tenant_id $TENANT_ID --provider:network_type $PROVIDER_NETWORK_TYPE --provider:physical_network "$PHYSICAL_NETWORK" ${SEGMENTATION_ID:+--provider:segmentation_id $SEGMENTATION_ID} --shared | grep ' id ' | get_field 2)
- die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PHYSICAL_NETWORK $TENANT_ID"
+ NET_ID=$(neutron net-create $PHYSICAL_NETWORK --tenant_id $project_id --provider:network_type $PROVIDER_NETWORK_TYPE --provider:physical_network "$PHYSICAL_NETWORK" ${SEGMENTATION_ID:+--provider:segmentation_id $SEGMENTATION_ID} --shared | grep ' id ' | get_field 2)
+ die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PHYSICAL_NETWORK $project_id"
if [[ "$IP_VERSION" =~ 4.* ]]; then
- SUBNET_ID=$(neutron subnet-create --tenant_id $TENANT_ID --ip_version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} --name $PROVIDER_SUBNET_NAME --gateway $NETWORK_GATEWAY $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2)
- die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $PROVIDER_SUBNET_NAME $TENANT_ID"
+ SUBNET_ID=$(neutron subnet-create --tenant_id $project_id --ip_version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} --name $PROVIDER_SUBNET_NAME --gateway $NETWORK_GATEWAY $NET_ID $FIXED_RANGE | grep ' id ' | get_field 2)
+ die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $PROVIDER_SUBNET_NAME $project_id"
fi
if [[ "$IP_VERSION" =~ .*6 ]] && [[ -n "$IPV6_PROVIDER_FIXED_RANGE" ]] && [[ -n "$IPV6_PROVIDER_NETWORK_GATEWAY" ]]; then
- SUBNET_V6_ID=$(neutron subnet-create --tenant_id $TENANT_ID --ip_version 6 --ipv6-address-mode $IPV6_ADDRESS_MODE --gateway $IPV6_PROVIDER_NETWORK_GATEWAY --name $IPV6_PROVIDER_SUBNET_NAME $NET_ID $IPV6_PROVIDER_FIXED_RANGE | grep 'id' | get_field 2)
- die_if_not_set $LINENO SUBNET_V6_ID "Failure creating SUBNET_V6_ID for $IPV6_PROVIDER_SUBNET_NAME $TENANT_ID"
+ SUBNET_V6_ID=$(neutron subnet-create --tenant_id $project_id --ip_version 6 --ipv6-address-mode $IPV6_ADDRESS_MODE --gateway $IPV6_PROVIDER_NETWORK_GATEWAY --name $IPV6_PROVIDER_SUBNET_NAME $NET_ID $IPV6_PROVIDER_FIXED_RANGE | grep 'id' | get_field 2)
+ die_if_not_set $LINENO SUBNET_V6_ID "Failure creating SUBNET_V6_ID for $IPV6_PROVIDER_SUBNET_NAME $project_id"
fi
if [[ $Q_AGENT == "openvswitch" ]]; then
@@ -574,17 +561,17 @@
sudo ip link set $PUBLIC_INTERFACE up
fi
else
- NET_ID=$(neutron net-create --tenant-id $TENANT_ID "$PRIVATE_NETWORK_NAME" | grep ' id ' | get_field 2)
- die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PRIVATE_NETWORK_NAME $TENANT_ID"
+ NET_ID=$(neutron net-create --tenant-id $project_id "$PRIVATE_NETWORK_NAME" | grep ' id ' | get_field 2)
+ die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PRIVATE_NETWORK_NAME $project_id"
if [[ "$IP_VERSION" =~ 4.* ]]; then
# Create IPv4 private subnet
- SUBNET_ID=$(_neutron_create_private_subnet_v4)
+ SUBNET_ID=$(_neutron_create_private_subnet_v4 $project_id)
fi
if [[ "$IP_VERSION" =~ .*6 ]]; then
# Create IPv6 private subnet
- IPV6_SUBNET_ID=$(_neutron_create_private_subnet_v6)
+ IPV6_SUBNET_ID=$(_neutron_create_private_subnet_v6 $project_id)
fi
fi
@@ -594,8 +581,8 @@
# Create a router, and add the private subnet as one of its interfaces
if [[ "$Q_L3_ROUTER_PER_TENANT" == "True" ]]; then
# create a tenant-owned router.
- ROUTER_ID=$(neutron router-create --tenant-id $TENANT_ID $Q_ROUTER_NAME | grep ' id ' | get_field 2)
- die_if_not_set $LINENO ROUTER_ID "Failure creating ROUTER_ID for $TENANT_ID $Q_ROUTER_NAME"
+ ROUTER_ID=$(neutron router-create --tenant-id $project_id $Q_ROUTER_NAME | grep ' id ' | get_field 2)
+ die_if_not_set $LINENO ROUTER_ID "Failure creating ROUTER_ID for $project_id $Q_ROUTER_NAME"
else
# Plugin only supports creating a single router, which should be admin owned.
ROUTER_ID=$(neutron router-create $Q_ROUTER_NAME | grep ' id ' | get_field 2)
@@ -656,10 +643,6 @@
git_clone $NEUTRON_FWAAS_REPO $NEUTRON_FWAAS_DIR $NEUTRON_FWAAS_BRANCH
setup_develop $NEUTRON_FWAAS_DIR
fi
- if is_service_enabled q-lbaas; then
- git_clone $NEUTRON_LBAAS_REPO $NEUTRON_LBAAS_DIR $NEUTRON_LBAAS_BRANCH
- setup_develop $NEUTRON_LBAAS_DIR
- fi
if is_service_enabled q-vpn; then
git_clone $NEUTRON_VPNAAS_REPO $NEUTRON_VPNAAS_DIR $NEUTRON_VPNAAS_BRANCH
setup_develop $NEUTRON_VPNAAS_DIR
@@ -703,10 +686,6 @@
if is_service_enabled q-agt q-dhcp q-l3; then
neutron_plugin_install_agent_packages
fi
-
- if is_service_enabled q-lbaas; then
- neutron_agent_lbaas_install_agent_packages
- fi
}
# Start running processes, including screen
@@ -769,7 +748,6 @@
fi
run_process q-meta "$AGENT_META_BINARY --config-file $NEUTRON_CONF --config-file=$Q_META_CONF_FILE"
- run_process q-lbaas "$AGENT_LBAAS_BINARY --config-file $NEUTRON_CONF --config-file=$LBAAS_AGENT_CONF_FILENAME"
run_process q-metering "$AGENT_METERING_BINARY --config-file $NEUTRON_CONF --config-file $METERING_AGENT_CONF_FILENAME"
if [ "$VIRT_DRIVER" = 'xenserver' ]; then
@@ -808,9 +786,6 @@
stop_process q-meta
fi
- if is_service_enabled q-lbaas; then
- neutron_lbaas_stop
- fi
if is_service_enabled q-fwaas; then
neutron_fwaas_stop
fi
@@ -915,7 +890,7 @@
fi
# delete all namespaces created by neutron
- for ns in $(sudo ip netns list | grep -o -E '(qdhcp|qrouter|qlbaas|fip|snat)-[0-9a-f-]*'); do
+ for ns in $(sudo ip netns list | grep -o -E '(qdhcp|qrouter|fip|snat)-[0-9a-f-]*'); do
sudo ip netns delete ${ns}
done
}
@@ -1108,18 +1083,6 @@
iniset $NEUTRON_CONF oslo_messaging_notifications driver messaging
}
-function _configure_neutron_lbaas {
- # Uses oslo config generator to generate LBaaS sample configuration files
- (cd $NEUTRON_LBAAS_DIR && exec ./tools/generate_config_file_samples.sh)
-
- if [ -f $NEUTRON_LBAAS_DIR/etc/neutron_lbaas.conf.sample ]; then
- cp $NEUTRON_LBAAS_DIR/etc/neutron_lbaas.conf.sample $NEUTRON_CONF_DIR/neutron_lbaas.conf
- iniset $NEUTRON_CONF_DIR/neutron_lbaas.conf service_providers service_provider $DEFAULT_LB_PROVIDER
- fi
- neutron_agent_lbaas_configure_common
- neutron_agent_lbaas_configure_agent
-}
-
function _configure_neutron_metering {
neutron_agent_metering_configure_common
neutron_agent_metering_configure_agent
@@ -1189,14 +1152,7 @@
iniset $NEUTRON_CONF DEFAULT notify_nova_on_port_status_changes $Q_NOTIFY_NOVA_PORT_STATUS_CHANGES
iniset $NEUTRON_CONF DEFAULT notify_nova_on_port_data_changes $Q_NOTIFY_NOVA_PORT_DATA_CHANGES
- iniset $NEUTRON_CONF nova auth_type password
- iniset $NEUTRON_CONF nova auth_url $KEYSTONE_AUTH_URI
- iniset $NEUTRON_CONF nova username nova
- iniset $NEUTRON_CONF nova password $SERVICE_PASSWORD
- iniset $NEUTRON_CONF nova user_domain_id default
- iniset $NEUTRON_CONF nova project_name $SERVICE_PROJECT_NAME
- iniset $NEUTRON_CONF nova project_domain_id default
- iniset $NEUTRON_CONF nova region_name $REGION_NAME
+ configure_auth_token_middleware $NEUTRON_CONF nova $NEUTRON_AUTH_CACHE_DIR nova
# Configure plugin
neutron_plugin_configure_service
@@ -1287,30 +1243,32 @@
# Create private IPv4 subnet
function _neutron_create_private_subnet_v4 {
- local subnet_params="--tenant-id $TENANT_ID "
+ local project_id=$1
+ local subnet_params="--tenant-id $project_id "
subnet_params+="--ip_version 4 "
subnet_params+="--gateway $NETWORK_GATEWAY "
subnet_params+="--name $PRIVATE_SUBNET_NAME "
subnet_params+="$NET_ID $FIXED_RANGE"
local subnet_id
subnet_id=$(neutron subnet-create $subnet_params | grep ' id ' | get_field 2)
- die_if_not_set $LINENO subnet_id "Failure creating private IPv4 subnet for $TENANT_ID"
+ die_if_not_set $LINENO subnet_id "Failure creating private IPv4 subnet for $project_id"
echo $subnet_id
}
# Create private IPv6 subnet
function _neutron_create_private_subnet_v6 {
+ local project_id=$1
die_if_not_set $LINENO IPV6_RA_MODE "IPV6 RA Mode not set"
die_if_not_set $LINENO IPV6_ADDRESS_MODE "IPV6 Address Mode not set"
local ipv6_modes="--ipv6-ra-mode $IPV6_RA_MODE --ipv6-address-mode $IPV6_ADDRESS_MODE"
- local subnet_params="--tenant-id $TENANT_ID "
+ local subnet_params="--tenant-id $project_id "
subnet_params+="--ip_version 6 "
subnet_params+="--gateway $IPV6_PRIVATE_NETWORK_GATEWAY "
subnet_params+="--name $IPV6_PRIVATE_SUBNET_NAME "
subnet_params+="$NET_ID $FIXED_RANGE_V6 $ipv6_modes"
local ipv6_subnet_id
ipv6_subnet_id=$(neutron subnet-create $subnet_params | grep ' id ' | get_field 2)
- die_if_not_set $LINENO ipv6_subnet_id "Failure creating private IPv6 subnet for $TENANT_ID"
+ die_if_not_set $LINENO ipv6_subnet_id "Failure creating private IPv6 subnet for $project_id"
echo $ipv6_subnet_id
}
diff --git a/lib/neutron_plugins/services/loadbalancer b/lib/neutron_plugins/services/loadbalancer
deleted file mode 100644
index 30e9480..0000000
--- a/lib/neutron_plugins/services/loadbalancer
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-
-# Neutron loadbalancer plugin
-# ---------------------------
-
-# Save trace setting
-_XTRACE_NEUTRON_LB=$(set +o | grep xtrace)
-set +o xtrace
-
-
-AGENT_LBAAS_BINARY="$NEUTRON_BIN_DIR/neutron-lbaas-agent"
-LBAAS_PLUGIN=neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPlugin
-
-function neutron_agent_lbaas_install_agent_packages {
- if is_ubuntu || is_fedora || is_suse; then
- install_package haproxy
- fi
-}
-
-function neutron_agent_lbaas_configure_common {
- _neutron_service_plugin_class_add $LBAAS_PLUGIN
- _neutron_deploy_rootwrap_filters $NEUTRON_LBAAS_DIR
-}
-
-function neutron_agent_lbaas_configure_agent {
- LBAAS_AGENT_CONF_PATH=/etc/neutron/services/loadbalancer/haproxy
- mkdir -p $LBAAS_AGENT_CONF_PATH
-
- LBAAS_AGENT_CONF_FILENAME="$LBAAS_AGENT_CONF_PATH/lbaas_agent.ini"
-
- cp $NEUTRON_LBAAS_DIR/etc/lbaas_agent.ini.sample $LBAAS_AGENT_CONF_FILENAME
-
- # ovs_use_veth needs to be set before the plugin configuration
- # occurs to allow plugins to override the setting.
- iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT ovs_use_veth $Q_OVS_USE_VETH
-
- neutron_plugin_setup_interface_driver $LBAAS_AGENT_CONF_FILENAME
-
- if is_fedora; then
- iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT user_group "nobody"
- iniset $LBAAS_AGENT_CONF_FILENAME haproxy user_group "nobody"
- fi
-}
-
-function neutron_lbaas_stop {
- pids=$(ps aux | awk '/haproxy/ { print $2 }')
- [ ! -z "$pids" ] && sudo kill $pids || true
-}
-
-# Restore xtrace
-$_XTRACE_NEUTRON_LB
diff --git a/lib/nova b/lib/nova
index ab2bef8..8823e1d 100644
--- a/lib/nova
+++ b/lib/nova
@@ -421,17 +421,17 @@
get_or_create_endpoint \
"compute_legacy" \
"$REGION_NAME" \
- "$nova_api_url/v2/\$(tenant_id)s" \
- "$nova_api_url/v2/\$(tenant_id)s" \
- "$nova_api_url/v2/\$(tenant_id)s"
+ "$nova_api_url/v2/\$(project_id)s" \
+ "$nova_api_url/v2/\$(project_id)s" \
+ "$nova_api_url/v2/\$(project_id)s"
get_or_create_service "nova" "compute" "Nova Compute Service"
get_or_create_endpoint \
"compute" \
"$REGION_NAME" \
- "$nova_api_url/v2.1/\$(tenant_id)s" \
- "$nova_api_url/v2.1/\$(tenant_id)s" \
- "$nova_api_url/v2.1/\$(tenant_id)s"
+ "$nova_api_url/v2.1" \
+ "$nova_api_url/v2.1" \
+ "$nova_api_url/v2.1"
fi
if is_service_enabled n-api; then
@@ -648,7 +648,7 @@
if is_service_enabled n-cell; then
cp $NOVA_CONF $NOVA_CELLS_CONF
iniset $NOVA_CELLS_CONF database connection `database_connection_url $NOVA_CELLS_DB`
- iniset $NOVA_CELLS_CONF DEFAULT rabbit_virtual_host child_cell
+ iniset $NOVA_CELLS_CONF oslo_messaging_rabbit rabbit_virtual_host child_cell
iniset $NOVA_CELLS_CONF DEFAULT dhcpbridge_flagfile $NOVA_CELLS_CONF
iniset $NOVA_CELLS_CONF cells enable True
iniset $NOVA_CELLS_CONF cells cell_type compute
@@ -932,6 +932,27 @@
stop_nova_compute
}
+# create_instance_types(): Create default flavors
+function create_flavors {
+ if is_service_enabled n-api; then
+ if ! openstack flavor list | grep -q ds512M; then
+ # Note that danms hates these flavors and apologizes for sdague
+ openstack flavor create --id c1 --ram 256 --disk 0 --vcpus 1 cirros256
+ openstack flavor create --id d1 --ram 512 --disk 5 --vcpus 1 ds512M
+ openstack flavor create --id d2 --ram 1024 --disk 10 --vcpus 1 ds1G
+ openstack flavor create --id d3 --ram 2048 --disk 10 --vcpus 2 ds2G
+ openstack flavor create --id d4 --ram 4096 --disk 20 --vcpus 4 ds4G
+ fi
+
+ if ! openstack flavor list | grep -q m1.tiny; then
+ openstack flavor create --id 1 --ram 512 --disk 1 --vcpus 1 m1.tiny
+ openstack flavor create --id 2 --ram 2048 --disk 20 --vcpus 1 m1.small
+ openstack flavor create --id 3 --ram 4096 --disk 40 --vcpus 2 m1.medium
+ openstack flavor create --id 4 --ram 8192 --disk 80 --vcpus 4 m1.large
+ openstack flavor create --id 5 --ram 16384 --disk 160 --vcpus 8 m1.xlarge
+ fi
+ fi
+}
# Restore xtrace
$_XTRACE_LIB_NOVA
diff --git a/lib/swift b/lib/swift
index 8c5aa5e..b2fe755 100644
--- a/lib/swift
+++ b/lib/swift
@@ -631,9 +631,9 @@
get_or_create_endpoint \
"object-store" \
"$REGION_NAME" \
- "$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT/v1/AUTH_\$(tenant_id)s" \
+ "$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT/v1/AUTH_\$(project_id)s" \
"$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT" \
- "$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT/v1/AUTH_\$(tenant_id)s"
+ "$SWIFT_SERVICE_PROTOCOL://$SERVICE_HOST:$SWIFT_DEFAULT_BIND_PORT/v1/AUTH_\$(project_id)s"
local swift_tenant_test1
swift_tenant_test1=$(get_or_create_project swifttenanttest1 default)
diff --git a/lib/tempest b/lib/tempest
index ed26caf..fd98c94 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -180,14 +180,14 @@
# See ``lib/keystone`` where these users and tenants are set up
local admin_username=${ADMIN_USERNAME:-admin}
- local admin_tenant_name=${ADMIN_TENANT_NAME:-admin}
+ local admin_project_name=${ADMIN_TENANT_NAME:-admin}
local admin_domain_name=${ADMIN_DOMAIN_NAME:-Default}
local tempest_username=${TEMPEST_USERNAME:-demo}
- local tempest_tenant_name=${TEMPEST_TENANT_NAME:-demo}
+ local tempest_project_name=${TEMPEST_TENANT_NAME:-demo}
local alt_username=${ALT_USERNAME:-alt_demo}
- local alt_tenant_name=${ALT_TENANT_NAME:-alt_demo}
- local admin_tenant_id
- admin_tenant_id=$(openstack project list | awk "/ admin / { print \$2 }")
+ local alt_project_name=${ALT_TENANT_NAME:-alt_demo}
+ local admin_project_id
+ admin_project_id=$(openstack project list | awk "/ admin / { print \$2 }")
if is_service_enabled nova; then
# If ``DEFAULT_INSTANCE_TYPE`` is not declared, use the new behavior
@@ -263,8 +263,8 @@
if [[ "$TEMPEST_HAS_ADMIN" == "True" ]]; then
iniset $TEMPEST_CONFIG auth admin_username $admin_username
iniset $TEMPEST_CONFIG auth admin_password "$password"
- iniset $TEMPEST_CONFIG auth admin_tenant_name $admin_tenant_name
- iniset $TEMPEST_CONFIG auth admin_tenant_id $admin_tenant_id
+ iniset $TEMPEST_CONFIG auth admin_tenant_name $admin_project_name
+ iniset $TEMPEST_CONFIG auth admin_tenant_id $admin_project_id
iniset $TEMPEST_CONFIG auth admin_domain_name $admin_domain_name
fi
if [ "$ENABLE_IDENTITY_V2" == "False" ]; then
@@ -317,44 +317,6 @@
fi
# Compute Features
- # Run ``verify_tempest_config -ur`` to retrieve enabled extensions on API endpoints
- # NOTE(mtreinish): This must be done after auth settings are added to the tempest config
- local tmp_cfg_file
- tmp_cfg_file=$(mktemp)
- cd $TEMPEST_DIR
- if [[ "$OFFLINE" != "True" ]]; then
- tox -revenv --notest
- fi
-
- # Auth
- iniset $TEMPEST_CONFIG auth tempest_roles "Member"
- if [[ $TEMPEST_USE_TEST_ACCOUNTS == "True" ]]; then
- if [[ $TEMPEST_HAS_ADMIN == "True" ]]; then
- tempest-account-generator -c $TEMPEST_CONFIG --os-username $admin_username --os-password "$password" --os-tenant-name $admin_tenant_name -r $TEMPEST_CONCURRENCY --with-admin etc/accounts.yaml
- else
- tempest-account-generator -c $TEMPEST_CONFIG --os-username $admin_username --os-password "$password" --os-tenant-name $admin_tenant_name -r $TEMPEST_CONCURRENCY etc/accounts.yaml
- fi
- iniset $TEMPEST_CONFIG auth use_dynamic_credentials False
- iniset $TEMPEST_CONFIG auth test_accounts_file "etc/accounts.yaml"
- elif [[ $TEMPEST_HAS_ADMIN == "False" ]]; then
- iniset $TEMPEST_CONFIG auth use_dynamic_credentials ${TEMPEST_ALLOW_TENANT_ISOLATION:-False}
-
- else
- iniset $TEMPEST_CONFIG auth use_dynamic_credentials ${TEMPEST_ALLOW_TENANT_ISOLATION:-True}
- fi
-
- # NOTE(mtreinish): Respect constraints on tempest verify-config venv
- tox -evenv -- pip install -c $REQUIREMENTS_DIR/upper-constraints.txt -r requirements.txt
- tox -evenv -- tempest verify-config -uro $tmp_cfg_file
-
- local compute_api_extensions=${COMPUTE_API_EXTENSIONS:-"all"}
- if [[ ! -z "$DISABLE_COMPUTE_API_EXTENSIONS" ]]; then
- # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
- compute_api_extensions=${COMPUTE_API_EXTENSIONS:-$(iniget $tmp_cfg_file compute-feature-enabled api_extensions | tr -d " ")}
- # Remove disabled extensions
- compute_api_extensions=$(remove_disabled_extensions $compute_api_extensions $DISABLE_COMPUTE_API_EXTENSIONS)
- fi
-
# Set the microversion range for compute tests.
# This is used to run the Nova microversions tests.
# Setting [None, latest] range of microversion which allow Tempest to run all microversions tests.
@@ -383,7 +345,6 @@
iniset $TEMPEST_CONFIG compute-feature-enabled live_migration ${LIVE_MIGRATION_AVAILABLE:-False}
iniset $TEMPEST_CONFIG compute-feature-enabled change_password False
iniset $TEMPEST_CONFIG compute-feature-enabled block_migration_for_live_migration ${USE_BLOCK_MIGRATION_FOR_LIVE_MIGRATION:-False}
- iniset $TEMPEST_CONFIG compute-feature-enabled api_extensions $compute_api_extensions
# TODO(mriedem): Remove the preserve_ports flag when Juno is end of life.
iniset $TEMPEST_CONFIG compute-feature-enabled preserve_ports True
# TODO(gilliard): Remove the live_migrate_paused_instances flag when Juno is end of life.
@@ -398,6 +359,8 @@
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
# Cells doesn't support hot-plugging virtual interfaces.
iniset $TEMPEST_CONFIG compute-feature-enabled interface_attach False
+ # Cells v1 doesn't support the rescue/unrescue tests in Tempest
+ iniset $TEMPEST_CONFIG compute-feature-enabled rescue False
if [[ -z "$DEFAULT_INSTANCE_TYPE" ]]; then
# Cells supports resize but does not currently work with devstack
@@ -418,15 +381,6 @@
iniset $TEMPEST_CONFIG network-feature-enabled ipv6 "$IPV6_ENABLED"
iniset $TEMPEST_CONFIG network-feature-enabled ipv6_subnet_attributes "$IPV6_SUBNET_ATTRIBUTES_ENABLED"
- local network_api_extensions=${NETWORK_API_EXTENSIONS:-"all"}
- if [[ ! -z "$DISABLE_NETWORK_API_EXTENSIONS" ]]; then
- # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
- network_api_extensions=${NETWORK_API_EXTENSIONS:-$(iniget $tmp_cfg_file network-feature-enabled api_extensions | tr -d " ")}
- # Remove disabled extensions
- network_api_extensions=$(remove_disabled_extensions $network_api_extensions $DISABLE_NETWORK_API_EXTENSIONS)
- fi
- iniset $TEMPEST_CONFIG network-feature-enabled api_extensions $network_api_extensions
-
# Orchestration Tests
if is_service_enabled heat; then
if [[ ! -z "$HEAT_CFN_IMAGE_URL" ]]; then
@@ -459,16 +413,6 @@
# Telemetry
iniset $TEMPEST_CONFIG telemetry-feature-enabled events "True"
- # Object Store
- local object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-"all"}
- if [[ ! -z "$DISABLE_OBJECT_STORAGE_API_EXTENSIONS" ]]; then
- # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
- object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-$(iniget $tmp_cfg_file object-storage-feature-enabled discoverable_apis | tr -d " ")}
- # Remove disabled extensions
- object_storage_api_extensions=$(remove_disabled_extensions $object_storage_api_extensions $DISABLE_STORAGE_API_EXTENSIONS)
- fi
- iniset $TEMPEST_CONFIG object-storage-feature-enabled discoverable_apis $object_storage_api_extensions
-
# Validation
iniset $TEMPEST_CONFIG validation run_validation ${TEMPEST_RUN_VALIDATION:-False}
iniset $TEMPEST_CONFIG validation ip_version_for_ssh 4
@@ -482,15 +426,6 @@
# TODO(ynesenenko): Remove the volume_services flag when Liberty and Kilo will correct work with host info.
iniset $TEMPEST_CONFIG volume-feature-enabled volume_services True
- local volume_api_extensions=${VOLUME_API_EXTENSIONS:-"all"}
- if [[ ! -z "$DISABLE_VOLUME_API_EXTENSIONS" ]]; then
- # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
- volume_api_extensions=${VOLUME_API_EXTENSIONS:-$(iniget $tmp_cfg_file volume-feature-enabled api_extensions | tr -d " ")}
- # Remove disabled extensions
- volume_api_extensions=$(remove_disabled_extensions $volume_api_extensions $DISABLE_VOLUME_API_EXTENSIONS)
- fi
- iniset $TEMPEST_CONFIG volume-feature-enabled api_extensions $volume_api_extensions
-
if ! is_service_enabled c-bak; then
iniset $TEMPEST_CONFIG volume-feature-enabled backup False
fi
@@ -571,6 +506,76 @@
iniset $TEMPEST_CONFIG service_available cinder "False"
fi
+ # Run tempest configuration utilities. This must be done last during configuration to
+ # ensure as complete a config as possible already exists
+
+ # NOTE(mtreinish): Respect constraints on tempest verify-config venv
+ local tmp_cfg_file
+ tmp_cfg_file=$(mktemp)
+ cd $TEMPEST_DIR
+ if [[ "$OFFLINE" != "True" ]]; then
+ tox -revenv --notest
+ fi
+ tox -evenv -- pip install -c $REQUIREMENTS_DIR/upper-constraints.txt -r requirements.txt
+
+ # Auth:
+ iniset $TEMPEST_CONFIG auth tempest_roles "Member"
+ if [[ $TEMPEST_USE_TEST_ACCOUNTS == "True" ]]; then
+ if [[ $TEMPEST_HAS_ADMIN == "True" ]]; then
+ tox -evenv -- tempest-account-generator -c $TEMPEST_CONFIG --os-username $admin_username --os-password "$password" --os-tenant-name $admin_project_name -r $TEMPEST_CONCURRENCY --with-admin etc/accounts.yaml
+ else
+ tox -evenv -- tempest-account-generator -c $TEMPEST_CONFIG --os-username $admin_username --os-password "$password" --os-tenant-name $admin_project_name -r $TEMPEST_CONCURRENCY etc/accounts.yaml
+ fi
+ iniset $TEMPEST_CONFIG auth use_dynamic_credentials False
+ iniset $TEMPEST_CONFIG auth test_accounts_file "etc/accounts.yaml"
+ elif [[ $TEMPEST_HAS_ADMIN == "False" ]]; then
+ iniset $TEMPEST_CONFIG auth use_dynamic_credentials ${TEMPEST_ALLOW_TENANT_ISOLATION:-False}
+
+ else
+ iniset $TEMPEST_CONFIG auth use_dynamic_credentials ${TEMPEST_ALLOW_TENANT_ISOLATION:-True}
+ fi
+
+ # API Extensions
+ # Run ``verify_tempest_config -ur`` to retrieve enabled extensions on API endpoints
+ # NOTE(mtreinish): This must be done after auth settings are added to the tempest config
+ tox -evenv -- tempest verify-config -uro $tmp_cfg_file
+ # Nova API extensions
+ local compute_api_extensions=${COMPUTE_API_EXTENSIONS:-"all"}
+ if [[ ! -z "$DISABLE_COMPUTE_API_EXTENSIONS" ]]; then
+ # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
+ compute_api_extensions=${COMPUTE_API_EXTENSIONS:-$(iniget $tmp_cfg_file compute-feature-enabled api_extensions | tr -d " ")}
+ # Remove disabled extensions
+ compute_api_extensions=$(remove_disabled_extensions $compute_api_extensions $DISABLE_COMPUTE_API_EXTENSIONS)
+ fi
+ iniset $TEMPEST_CONFIG compute-feature-enabled api_extensions $compute_api_extensions
+ # Neutron API Extensions
+ local network_api_extensions=${NETWORK_API_EXTENSIONS:-"all"}
+ if [[ ! -z "$DISABLE_NETWORK_API_EXTENSIONS" ]]; then
+ # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
+ network_api_extensions=${NETWORK_API_EXTENSIONS:-$(iniget $tmp_cfg_file network-feature-enabled api_extensions | tr -d " ")}
+ # Remove disabled extensions
+ network_api_extensions=$(remove_disabled_extensions $network_api_extensions $DISABLE_NETWORK_API_EXTENSIONS)
+ fi
+ iniset $TEMPEST_CONFIG network-feature-enabled api_extensions $network_api_extensions
+ # Swift API Extensions
+ local object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-"all"}
+ if [[ ! -z "$DISABLE_OBJECT_STORAGE_API_EXTENSIONS" ]]; then
+ # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
+ object_storage_api_extensions=${OBJECT_STORAGE_API_EXTENSIONS:-$(iniget $tmp_cfg_file object-storage-feature-enabled discoverable_apis | tr -d " ")}
+ # Remove disabled extensions
+ object_storage_api_extensions=$(remove_disabled_extensions $object_storage_api_extensions $DISABLE_STORAGE_API_EXTENSIONS)
+ fi
+ iniset $TEMPEST_CONFIG object-storage-feature-enabled discoverable_apis $object_storage_api_extensions
+ # Cinder API Extensions
+ local volume_api_extensions=${VOLUME_API_EXTENSIONS:-"all"}
+ if [[ ! -z "$DISABLE_VOLUME_API_EXTENSIONS" ]]; then
+ # Enabled extensions are either the ones explicitly specified or those available on the API endpoint
+ volume_api_extensions=${VOLUME_API_EXTENSIONS:-$(iniget $tmp_cfg_file volume-feature-enabled api_extensions | tr -d " ")}
+ # Remove disabled extensions
+ volume_api_extensions=$(remove_disabled_extensions $volume_api_extensions $DISABLE_VOLUME_API_EXTENSIONS)
+ fi
+ iniset $TEMPEST_CONFIG volume-feature-enabled api_extensions $volume_api_extensions
+
# Restore IFS
IFS=$ifs
}
diff --git a/stack.sh b/stack.sh
index 793b7dc..739d939 100755
--- a/stack.sh
+++ b/stack.sh
@@ -185,7 +185,7 @@
# Warn users who aren't on an explicitly supported distro, but allow them to
# override check and attempt installation with ``FORCE=yes ./stack``
-if [[ ! ${DISTRO} =~ (trusty|vivid|wily|7.0|wheezy|sid|testing|jessie|f22|f23|rhel7|kvmibm1) ]]; then
+if [[ ! ${DISTRO} =~ (trusty|wily|xenial|7.0|wheezy|sid|testing|jessie|f22|f23|rhel7|kvmibm1) ]]; then
echo "WARNING: this script has not been tested on $DISTRO"
if [[ "$FORCE" != "yes" ]]; then
die $LINENO "If you wish to run this script anyway run with FORCE=yes"
@@ -1251,6 +1251,7 @@
if is_service_enabled nova; then
echo_summary "Starting Nova"
start_nova
+ create_flavors
fi
if is_service_enabled cinder; then
echo_summary "Starting Cinder"
diff --git a/stackrc b/stackrc
index 17d6047..5dd837b 100644
--- a/stackrc
+++ b/stackrc
@@ -238,10 +238,6 @@
NEUTRON_FWAAS_REPO=${NEUTRON_FWAAS_REPO:-${GIT_BASE}/openstack/neutron-fwaas.git}
NEUTRON_FWAAS_BRANCH=${NEUTRON_FWAAS_BRANCH:-master}
-# neutron lbaas service
-NEUTRON_LBAAS_REPO=${NEUTRON_LBAAS_REPO:-${GIT_BASE}/openstack/neutron-lbaas.git}
-NEUTRON_LBAAS_BRANCH=${NEUTRON_LBAAS_BRANCH:-master}
-
# neutron vpnaas service
NEUTRON_VPNAAS_REPO=${NEUTRON_VPNAAS_REPO:-${GIT_BASE}/openstack/neutron-vpnaas.git}
NEUTRON_VPNAAS_BRANCH=${NEUTRON_VPNAAS_BRANCH:-master}
diff --git a/tools/generate-devstack-plugins-list.sh b/tools/generate-devstack-plugins-list.sh
index 82486f5..95f1331 100644
--- a/tools/generate-devstack-plugins-list.sh
+++ b/tools/generate-devstack-plugins-list.sh
@@ -68,6 +68,7 @@
# foobar `git://... <http://...>`__
# ...
+printf "\n\n"
title_underline ${name_col_len}
printf "%-${name_col_len}s %s\n" "Plugin Name" "URL"
title_underline ${name_col_len}
@@ -75,9 +76,13 @@
for plugin in ${sorted_plugins}; do
giturl="git://git.openstack.org/openstack/${plugin}"
gitlink="https://git.openstack.org/cgit/openstack/${plugin}"
- printf "%-${name_col_len}s %s\n" "${p}" "\`${giturl} <${gitlink}>\`__"
+ printf "%-${name_col_len}s %s\n" "${plugin}" "\`${giturl} <${gitlink}>\`__"
done
+title_underline ${name_col_len}
+
+printf "\n\n"
+
if [[ -r data/devstack-plugins-registry.footer ]]; then
cat data/devstack-plugins-registry.footer
fi
diff --git a/tools/worlddump.py b/tools/worlddump.py
index 72a257f..3ff22a9 100755
--- a/tools/worlddump.py
+++ b/tools/worlddump.py
@@ -76,6 +76,24 @@
print
+# This method gets a max openflow version supported by openvswitch.
+# For example 'ovs-ofctl --version' displays the following:
+#
+# ovs-ofctl (Open vSwitch) 2.0.2
+# Compiled Dec 9 2015 14:08:08
+# OpenFlow versions 0x1:0x4
+#
+# The above shows that openvswitch supports from OpenFlow10 to OpenFlow13.
+# This method gets max version searching 'OpenFlow versions 0x1:0x'.
+# And return a version value converted to an integer type.
+def _get_ofp_version():
+ process = subprocess.Popen(['ovs-ofctl', '--version'], stdout=subprocess.PIPE)
+ stdout, _ = process.communicate()
+ find_str = 'OpenFlow versions 0x1:0x'
+ offset = stdout.find(find_str)
+ return int(stdout[offset + len(find_str):-1]) - 1
+
+
def disk_space():
# the df output
_header("File System Summary")
@@ -143,11 +161,16 @@
# grenade), so there is no single place to determine the bridge names from.
# Hardcode for now.
bridges = ('br-int', 'br-tun', 'br-ex')
+ ofctl_cmds = ('show', 'dump-ports-desc', 'dump-ports', 'dump-flows')
+ ofp_max = _get_ofp_version()
+ vers = 'OpenFlow10'
+ for i in range(ofp_max + 1):
+ vers += ',OpenFlow1' + str(i)
_dump_cmd("sudo ovs-vsctl show")
- for bridge in bridges:
- _dump_cmd("sudo ovs-ofctl show %s" % bridge)
- for bridge in bridges:
- _dump_cmd("sudo ovs-ofctl dump-flows %s" % bridge)
+ for ofctl_cmd in ofctl_cmds:
+ for bridge in bridges:
+ args = {'vers': vers, 'cmd': ofctl_cmd, 'bridge': bridge}
+ _dump_cmd("sudo ovs-ofctl --protocols=%(vers)s %(cmd)s %(bridge)s" % args)
def process_list():