Add option for nova endpoint type
When the neutron notification to nova was updated to use novaclient the nova_url parameter was disabled. This prevents administrators from using anything but the publicURL as the proper endpoint to notify nova. This patch adds an option to pass on to novaclient for the endpoint_type so that the administrator can set the notification url to public, internal or admin. Change-Id: I405f761944449cab6b8c8895f98419f79cd74cad Closes-Bug: #1478471 DocImpact: Need to add a new option to the neutron configuration reference.
This commit is contained in:
parent
c029fcba7e
commit
7dad96deb4
@ -204,6 +204,12 @@ nova_opts = [
|
||||
cfg.StrOpt('region_name',
|
||||
help=_('Name of nova region to use. Useful if keystone manages'
|
||||
' more than one region.')),
|
||||
cfg.StrOpt('endpoint_type',
|
||||
default='public',
|
||||
choices=['public', 'admin', 'internal'],
|
||||
help=_('Type of the nova endpoint to use. This endpoint will'
|
||||
' be looked up in the keystone catalog and should be'
|
||||
' one of public, internal or admin.')),
|
||||
]
|
||||
cfg.CONF.register_opts(nova_opts, group=NOVA_CONF_SECTION)
|
||||
|
||||
|
@ -60,6 +60,7 @@ class Notifier(object):
|
||||
NOVA_API_VERSION,
|
||||
session=session,
|
||||
region_name=cfg.CONF.nova.region_name,
|
||||
endpoint_type=cfg.CONF.nova.endpoint_type,
|
||||
extensions=extensions)
|
||||
self.batch_notifier = batch_notifier.BatchNotifier(
|
||||
cfg.CONF.send_events_interval, self.send_events)
|
||||
|
@ -309,3 +309,23 @@ class TestNovaNotify(base.BaseTestCase):
|
||||
event = self.nova_notifier.create_port_changed_event('delete_port',
|
||||
{}, returned_obj)
|
||||
self.assertEqual(expected_event, event)
|
||||
|
||||
@mock.patch('novaclient.client.Client')
|
||||
def test_endpoint_types(self, mock_client):
|
||||
nova.Notifier()
|
||||
mock_client.assert_called_once_with(
|
||||
nova.NOVA_API_VERSION,
|
||||
session=mock.ANY,
|
||||
region_name=cfg.CONF.nova.region_name,
|
||||
endpoint_type='public',
|
||||
extensions=mock.ANY)
|
||||
|
||||
mock_client.reset_mock()
|
||||
cfg.CONF.set_override('endpoint_type', 'internal', 'nova')
|
||||
nova.Notifier()
|
||||
mock_client.assert_called_once_with(
|
||||
nova.NOVA_API_VERSION,
|
||||
session=mock.ANY,
|
||||
region_name=cfg.CONF.nova.region_name,
|
||||
endpoint_type='internal',
|
||||
extensions=mock.ANY)
|
||||
|
Loading…
Reference in New Issue
Block a user