From fcf8c4d4cbb99b2eb64bd2bfa833601ca9f372f9 Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Thu, 16 Mar 2017 09:55:07 +0000 Subject: [PATCH] Support multiple messages from delete_node This updates the workflow wrapper to use the multiple message interface. Change-Id: I1b4ace2cef45f4aa979e26f4ba88aea6a17bd03e Partial-Bug: #1646887 --- .../tests/v1/overcloud_node/test_overcloud_node.py | 14 ++++++++------ tripleoclient/workflows/scale.py | 7 ++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py b/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py index b4aaa4738..9a17d149b 100644 --- a/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py +++ b/tripleoclient/tests/v1/overcloud_node/test_overcloud_node.py @@ -63,9 +63,10 @@ class TestDeleteNode(fakes.TestDeleteNode): ] parsed_args = self.check_parser(self.cmd, argslist, verifylist) - self.websocket.wait_for_message.return_value = { + self.websocket.wait_for_messages.return_value = iter([{ + "execution": {"id": "IDID"}, "status": "SUCCESS" - } + }]) self.stack_name.return_value = mock.Mock(stack_name="overcast") @@ -112,9 +113,10 @@ class TestDeleteNode(fakes.TestDeleteNode): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) - self.websocket.wait_for_message.return_value = { + self.websocket.wait_for_messages.return_value = iter([{ + "execution": {"id": "IDID"}, "status": "SUCCESS" - } + }]) self.cmd.take_action(parsed_args) @@ -137,11 +139,11 @@ class TestDeleteNode(fakes.TestDeleteNode): ] parsed_args = self.check_parser(self.cmd, argslist, verifylist) - self.websocket.wait_for_message.return_value = { + self.websocket.wait_for_messages.return_value = iter([{ "status": "FAILED", "message": """Failed to run action ERROR: Couldn't find \ following instances in stack overcloud: wrong_instance""" - } + }]) self.assertRaises(exceptions.InvalidConfiguration, self.cmd.take_action, parsed_args) diff --git a/tripleoclient/workflows/scale.py b/tripleoclient/workflows/scale.py index d73a5d307..e08f859c7 100644 --- a/tripleoclient/workflows/scale.py +++ b/tripleoclient/workflows/scale.py @@ -33,9 +33,10 @@ def delete_node(clients, **workflow_input): ) with tripleoclients.messaging_websocket(queue_name) as ws: - rtn_message = ws.wait_for_message(execution.id) - if rtn_message['status'] != "SUCCESS": - raise InvalidConfiguration(rtn_message['message']) + for payload in base.wait_for_messages(workflow_client, ws, execution, + 360): + if payload['status'] != "SUCCESS": + raise InvalidConfiguration(payload['message']) def scale_down(clients, plan_name, nodes, timeout=None):