Wait for deployment start before read network settings

Wait for deployment start before read network settings:
Fuel 9.1 is async and result task start command is just task,
which is not immediately started.
Wait for task status: running
TODO: implementation of custom network settings check

Related-bug: #1618872

Change-Id: I8a30e0afc97164dd1f61ae7607c8d440cc62b33f
This commit is contained in:
Alexey Stepanov 2016-09-20 17:24:14 +03:00
parent d28ca62797
commit afe6c23e78
2 changed files with 18 additions and 0 deletions

View File

@ -217,7 +217,11 @@ class CommandLineTest(test_cli_base.CommandLine):
task = self.ssh_manager.execute_on_remote(admin_ip,
cmd,
jsonify=True)['stdout_json']
self.wait_cli_task_status(task=task, status='running')
# Fuel 9.1 is async, so we should wait for real task start
network_settings = self.get_networks(cluster_id)
self.assert_cli_task_success(task, timeout=30 * 60)
self.assert_all_tasks_completed(cluster_id=cluster_id)

View File

@ -105,6 +105,20 @@ class CommandLine(TestBasic):
cmd=cmd
)
@logwrap
def wait_cli_task_status(self, task, status, timeout=5 * 60, interval=5):
wait(
lambda: (self.get_task(task['id'])['status'] == status),
interval=interval,
timeout=timeout,
timeout_msg='Waiting timeout {timeout} sec was reached '
'for status: {status}'
' on task: {task}'.format(task=task["name"],
timeout=timeout,
status=status
)
)
def assert_cli_task_success(self, task, timeout=70 * 60, interval=20):
logger.info('Wait {timeout} seconds for task: {task}'
.format(timeout=timeout, task=task))