Support more parameters for senlinclient creation
This patch revises senlinclient initialization method to allow user to define more parameters like region_name, interface when creating senlinclient. Change-Id: I490c454ddee6a7d880dab131b1854a47a92b930b Closes-Bug: #1562730
This commit is contained in:
parent
9c261fd848
commit
02f5a76d0a
@ -124,6 +124,15 @@ class Resource(base.Resource):
|
||||
|
||||
|
||||
def create_connection(prof=None, user_agent=None, **kwargs):
|
||||
if not prof:
|
||||
prof = profile.Profile()
|
||||
interface = kwargs.pop('interface', None)
|
||||
region_name = kwargs.pop('region_name', None)
|
||||
if interface:
|
||||
prof.set_interface('clustering', interface)
|
||||
if region_name:
|
||||
prof.set_region('clustering', region_name)
|
||||
|
||||
try:
|
||||
conn = connection.Connection(profile=prof, user_agent=user_agent,
|
||||
**kwargs)
|
||||
|
@ -14,6 +14,9 @@ import mock
|
||||
import os
|
||||
import testtools
|
||||
|
||||
from openstack import connection as sdk_connection
|
||||
from openstack import profile as sdk_profile
|
||||
|
||||
from senlinclient.common import sdk
|
||||
|
||||
|
||||
@ -54,3 +57,47 @@ class TestSdk(testtools.TestCase):
|
||||
mock_prof.ALL = 'mock_prof.ALL'
|
||||
sdk.ProfileAction.set_option('interface', 'test=val1')
|
||||
mock_prof.set_interface.assert_called_once_with('test', 'val1')
|
||||
|
||||
@mock.patch.object(sdk_connection, 'Connection')
|
||||
def test_create_connection_with_profile(self, mock_connection):
|
||||
mock_prof = mock.Mock()
|
||||
mock_conn = mock.Mock()
|
||||
mock_connection.return_value = mock_conn
|
||||
kwargs = {
|
||||
'user_id': '123',
|
||||
'password': 'abc',
|
||||
'auth_url': 'test_url'
|
||||
}
|
||||
res = sdk.create_connection(mock_prof, **kwargs)
|
||||
mock_connection.assert_called_once_with(profile=mock_prof,
|
||||
user_agent=None,
|
||||
user_id='123',
|
||||
password='abc',
|
||||
auth_url='test_url')
|
||||
self.assertEqual(mock_conn, res)
|
||||
|
||||
@mock.patch.object(sdk_connection, 'Connection')
|
||||
@mock.patch.object(sdk_profile, 'Profile')
|
||||
def test_create_connection_without_profile(self, mock_profile,
|
||||
mock_connection):
|
||||
mock_prof = mock.Mock()
|
||||
mock_conn = mock.Mock()
|
||||
mock_profile.return_value = mock_prof
|
||||
mock_connection.return_value = mock_conn
|
||||
kwargs = {
|
||||
'interface': 'public',
|
||||
'region_name': 'RegionOne',
|
||||
'user_id': '123',
|
||||
'password': 'abc',
|
||||
'auth_url': 'test_url'
|
||||
}
|
||||
res = sdk.create_connection(**kwargs)
|
||||
|
||||
mock_prof.set_interface.assert_called_once_with('clustering', 'public')
|
||||
mock_prof.set_region.assert_called_once_with('clustering', 'RegionOne')
|
||||
mock_connection.assert_called_once_with(profile=mock_prof,
|
||||
user_agent=None,
|
||||
user_id='123',
|
||||
password='abc',
|
||||
auth_url='test_url')
|
||||
self.assertEqual(mock_conn, res)
|
||||
|
Loading…
x
Reference in New Issue
Block a user