This updates the workflow wrapper to use the multiple message interface. This patch also adds test coverage for this code. Previously it was mocked out in all places that touched it. Change-Id: Ie2619238592563d0ca3442e0f26967b12d9c6eb1 Partial-Bug: #1646887
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from tripleoclient.workflows import base
|
|
|
|
|
|
def update_parameters(workflow_client, **input_):
|
|
return base.call_action(workflow_client, 'tripleo.parameters.update',
|
|
**input_)
|
|
|
|
|
|
def reset_parameters(workflow_client, **input_):
|
|
return base.call_action(workflow_client, 'tripleo.parameters.reset',
|
|
**input_)
|
|
|
|
|
|
def get_overcloud_passwords(clients, **workflow_input):
|
|
"""Retrieves overcloud passwords from a plan via a workflow
|
|
|
|
:param clients:
|
|
:param workflow_input:
|
|
:return:
|
|
"""
|
|
|
|
workflow_client = clients.workflow_engine
|
|
tripleoclients = clients.tripleoclient
|
|
queue_name = workflow_input['queue_name']
|
|
|
|
execution = base.start_workflow(
|
|
workflow_client,
|
|
'tripleo.plan_management.v1.get_passwords',
|
|
workflow_input=workflow_input
|
|
)
|
|
|
|
with tripleoclients.messaging_websocket(queue_name) as ws:
|
|
# Getting the passwords is a quick operation, but to allow space for
|
|
# delays or heavy loads, timeout after 60 seconds.
|
|
for payload in base.wait_for_messages(workflow_client, ws, execution,
|
|
60):
|
|
assert payload['status'] == "SUCCESS"
|
|
|
|
return payload['message']
|