Files
python-tripleoclient/tripleoclient/workflows/parameters.py
Dougal Matthews b93b7e9ce1 Support multiple messages from get_passwords
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
2017-03-28 16:08:21 +00:00

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']