Merge "Strip endpoint version in OSC plugin"

This commit is contained in:
Jenkins
2017-01-25 05:31:24 +00:00
committed by Gerrit Code Review
4 changed files with 49 additions and 0 deletions

View File

@@ -46,6 +46,12 @@ def make_client(instance):
os_ironic_api_version=instance._api_version[API_NAME],
session=instance.session,
region_name=instance._region_name,
# NOTE(vdrok): This will be set as endpoint_override, and the Client
# class will be able to do the version stripping if needed
endpoint=instance.get_endpoint_for_service_type(
API_NAME, interface=instance.interface,
region_name=instance._region_name
)
)
return client

View File

@@ -35,6 +35,10 @@ class FakeClientManager(object):
def __init__(self):
self.identity = None
self.auth_ref = None
self.interface = 'public'
self._region_name = 'RegionOne'
self.session = 'fake session'
self._api_version = {'baremetal': '1.6'}
class FakeResource(object):

View File

@@ -0,0 +1,35 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import mock
import testtools
from ironicclient.osc import plugin
from ironicclient.tests.unit.osc import fakes
from ironicclient.v1 import client
class MakeClientTest(testtools.TestCase):
@mock.patch.object(client, 'Client', autospec=True)
def test_make_client(self, mock_client):
instance = fakes.FakeClientManager()
instance.get_endpoint_for_service_type = mock.Mock(
return_value='endpoint')
plugin.make_client(instance)
mock_client.assert_called_once_with(os_ironic_api_version='1.6',
session=instance.session,
region_name=instance._region_name,
endpoint='endpoint')
instance.get_endpoint_for_service_type.assert_called_once_with(
'baremetal', region_name=instance._region_name,
interface=instance.interface)

View File

@@ -0,0 +1,4 @@
---
fixes:
- Fixes an issue with OpenStackClient plugin not being able to work with
versioned ironic endpoints.