Create DRAgentRelationAdapters
Override the amqp adapter the correct way by creating a new relation adapters class. Use the newer transport_url rather than the older rabbit_* settings for amqp messaging. Change-Id: I22b81e25d0e9fc227de4e000540d350c2a635765
This commit is contained in:
parent
ae26c6f642
commit
dc79712d49
4
.gitreview
Normal file
4
.gitreview
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[gerrit]
|
||||||
|
host=review.openstack.org
|
||||||
|
port=29418
|
||||||
|
project=openstack/charm-neutron-dynamic-routing.git
|
@ -118,6 +118,11 @@ class TransportURLAdapter(os_adapters.RabbitMQRelationAdapter):
|
|||||||
TODO: Move to charms.openstack.adapters
|
TODO: Move to charms.openstack.adapters
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
DEFAULT_PORT = '5672'
|
||||||
|
|
||||||
|
def __init__(self, relation):
|
||||||
|
super(TransportURLAdapter, self).__init__(relation)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def transport_url(self):
|
def transport_url(self):
|
||||||
"""Return the transport URL for communicating with rabbitmq
|
"""Return the transport URL for communicating with rabbitmq
|
||||||
@ -143,7 +148,17 @@ class TransportURLAdapter(os_adapters.RabbitMQRelationAdapter):
|
|||||||
|
|
||||||
:returns: int port number
|
:returns: int port number
|
||||||
"""
|
"""
|
||||||
return self.ssl_port or 5672
|
return self.ssl_port or self.DEFAULT_PORT
|
||||||
|
|
||||||
|
|
||||||
|
class DRAgentRelationAdapters(os_adapters.OpenStackRelationAdapters):
|
||||||
|
|
||||||
|
"""
|
||||||
|
Adapters collection to append specific adapters for Neutron Dynamic Routing
|
||||||
|
"""
|
||||||
|
relation_adapters = {
|
||||||
|
'amqp': TransportURLAdapter,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class DRAgentCharm(charms_openstack.charm.OpenStackCharm):
|
class DRAgentCharm(charms_openstack.charm.OpenStackCharm):
|
||||||
@ -157,11 +172,7 @@ class DRAgentCharm(charms_openstack.charm.OpenStackCharm):
|
|||||||
default_service = 'neutron-bgp-dragent'
|
default_service = 'neutron-bgp-dragent'
|
||||||
services = [default_service]
|
services = [default_service]
|
||||||
required_relations = ['amqp']
|
required_relations = ['amqp']
|
||||||
|
adapters_class = DRAgentRelationAdapters
|
||||||
adapters_class = os_adapters.OpenStackRelationAdapters
|
|
||||||
adapters_class.relation_adapters = {
|
|
||||||
'amqp': TransportURLAdapter,
|
|
||||||
}
|
|
||||||
|
|
||||||
restart_map = {
|
restart_map = {
|
||||||
NEUTRON_CONF: services,
|
NEUTRON_CONF: services,
|
||||||
|
@ -6,12 +6,12 @@
|
|||||||
verbose = {{ options.verbose }}
|
verbose = {{ options.verbose }}
|
||||||
debug = {{ options.debug }}
|
debug = {{ options.debug }}
|
||||||
|
|
||||||
|
{% if amqp.transport_url -%}
|
||||||
|
transport_url = {{ amqp.transport_url }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
[agent]
|
[agent]
|
||||||
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
|
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
|
||||||
|
|
||||||
{% include "parts/section-rabbitmq-oslo" %}
|
|
||||||
|
|
||||||
{% include "parts/section-oslo-notifications" %}
|
|
||||||
|
|
||||||
[oslo_concurrency]
|
[oslo_concurrency]
|
||||||
lock_path = /var/lock/neutron
|
lock_path = /var/lock/neutron
|
||||||
|
@ -4,9 +4,9 @@ tests:
|
|||||||
configure:
|
configure:
|
||||||
- zaza.charm_tests.dragent.configure.setup
|
- zaza.charm_tests.dragent.configure.setup
|
||||||
gate_bundles:
|
gate_bundles:
|
||||||
- xenial-queens-functional
|
|
||||||
- xenial-pike-functional
|
|
||||||
smoke_bundles:
|
|
||||||
- xenial-queens-functional
|
|
||||||
dev_bundles:
|
|
||||||
- bionic-queens-functional
|
- bionic-queens-functional
|
||||||
|
- xenial-pike-functional
|
||||||
|
- xenial-queens-functional
|
||||||
|
smoke_bundles:
|
||||||
|
- bionic-queens-functional
|
||||||
|
dev_bundles:
|
||||||
|
@ -6,7 +6,9 @@ skipsdist = True
|
|||||||
setenv = VIRTUAL_ENV={envdir}
|
setenv = VIRTUAL_ENV={envdir}
|
||||||
PYTHONHASHSEED=0
|
PYTHONHASHSEED=0
|
||||||
whitelist_externals = juju
|
whitelist_externals = juju
|
||||||
passenv = HOME TERM CS_API_*
|
passenv =
|
||||||
|
HOME TERM CS_API_* FIP_RANGE AMULET_* MOJO_* NET_ID GATEWAY NAME_SERVER
|
||||||
|
CIDR_EXT FIP_RANGE VIP_RANGE
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
install_command =
|
install_command =
|
||||||
pip install {opts} {packages}
|
pip install {opts} {packages}
|
||||||
|
6
tox.ini
6
tox.ini
@ -3,7 +3,7 @@
|
|||||||
# within individual charm repos.
|
# within individual charm repos.
|
||||||
[tox]
|
[tox]
|
||||||
skipsdist = True
|
skipsdist = True
|
||||||
envlist = pep8,py3
|
envlist = pep8,py35
|
||||||
skip_missing_interpreters = True
|
skip_missing_interpreters = True
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
@ -32,13 +32,13 @@ basepython = python2.7
|
|||||||
whitelist_externals = true
|
whitelist_externals = true
|
||||||
commands = true
|
commands = true
|
||||||
|
|
||||||
[testenv:py3]
|
[testenv:py35]
|
||||||
basepython = python3
|
basepython = python3
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
commands = ostestr {posargs}
|
commands = ostestr {posargs}
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
basepython = python3.5
|
basepython = python3
|
||||||
deps = -r{toxinidir}/test-requirements.txt
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
commands = flake8 {posargs} src unit_tests
|
commands = flake8 {posargs} src unit_tests
|
||||||
|
|
||||||
|
@ -20,3 +20,14 @@ sys.path.append('src/lib')
|
|||||||
# Mock out charmhelpers so that we can test without it.
|
# Mock out charmhelpers so that we can test without it.
|
||||||
import charms_openstack.test_mocks # noqa
|
import charms_openstack.test_mocks # noqa
|
||||||
charms_openstack.test_mocks.mock_charmhelpers()
|
charms_openstack.test_mocks.mock_charmhelpers()
|
||||||
|
|
||||||
|
|
||||||
|
def mock_more_stuff():
|
||||||
|
charmhelpers = charms_openstack.test_mocks.charmhelpers
|
||||||
|
sys.modules['charmhelpers.core.hookenv.charm_dir'] = (
|
||||||
|
charmhelpers.core.hookenv.charm_dir
|
||||||
|
)
|
||||||
|
charmhelpers.core.hookenv.charm_dir.return_value = "/tmp"
|
||||||
|
|
||||||
|
|
||||||
|
mock_more_stuff()
|
||||||
|
@ -85,8 +85,8 @@ class TestTransportURLAdapter(Helper):
|
|||||||
self.assertEqual(tua.transport_url, _expected)
|
self.assertEqual(tua.transport_url, _expected)
|
||||||
|
|
||||||
def test_port(self):
|
def test_port(self):
|
||||||
_ssl_port = 2765
|
_ssl_port = '2765'
|
||||||
_port = 5672
|
_port = '5672'
|
||||||
amqp = mock.MagicMock()
|
amqp = mock.MagicMock()
|
||||||
tua = dragent.TransportURLAdapter(amqp)
|
tua = dragent.TransportURLAdapter(amqp)
|
||||||
# Default Port
|
# Default Port
|
||||||
|
Loading…
Reference in New Issue
Block a user