Merge "Make sure we use config defaults in profile compat code"
This commit is contained in:
commit
93221709fe
|
@ -23,6 +23,7 @@ from six.moves import urllib
|
|||
|
||||
import openstack
|
||||
from openstack import _log
|
||||
from openstack.config import defaults as config_defaults
|
||||
from openstack.config import exceptions
|
||||
|
||||
|
||||
|
@ -52,8 +53,10 @@ def from_session(session, name=None, config=None, **kwargs):
|
|||
# If someone is constructing one of these from a Session, then they are
|
||||
# not using a named config. Use the hostname of their auth_url instead.
|
||||
name = name or urllib.parse.urlparse(session.auth.auth_url).hostname
|
||||
config = config or {}
|
||||
return CloudRegion(name=name, session=session, config=config, **kwargs)
|
||||
config_dict = config_defaults.get_defaults()
|
||||
config_dict.update(config or {})
|
||||
return CloudRegion(
|
||||
name=name, session=session, config=config_dict, **kwargs)
|
||||
|
||||
|
||||
class CloudRegion(object):
|
||||
|
|
|
@ -82,6 +82,7 @@ from six.moves import urllib
|
|||
from openstack import _log
|
||||
import openstack.config
|
||||
from openstack.config import cloud_region
|
||||
from openstack.config import defaults as config_defaults
|
||||
from openstack import exceptions
|
||||
from openstack import service_description
|
||||
from openstack import task_manager
|
||||
|
@ -188,10 +189,14 @@ class Connection(object):
|
|||
self.config = openstack_config.get_one(
|
||||
cloud=cloud, validate=session is None, **kwargs)
|
||||
|
||||
self.task_manager = task_manager.TaskManager(
|
||||
name=':'.join([
|
||||
if self.config.name:
|
||||
tm_name = ':'.join([
|
||||
self.config.name,
|
||||
self.config.region_name or 'unknown']))
|
||||
self.config.region_name or 'unknown'])
|
||||
else:
|
||||
tm_name = self.config.region_name or 'unknown'
|
||||
|
||||
self.task_manager = task_manager.TaskManager(name=tm_name)
|
||||
|
||||
if session:
|
||||
# TODO(mordred) Expose constructor option for this in OCC
|
||||
|
@ -228,9 +233,12 @@ class Connection(object):
|
|||
key = cloud_region._make_key('api_version', service_type)
|
||||
kwargs[key] = service.version
|
||||
|
||||
config_kwargs = config_defaults.get_defaults()
|
||||
config_kwargs.update(kwargs)
|
||||
config = cloud_region.CloudRegion(
|
||||
name=name, region_name=region_name, config=kwargs)
|
||||
name=name, region_name=region_name, config=config_kwargs)
|
||||
config._auth = authenticator
|
||||
return config
|
||||
|
||||
def add_service(self, service):
|
||||
"""Add a service to the Connection.
|
||||
|
|
|
@ -18,6 +18,7 @@ import mock
|
|||
|
||||
from openstack import connection
|
||||
import openstack.config
|
||||
from openstack import profile
|
||||
from openstack.tests.unit import base
|
||||
|
||||
|
||||
|
@ -174,6 +175,21 @@ class TestConnection(base.RequestsMockTestCase):
|
|||
sot = connection.from_config(cloud="cacert")
|
||||
self.assertEqual(CONFIG_CACERT, sot.session.verify)
|
||||
|
||||
def test_from_profile(self):
|
||||
"""Copied from openstackclient/network/client.py make_client."""
|
||||
API_NAME = "network"
|
||||
instance = self.cloud_config
|
||||
|
||||
prof = profile.Profile()
|
||||
prof.set_region(API_NAME, instance.region_name)
|
||||
prof.set_version(API_NAME, instance.get_api_version(API_NAME))
|
||||
prof.set_interface(API_NAME, instance.get_interface(API_NAME))
|
||||
connection.Connection(
|
||||
authenticator=instance.get_session().auth,
|
||||
verify=instance.get_session().verify,
|
||||
cert=instance.get_session().cert,
|
||||
profile=prof)
|
||||
|
||||
|
||||
class TestAuthorize(base.RequestsMockTestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue