From a7f93b09bbdab093dce7a0ece41dfbf37200f970 Mon Sep 17 00:00:00 2001
From: Christian Berendt <berendt@betacloud-solutions.de>
Date: Thu, 16 Jun 2016 12:55:55 +0200
Subject: [PATCH] Make Neutron QoS service plugin configurable

This introduces a new configuration parameter neutron_enable_qos to
be able to enable the Neutron QoS service plugin.

More details about the Neutron QoS service plugin are available at:

http://docs.openstack.org/liberty/networking-guide/adv-config-qos.html

Change-Id: I8525bf4dce5f1e225f72a4e1c3760b64a36b17f6
Closes-bug: #1593183
Implements: bp netowrking-qos
---
 ansible/group_vars/all.yml                      | 1 +
 ansible/roles/neutron/templates/ml2_conf.ini.j2 | 4 ++++
 ansible/roles/neutron/templates/neutron.conf.j2 | 2 +-
 etc/kolla/globals.yml                           | 1 +
 4 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 007919e9b3..d3b66fb621 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -205,6 +205,7 @@ enable_mistral: "no"
 enable_mongodb: "no"
 enable_murano: "no"
 enable_neutron_lbaas: "no"
+enable_neutron_qos: "no"
 enable_swift: "no"
 
 ironic_keystone_user: "ironic"
diff --git a/ansible/roles/neutron/templates/ml2_conf.ini.j2 b/ansible/roles/neutron/templates/ml2_conf.ini.j2
index 204cf80615..3cb4f157fd 100644
--- a/ansible/roles/neutron/templates/ml2_conf.ini.j2
+++ b/ansible/roles/neutron/templates/ml2_conf.ini.j2
@@ -15,6 +15,10 @@ mechanism_drivers = openvswitch,l2population
 mechanism_drivers = linuxbridge,l2population
 {% endif %}
 
+{% if enable_neutron_qos | bool %}
+extension_drivers = qos
+{% endif %}
+
 [ml2_type_vlan]
 {% if enable_ironic | bool %}
 network_vlan_ranges = physnet1
diff --git a/ansible/roles/neutron/templates/neutron.conf.j2 b/ansible/roles/neutron/templates/neutron.conf.j2
index a15a0007df..d50ac538dc 100644
--- a/ansible/roles/neutron/templates/neutron.conf.j2
+++ b/ansible/roles/neutron/templates/neutron.conf.j2
@@ -32,7 +32,7 @@ host = {{ ansible_hostname }}_{{ item }}
 
 allow_overlapping_ips = true
 core_plugin = ml2
-service_plugins = router{% if enable_neutron_lbaas | bool %},neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2{% endif %}
+service_plugins = router{% if enable_neutron_lbaas | bool %},neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2{% endif %}{% if enable_neutron_qos | bool %},qos{% endif %}
 
 {% if enable_neutron_lbaas | bool %}
 [service_providers]
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index c32aa87db5..edce80053d 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -119,6 +119,7 @@ neutron_external_interface: "eth1"
 #enable_mongodb: "no"
 #enable_murano: "no"
 #enable_neutron_lbaas: "no"
+#enable_neutron_qos: "no"
 #enable_swift: "no"