Browse Source

Worker should send NOTIFY also to all servers in 'also_notifies' pool settings.

Change-Id: I0a85c5df5c323d6f636c8cb92ee5201c14cdb306
Closes-Bug: #1785769
(cherry picked from commit 6e79c2e081)
changes/65/720765/3
Dmitry Galkin 2 years ago
committed by Michael Johnson
parent
commit
e4ee680f24
2 changed files with 23 additions and 4 deletions
  1. +3
    -1
      designate/tests/test_workers/test_service.py
  2. +20
    -3
      designate/worker/service.py

+ 3
- 1
designate/tests/test_workers/test_service.py View File

@@ -60,6 +60,8 @@ class TestService(TestCase):
self.service._pool = mock.Mock()
self.service.get_pool = mock.Mock()
pool = mock.Mock()
pool.also_notifies = mock.MagicMock()
pool.also_notifies.__iter__.return_value = []
self.service.get_pool.return_value = pool

self.service._do_zone_action(self.context, self.zone)
@@ -72,7 +74,7 @@ class TestService(TestCase):
self.zone.action
)

self.service._executor.run.assert_called_with(ZoneAction())
self.service._executor.run.assert_called_with([ZoneAction()])

def test_get_pool(self):
pool = mock.Mock()


+ 20
- 3
designate/worker/service.py View File

@@ -33,6 +33,13 @@ LOG = logging.getLogger(__name__)
CONF = cfg.CONF


class AlsoNotifyTask(object):
"""
Placeholder to define options for also_notify targets
"""
pass


class Service(service.RPCService, service.Service):
RPC_API_VERSION = '1.0'

@@ -119,10 +126,20 @@ class Service(service.RPCService, service.Service):

def _do_zone_action(self, context, zone):
pool = self.get_pool(zone.pool_id)
task = zonetasks.ZoneAction(
all_tasks = []
all_tasks.append(zonetasks.ZoneAction(
self.executor, context, pool, zone, zone.action
)
return self.executor.run(task)
))

# Send a NOTIFY to each also-notifies
for also_notify in pool.also_notifies:
notify_target = AlsoNotifyTask()
notify_target.options = {'host': also_notify.host,
'port': also_notify.port}
all_tasks.append(zonetasks.SendNotify(self.executor,
zone,
notify_target))
return self.executor.run(all_tasks)

def create_zone(self, context, zone):
"""


Loading…
Cancel
Save