Use only update/upgrade ansible queue instead
Related tripleo-common change: https://review.openstack.org/562995 To avoid race between tripleo queue and ansible queue we need to use inly ansible queue for update and upgrade Change-Id: I39b5a1a154b10683ac0de85afd6bbadc3491192a Partial-Bug: #1783798 (cherry picked from commit3b197c0991
) (cherry picked from commit782ad7375c
)
This commit is contained in:
parent
f307dd7dae
commit
94d33fc041
|
@ -118,6 +118,5 @@ class TestOvercloudUpdate(fakes.TestOvercloudUpdate):
|
||||||
nodes='Compute',
|
nodes='Compute',
|
||||||
inventory_file=mock_open().read(),
|
inventory_file=mock_open().read(),
|
||||||
playbook='fake-playbook.yaml',
|
playbook='fake-playbook.yaml',
|
||||||
queue_name=str(uuid.uuid4()),
|
|
||||||
ansible_queue_name=constants.UPDATE_QUEUE
|
ansible_queue_name=constants.UPDATE_QUEUE
|
||||||
)
|
)
|
||||||
|
|
|
@ -146,5 +146,4 @@ class UpdateOvercloud(command.Command):
|
||||||
clients, nodes=nodes,
|
clients, nodes=nodes,
|
||||||
inventory_file=inventory,
|
inventory_file=inventory,
|
||||||
playbook=playbook,
|
playbook=playbook,
|
||||||
queue_name=str(uuid.uuid4()),
|
|
||||||
ansible_queue_name=constants.UPDATE_QUEUE)
|
ansible_queue_name=constants.UPDATE_QUEUE)
|
||||||
|
|
|
@ -77,31 +77,21 @@ def get_config(clients, **workflow_input):
|
||||||
def update_ansible(clients, **workflow_input):
|
def update_ansible(clients, **workflow_input):
|
||||||
workflow_client = clients.workflow_engine
|
workflow_client = clients.workflow_engine
|
||||||
tripleoclients = clients.tripleoclient
|
tripleoclients = clients.tripleoclient
|
||||||
queue_name = workflow_input['queue_name']
|
|
||||||
ansible_queue = workflow_input['ansible_queue_name']
|
ansible_queue = workflow_input['ansible_queue_name']
|
||||||
|
|
||||||
with tripleoclients.messaging_websocket(queue_name) as ws:
|
with tripleoclients.messaging_websocket(ansible_queue) as update_ws:
|
||||||
execution = base.start_workflow(
|
execution = base.start_workflow(
|
||||||
workflow_client,
|
workflow_client,
|
||||||
'tripleo.package_update.v1.update_nodes',
|
'tripleo.package_update.v1.update_nodes',
|
||||||
workflow_input=workflow_input
|
workflow_input=workflow_input
|
||||||
)
|
)
|
||||||
|
|
||||||
with tripleoclients.messaging_websocket(ansible_queue) as update_ws:
|
for payload in base.wait_for_messages(workflow_client,
|
||||||
for payload in base.wait_for_messages(workflow_client,
|
update_ws,
|
||||||
update_ws,
|
execution):
|
||||||
execution):
|
|
||||||
# Need to sleep a little, to let the time for the execution
|
|
||||||
# to get the right status in between. It avoid to fall in the
|
|
||||||
# while True loop to get messages
|
|
||||||
time.sleep(5)
|
|
||||||
if payload.get('message'):
|
if payload.get('message'):
|
||||||
pprint.pprint(payload['message'].splitlines())
|
pprint.pprint(payload['message'].splitlines())
|
||||||
|
|
||||||
for payload in base.wait_for_messages(workflow_client, ws, execution):
|
|
||||||
if payload.get('message'):
|
|
||||||
print(payload)
|
|
||||||
|
|
||||||
if payload['status'] == 'SUCCESS':
|
if payload['status'] == 'SUCCESS':
|
||||||
print('Success')
|
print('Success')
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue