Restart services when trigger from principle
Check to see if a restart trigger has been sent by the principle, if it has then right the trigger uuid in to the neutron.conf to trigger a service restart Change-Id: I19649cb73dad94f4fe24412c0b8c37a28f30047d Partial-Bug: 1571634
This commit is contained in:
parent
1dfe139242
commit
236bb562f1
@ -251,6 +251,20 @@ class SharedSecretContext(OSContextGenerator):
|
||||
return ctxt
|
||||
|
||||
|
||||
class RemoteRestartContext(OSContextGenerator):
|
||||
|
||||
def __call__(self):
|
||||
for rid in relation_ids('neutron-plugin'):
|
||||
for unit in related_units(rid):
|
||||
restart_uuid = relation_get(
|
||||
attribute='restart-trigger',
|
||||
rid=rid,
|
||||
unit=unit)
|
||||
if restart_uuid:
|
||||
return {'restart_trigger': restart_uuid}
|
||||
return {}
|
||||
|
||||
|
||||
class APIIdentityServiceContext(context.IdentityServiceContext):
|
||||
|
||||
def __init__(self):
|
||||
|
@ -114,6 +114,7 @@ BASE_RESOURCE_MAP = OrderedDict([
|
||||
(NEUTRON_CONF, {
|
||||
'services': ['neutron-plugin-openvswitch-agent'],
|
||||
'contexts': [neutron_ovs_context.OVSPluginContext(),
|
||||
neutron_ovs_context.RemoteRestartContext(),
|
||||
context.AMQPContext(ssl_dir=NEUTRON_CONF_DIR),
|
||||
context.ZeroMQContext(),
|
||||
context.NotificationDriverContext()],
|
||||
|
@ -3,6 +3,7 @@
|
||||
# [ WARNING ]
|
||||
# Configuration file maintained by Juju. Local changes may be overwritten.
|
||||
# Config managed by neutron-openvswitch charm
|
||||
# Service restart triggered by principle using key: {{ restart_trigger }}
|
||||
###############################################################################
|
||||
[DEFAULT]
|
||||
verbose = {{ verbose }}
|
||||
|
@ -13,6 +13,9 @@ TO_PATCH = [
|
||||
'network_get_primary_address',
|
||||
'glob',
|
||||
'PCINetDevices',
|
||||
'relation_ids',
|
||||
'relation_get',
|
||||
'related_units',
|
||||
]
|
||||
|
||||
|
||||
@ -464,3 +467,26 @@ class TestDPDKDeviceContext(CharmTestCase):
|
||||
'driver': 'uio_pci_generic'
|
||||
})
|
||||
self.config.assert_called_with('dpdk-driver')
|
||||
|
||||
|
||||
class TestRemoteRestartContext(CharmTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestRemoteRestartContext, self).setUp(context,
|
||||
TO_PATCH)
|
||||
self.config.side_effect = self.test_config.get
|
||||
|
||||
def test_restart_trigger_present(self):
|
||||
self.relation_ids.return_value = ['rid1']
|
||||
self.related_units.return_value = ['nova-compute/0']
|
||||
self.relation_get.return_value = '8f73-f3adb96a90d8'
|
||||
self.assertEquals(
|
||||
context.RemoteRestartContext()(),
|
||||
{'restart_trigger': '8f73-f3adb96a90d8'}
|
||||
)
|
||||
|
||||
def test_restart_trigger_absent(self):
|
||||
self.relation_ids.return_value = ['rid1']
|
||||
self.related_units.return_value = ['nova-compute/0']
|
||||
self.relation_get.return_value = None
|
||||
self.assertEquals(context.RemoteRestartContext()(), {})
|
||||
|
Loading…
Reference in New Issue
Block a user