From 7f8bf622e77a6909a3ac0a0f290b20e182eb7025 Mon Sep 17 00:00:00 2001 From: Mikhail Samoylov Date: Fri, 29 Apr 2016 13:47:35 +0300 Subject: [PATCH] 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 (cherry picked from commit 56a64713db9a22a33ff05a4ee9a729dafb041638) --- fuelweb_test/models/fuel_web_client.py | 52 +++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/fuelweb_test/models/fuel_web_client.py b/fuelweb_test/models/fuel_web_client.py index 0c575fc32..bb219af29 100644 --- a/fuelweb_test/models/fuel_web_client.py +++ b/fuelweb_test/models/fuel_web_client.py @@ -885,7 +885,9 @@ class FuelWebClient(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) @@ -903,6 +905,54 @@ class FuelWebClient(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):