Save information about the deployment in the database.
This test for check that task save information about the deployment in the database was done correctly. Also it check that cluster settings the same before and after deploy. Closes bug: 1564363 Change-Id: I8b224d8638ad57751fecd0bb61917355673375a6
This commit is contained in:
parent
9b220accc9
commit
56a64713db
@ -891,7 +891,9 @@ class FuelWebClient29(object):
|
||||
'until bugs LP#1578218 and LP#1578257 fixed')
|
||||
logger.warning(warn_txt)
|
||||
warn(warn_txt, UserWarning)
|
||||
|
||||
cluster_attributes = self.client.get_cluster_attributes(cluster_id)
|
||||
self.client.assign_ip_address_before_deploy_start(cluster_id)
|
||||
network_settings = self.client.get_networks(cluster_id)
|
||||
if not is_feature and help_data.DEPLOYMENT_RETRIES == 1:
|
||||
logger.info('Deploy cluster %s', cluster_id)
|
||||
task = self.deploy_cluster(cluster_id)
|
||||
@ -909,6 +911,54 @@ class FuelWebClient29(object):
|
||||
task = self.client.deploy_nodes(cluster_id)
|
||||
self.assert_task_success(task, timeout=timeout, interval=interval)
|
||||
self.check_deploy_state(cluster_id, check_services, check_tasks)
|
||||
self.check_cluster_settings(cluster_id, cluster_attributes)
|
||||
self.check_network_settings(cluster_id, network_settings)
|
||||
self.check_deployment_info_save_for_task(cluster_id)
|
||||
|
||||
@logwrap
|
||||
def check_cluster_settings(self, cluster_id, cluster_attributes):
|
||||
task_id = self.get_last_task_id(cluster_id, 'deployment')
|
||||
cluster_settings = \
|
||||
self.client.get_cluster_settings_for_deployment_task(task_id)
|
||||
logger.debug('Cluster settings before deploy {}'.format(
|
||||
cluster_attributes))
|
||||
logger.debug('Cluster settings after deploy {}'.format(
|
||||
cluster_settings))
|
||||
assert_equal(cluster_attributes, cluster_settings,
|
||||
message='Cluster attributes before deploy are not equal'
|
||||
' with cluster settings after deploy')
|
||||
|
||||
@logwrap
|
||||
def check_network_settings(self, cluster_id, network_settings):
|
||||
task_id = self.get_last_task_id(cluster_id, 'deployment')
|
||||
network_configuration = \
|
||||
self.client.get_network_configuration_for_deployment_task(task_id)
|
||||
logger.debug('Network settings before deploy {}'.format(
|
||||
network_settings))
|
||||
logger.debug('Network settings after deploy {}'.format(
|
||||
network_configuration))
|
||||
assert_equal(network_settings, network_configuration,
|
||||
message='Network settings from cluster configuration '
|
||||
'and deployment task are not equal')
|
||||
|
||||
@logwrap
|
||||
def check_deployment_info_save_for_task(self, cluster_id):
|
||||
try:
|
||||
task_id = self.get_last_task_id(cluster_id, 'deployment')
|
||||
self.client.get_deployment_info_for_task(task_id)
|
||||
except Exception:
|
||||
logger.error(
|
||||
"Cannot get information about deployment for task {}".format(
|
||||
task_id))
|
||||
|
||||
@logwrap
|
||||
def get_last_task_id(self, cluster_id, task_name):
|
||||
tasks = self.client.get_tasks()
|
||||
tasks_ids = []
|
||||
for task in tasks:
|
||||
if task['cluster'] == cluster_id and task['name'] == task_name:
|
||||
tasks_ids.append(task['id'])
|
||||
return min(tasks_ids)
|
||||
|
||||
def deploy_cluster_wait_progress(self, cluster_id, progress,
|
||||
return_task=None):
|
||||
|
@ -716,3 +716,27 @@ class NailgunClient(object):
|
||||
data = {}
|
||||
return self.client.put(
|
||||
"/api/clusters/{}/changes/redeploy".format(cluster_id), data)
|
||||
|
||||
@logwrap
|
||||
def assign_ip_address_before_deploy_start(self, cluster_id):
|
||||
self.client.get(
|
||||
'/api/clusters/{}/orchestrator/deployment/defaults/'.format(
|
||||
cluster_id))
|
||||
|
||||
@logwrap
|
||||
@json_parse
|
||||
def get_deployment_info_for_task(self, task_id):
|
||||
return self.client.get(
|
||||
'/api/transactions/{}/deployment_info'.format(task_id))
|
||||
|
||||
@logwrap
|
||||
@json_parse
|
||||
def get_cluster_settings_for_deployment_task(self, task_id):
|
||||
return self.client.get(
|
||||
'/api/transactions/{}/settings'.format(task_id))
|
||||
|
||||
@logwrap
|
||||
@json_parse
|
||||
def get_network_configuration_for_deployment_task(self, task_id):
|
||||
return self.client.get(
|
||||
'/api/transactions/{}/network_configuration/'.format(task_id))
|
||||
|
Loading…
Reference in New Issue
Block a user