Support multiple messages from register_or_update
This updates the workflow wrapper to use the multiple message interface. Change-Id: Ib99f4871ded5a531f9408e72813977eaf2dbd272 Partial-Bug: #1646887
This commit is contained in:
parent
0747748743
commit
3b9c2a454b
|
@ -351,6 +351,7 @@ pxe_ssh,192.168.122.2,stack,"KEY2",00:0b:d0:69:7e:58""")
|
|||
self.workflow = self.app.client_manager.workflow_engine
|
||||
tripleoclient = self.app.client_manager.tripleoclient
|
||||
websocket = tripleoclient.messaging_websocket()
|
||||
websocket.wait_for_messages.return_value = self.mock_websocket_success
|
||||
websocket.wait_for_message.side_effect = self.mock_websocket_success
|
||||
self.websocket = websocket
|
||||
|
||||
|
|
|
@ -390,10 +390,14 @@ class TestImportNode(fakes.TestOvercloudNode):
|
|||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "SUCCESS",
|
||||
"message": "Success",
|
||||
}
|
||||
self.websocket.wait_for_messages.return_value = [{
|
||||
"status": "SUCCESS",
|
||||
"message": "Success",
|
||||
"registered_nodes": [{
|
||||
"uuid": "MOCK_NODE_UUID"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
|
||||
self.cmd.take_action(parsed_args)
|
||||
|
||||
|
|
|
@ -33,12 +33,21 @@ class TestBaremetalWorkflows(utils.TestCommand):
|
|||
self.tripleoclient.messaging_websocket.return_value = self.websocket
|
||||
self.app.client_manager.tripleoclient = self.tripleoclient
|
||||
|
||||
self.message_success = iter([{
|
||||
"execution": {"id": "IDID"},
|
||||
"status": "SUCCESS",
|
||||
"message": "Success.",
|
||||
"registered_nodes": [],
|
||||
}])
|
||||
self.message_failed = iter([{
|
||||
"execution": {"id": "IDID"},
|
||||
"status": "FAIL",
|
||||
"message": "Fail.",
|
||||
}])
|
||||
|
||||
def test_register_or_update_success(self):
|
||||
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "SUCCESS",
|
||||
"registered_nodes": [],
|
||||
}
|
||||
self.websocket.wait_for_messages.return_value = self.message_success
|
||||
|
||||
self.assertEqual(baremetal.register_or_update(
|
||||
self.app.client_manager,
|
||||
|
@ -59,10 +68,7 @@ class TestBaremetalWorkflows(utils.TestCommand):
|
|||
|
||||
def test_register_or_update_error(self):
|
||||
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "FAIL",
|
||||
"message": "FAILED",
|
||||
}
|
||||
self.websocket.wait_for_messages.return_value = self.message_failed
|
||||
|
||||
self.assertRaises(
|
||||
exceptions.RegisterOrUpdateError,
|
||||
|
|
|
@ -35,7 +35,9 @@ def register_or_update(clients, **workflow_input):
|
|||
)
|
||||
|
||||
with tripleoclients.messaging_websocket(queue_name) as ws:
|
||||
payload = ws.wait_for_message(execution.id)
|
||||
for payload in base.wait_for_messages(workflow_client, ws, execution):
|
||||
if 'message' in payload:
|
||||
print(payload['message'])
|
||||
|
||||
if payload['status'] == 'SUCCESS':
|
||||
registered_nodes = payload['registered_nodes']
|
||||
|
|
Loading…
Reference in New Issue