From 9226b291873356f950ec8f8ba0f0ade4206cbe18 Mon Sep 17 00:00:00 2001 From: Brandon Logan Date: Wed, 6 May 2015 01:47:59 -0500 Subject: [PATCH] Fix queue producer handler to send ids Also renaming queueworker.py to controllerworker.py to be more obvious what it is. This patch should complete the api to queue to controller worker workflow (i.e. it should work). Change-Id: Id924e83674dab1a5f13e57533dd5272c3d667b7d Closes-Bug: #1452141 --- octavia/api/v1/handlers/queue/producer.py | 12 ++-- .../cmd/{queueworker.py => octavia_worker.py} | 3 +- .../api/v1/handlers/queue/test_producer.py | 62 ++++++++++--------- setup.cfg | 2 +- 4 files changed, 40 insertions(+), 39 deletions(-) rename octavia/cmd/{queueworker.py => octavia_worker.py} (99%) diff --git a/octavia/api/v1/handlers/queue/producer.py b/octavia/api/v1/handlers/queue/producer.py index 5cead3fbaa..3604e901e9 100644 --- a/octavia/api/v1/handlers/queue/producer.py +++ b/octavia/api/v1/handlers/queue/producer.py @@ -52,33 +52,33 @@ class BaseProducer(abstract_handler.BaseObjectHandler): topic=topic, version="1.0", fanout=False) self.client = messaging.RPCClient(self.transport, target=self.target) - def create(self, model_id): + def create(self, model): """Sends a create message to the controller via oslo.messaging :param data_model: """ - kw = {"{0}_id".format(self.payload_class): model_id} + kw = {"{0}_id".format(self.payload_class): model.id} method_name = "create_{0}".format(self.payload_class) self.client.cast({}, method_name, **kw) - def update(self, model_id, updated_dict): + def update(self, model, updated_dict): """sends an update message to the controller via oslo.messaging :param updated_model: :param data_model: """ kw = {"{0}_updates".format(self.payload_class): updated_dict, - "{0}_id".format(self.payload_class): model_id} + "{0}_id".format(self.payload_class): model.id} method_name = "update_{0}".format(self.payload_class) self.client.cast({}, method_name, **kw) - def delete(self, model_id): + def delete(self, model): """sends a delete message to the controller via oslo.messaging :param updated_model: :param data_model: """ - kw = {"{0}_id".format(self.payload_class): model_id} + kw = {"{0}_id".format(self.payload_class): model.id} method_name = "delete_{0}".format(self.payload_class) self.client.cast({}, method_name, **kw) diff --git a/octavia/cmd/queueworker.py b/octavia/cmd/octavia_worker.py similarity index 99% rename from octavia/cmd/queueworker.py rename to octavia/cmd/octavia_worker.py index ee118b3295..204a5c6f73 100755 --- a/octavia/cmd/queueworker.py +++ b/octavia/cmd/octavia_worker.py @@ -15,13 +15,12 @@ import sys import eventlet +eventlet.monkey_patch() from oslo_log import log as logging from octavia.common import service from octavia.controller.queue import consumer -eventlet.monkey_patch() - LOG = logging.getLogger(__name__) diff --git a/octavia/tests/unit/api/v1/handlers/queue/test_producer.py b/octavia/tests/unit/api/v1/handlers/queue/test_producer.py index 92aa4b2270..835e9c4317 100644 --- a/octavia/tests/unit/api/v1/handlers/queue/test_producer.py +++ b/octavia/tests/unit/api/v1/handlers/queue/test_producer.py @@ -37,6 +37,8 @@ class TestProducer(base.TestCase): def setUp(self): super(TestProducer, self).setUp() self.config = fixture.Config() + self.mck_model = mock.Mock() + self.mck_model.id = '10' config.cfg.CONF.set_override('topic', 'OCTAVIA_PROV', group='oslo_messaging') mck_target = mock.patch( @@ -56,110 +58,110 @@ class TestProducer(base.TestCase): def test_create_loadbalancer(self): p = producer.LoadBalancerProducer() - p.create(10) - kw = {'load_balancer_id': 10} + p.create(self.mck_model) + kw = {'load_balancer_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'create_load_balancer', **kw) def test_delete_loadbalancer(self): p = producer.LoadBalancerProducer() - p.delete(10) - kw = {'load_balancer_id': 10} + p.delete(self.mck_model) + kw = {'load_balancer_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'delete_load_balancer', **kw) def test_update_loadbalancer(self): p = producer.LoadBalancerProducer() - p.update(10, {'admin_state_up': False}) + p.update(self.mck_model, {'admin_state_up': False}) kw = {'load_balancer_updates': {'admin_state_up': False}, - 'load_balancer_id': 10} + 'load_balancer_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'update_load_balancer', **kw) def test_create_listener(self): p = producer.ListenerProducer() - p.create(10) - kw = {'listener_id': 10} + p.create(self.mck_model) + kw = {'listener_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'create_listener', **kw) def test_delete_listener(self): p = producer.ListenerProducer() - p.delete(10) - kw = {'listener_id': 10} + p.delete(self.mck_model) + kw = {'listener_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'delete_listener', **kw) def test_update_listener(self): p = producer.ListenerProducer() - p.update(10, {'admin_state_up': False}) + p.update(self.mck_model, {'admin_state_up': False}) kw = {'listener_updates': {'admin_state_up': False}, - 'listener_id': 10} + 'listener_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'update_listener', **kw) def test_create_pool(self): p = producer.PoolProducer() - p.create(10) - kw = {'pool_id': 10} + p.create(self.mck_model) + kw = {'pool_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'create_pool', **kw) def test_delete_pool(self): p = producer.PoolProducer() - p.delete(10) - kw = {'pool_id': 10} + p.delete(self.mck_model) + kw = {'pool_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'delete_pool', **kw) def test_update_pool(self): p = producer.PoolProducer() - p.update(10, {'admin_state_up': False}) + p.update(self.mck_model, {'admin_state_up': False}) kw = {'pool_updates': {'admin_state_up': False}, - 'pool_id': 10} + 'pool_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'update_pool', **kw) def test_create_healthmonitor(self): p = producer.HealthMonitorProducer() - p.create(10) - kw = {'health_monitor_id': 10} + p.create(self.mck_model) + kw = {'health_monitor_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'create_health_monitor', **kw) def test_delete_healthmonitor(self): p = producer.HealthMonitorProducer() - p.delete(10) - kw = {'health_monitor_id': 10} + p.delete(self.mck_model) + kw = {'health_monitor_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'delete_health_monitor', **kw) def test_update_healthmonitor(self): p = producer.HealthMonitorProducer() - p.update(10, {'admin_state_up': False}) + p.update(self.mck_model, {'admin_state_up': False}) kw = {'health_monitor_updates': {'admin_state_up': False}, - 'health_monitor_id': 10} + 'health_monitor_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'update_health_monitor', **kw) def test_create_member(self): p = producer.MemberProducer() - p.create(10) - kw = {'member_id': 10} + p.create(self.mck_model) + kw = {'member_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'create_member', **kw) def test_delete_member(self): p = producer.MemberProducer() - p.delete(10) - kw = {'member_id': 10} + p.delete(self.mck_model) + kw = {'member_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'delete_member', **kw) def test_update_member(self): p = producer.MemberProducer() - p.update(10, {'admin_state_up': False}) + p.update(self.mck_model, {'admin_state_up': False}) kw = {'member_updates': {'admin_state_up': False}, - 'member_id': 10} + 'member_id': self.mck_model.id} self.mck_client.cast.assert_called_once_with( {}, 'update_member', **kw) \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index d141d9f7f1..061fb1ed44 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,7 @@ universal = 1 [entry_points] console_scripts = octavia-api = octavia.cmd.api:main - octavia-worker = octavia.cmd.queueworker:main + octavia-worker = octavia.cmd.octavia_worker:main octavia.api.handlers = simulated_handler = octavia.api.v1.handlers.controller_simulator.handler:SimulatedControllerHandler queue_producer = octavia.api.v1.handlers.queue.producer:ProducerHandler