Support multiple messages from provide workflow
This updates the workflow wrapper to use the multiple message interface. Change-Id: I8ec4c3db9a2bd84d8cb577febef177cf6b663a86 Partial-Bug: #1646887
This commit is contained in:
parent
af4e0726ce
commit
17f20bdaa6
|
@ -168,11 +168,16 @@ class TestProvideNode(fakes.TestOvercloudNode):
|
|||
# Get the command object to test
|
||||
self.cmd = overcloud_node.ProvideNode(self.app, None)
|
||||
|
||||
def test_provide_all_manageable_nodes(self):
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "SUCCESS",
|
||||
"message": ""
|
||||
"message": "Success"
|
||||
}
|
||||
self.websocket.wait_for_messages.return_value = iter([{
|
||||
"status": "SUCCESS",
|
||||
"message": "Success"
|
||||
}])
|
||||
|
||||
def test_provide_all_manageable_nodes(self):
|
||||
|
||||
parsed_args = self.check_parser(self.cmd,
|
||||
['--all-manageable'],
|
||||
|
@ -187,11 +192,6 @@ class TestProvideNode(fakes.TestOvercloudNode):
|
|||
def test_provide_one_node(self):
|
||||
node_id = 'node_uuid1'
|
||||
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "SUCCESS",
|
||||
"message": "Success"
|
||||
}
|
||||
|
||||
parsed_args = self.check_parser(self.cmd,
|
||||
[node_id],
|
||||
[('node_uuids', [node_id])])
|
||||
|
@ -207,11 +207,6 @@ class TestProvideNode(fakes.TestOvercloudNode):
|
|||
node_id1 = 'node_uuid1'
|
||||
node_id2 = 'node_uuid2'
|
||||
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "SUCCESS",
|
||||
"message": "Success"
|
||||
}
|
||||
|
||||
argslist = [node_id1, node_id2]
|
||||
verifylist = [('node_uuids', [node_id1, node_id2])]
|
||||
|
||||
|
@ -279,11 +274,10 @@ class TestIntrospectNode(fakes.TestOvercloudNode):
|
|||
2 if provide else 1)
|
||||
|
||||
def _check_introspect_nodes(self, parsed_args, nodes, provide=False):
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
self.websocket.wait_for_messages.return_value = [{
|
||||
"status": "SUCCESS",
|
||||
"message": "Success",
|
||||
"introspected_nodes": {}
|
||||
}
|
||||
}]
|
||||
|
||||
self.cmd.take_action(parsed_args)
|
||||
|
||||
|
|
|
@ -91,9 +91,7 @@ class TestBaremetalWorkflows(utils.TestCommand):
|
|||
|
||||
def test_provide_success(self):
|
||||
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
"status": "SUCCESS",
|
||||
}
|
||||
self.websocket.wait_for_messages.return_value = self.message_success
|
||||
|
||||
baremetal.provide(self.app.client_manager, node_uuids=[],
|
||||
queue_name="QUEUE_NAME")
|
||||
|
@ -107,10 +105,7 @@ class TestBaremetalWorkflows(utils.TestCommand):
|
|||
|
||||
def test_provide_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.NodeProvideError,
|
||||
|
@ -135,10 +130,11 @@ class TestBaremetalWorkflows(utils.TestCommand):
|
|||
|
||||
def test_provide_error_with_format_message(self):
|
||||
|
||||
self.websocket.wait_for_message.return_value = {
|
||||
self.websocket.wait_for_messages.return_value = iter([{
|
||||
"execution": {"id": "IDID"},
|
||||
"status": "FAIL",
|
||||
"message": ['Error1', 'Error2']
|
||||
}
|
||||
}])
|
||||
|
||||
self.assertRaises(
|
||||
exceptions.NodeProvideError,
|
||||
|
|
|
@ -82,11 +82,11 @@ def provide(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':
|
||||
print('Successfully set all nodes to available.')
|
||||
else:
|
||||
if payload['status'] != 'SUCCESS':
|
||||
try:
|
||||
message = _format_provide_errors(payload)
|
||||
except Exception:
|
||||
|
|
Loading…
Reference in New Issue