components/openstack/nova/patches/10-launchpad-1486590.patch
branchs11u3-sru
changeset 6035 c9748fcc32de
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/openstack/nova/patches/10-launchpad-1486590.patch	Fri May 20 17:42:29 2016 -0400
@@ -0,0 +1,74 @@
+This patch has been integrated into Nova 11.0.0 in Liberty but has not
+yet been back-ported to Kilo.
+
+From 9095b364bd8fb1e4f282d7aca44825eca1243b53 Mon Sep 17 00:00:00 2001
+From: Davanum Srinivas <[email protected]>
+Date: Tue, 18 Aug 2015 22:26:36 -0400
+Subject: Expose keystoneclient's session and auth plugin loading parameters
+
+In change id (I7b3b825737dde333c8d88019d814304cbefdbfc7) support
+was added to be able to specify and use the standard session and
+auth plugin helpers from keystoneclient to standardize the
+options available for talking to neutron.
+
+However, these config options do not show up when we generate
+the sample configuration file. Jamie Lennox has details in his
+blog as well:
+http://www.jamielennox.net/blog/2015/02/17/loading-authentication-plugins/
+
+Since there are many auth plugins, we generate config params for
+a few common ones.
+
+DocImpact
+
+Closes-Bug: #1486590
+Change-Id: Id6b3ff845c2388fa01b1d3b28093f5bdf27136ff
+---
+
+--- nova-2015.1.2/nova/network/neutronv2/api.py.orig	2015-10-13 07:52:44.000000000 -0700
++++ nova-2015.1.2/nova/network/neutronv2/api.py	2016-01-05 22:35:48.184784998 -0800
+@@ -15,6 +15,7 @@
+ #    under the License.
+ #
+ 
++import copy
+ import time
+ import uuid
+ 
+@@ -123,8 +124,8 @@ deprecations = {'cafile': [cfg.Deprecate
+                 'timeout': [cfg.DeprecatedOpt('url_timeout',
+                                               group=NEUTRON_GROUP)]}
+ 
+-session.Session.register_conf_options(CONF, NEUTRON_GROUP,
+-                                      deprecated_opts=deprecations)
++_neutron_options = session.Session.register_conf_options(
++    CONF, NEUTRON_GROUP, deprecated_opts=deprecations)
+ auth.register_conf_options(CONF, NEUTRON_GROUP)
+ 
+ 
+@@ -139,6 +140,25 @@ _SESSION = None
+ _ADMIN_AUTH = None
+ 
+ 
++def list_opts():
++    list = copy.deepcopy(_neutron_options)
++    list.insert(0, auth.get_common_conf_options()[0])
++    # NOTE(dims): There are a lot of auth plugins, we just generate
++    # the config options for a few common ones
++    plugins = ['password', 'v2password', 'v3password']
++    for name in plugins:
++        for plugin_option in auth.get_plugin_class(name).get_options():
++            found = False
++            for option in list:
++                if option.name == plugin_option.name:
++                    found = True
++                    break
++            if not found:
++                list.append(plugin_option)
++    list.sort(key=lambda x: x.name)
++    return [(NEUTRON_GROUP, list)]
++
++
+ def reset_state():
+     global _ADMIN_AUTH
+     global _SESSION