Merge "Support multiple messages from provide workflow"

This commit is contained in:
Jenkins
2017-03-30 03:46:08 +00:00
committed by Gerrit Code Review
3 changed files with 18 additions and 28 deletions

View File

@@ -170,11 +170,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'],
@@ -189,11 +194,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])])
@@ -209,11 +209,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])]
@@ -281,11 +276,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)

View File

@@ -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,

View File

@@ -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: