From d033d91af562bec9d8bde942ee07e21ae59ed645 Mon Sep 17 00:00:00 2001 From: Sergey Kulanov Date: Fri, 26 Feb 2016 14:21:20 +0200 Subject: [PATCH] Add time statistics for master node bootstrap process We have two major components during bootstraping master node: * run puppet manifests from ::fuel module; * build ubuntu bootstrap image; So let's make this process more granullar and developer friendly by: * replacing PUPPET_TIMEOUT = 8000 variable with ADMIN_NODE_BOOTSTRAP_TIMEOUT = 3600 * adding TimeStamp statistics for better ADMIN_NODE_BOOTSTRAP_TIMEOUT parameter tunning * replacing get_admin_remote with SSHManager() Related-bug: #1549302 Change-Id: I2750ead8d8fcf2c7bd4d279b6a4f72cb0497d3ad --- fuelweb_test/models/environment.py | 23 ++++++++++++----------- fuelweb_test/settings.py | 4 +++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/fuelweb_test/models/environment.py b/fuelweb_test/models/environment.py index 8ab76bbda..bae8ad67a 100644 --- a/fuelweb_test/models/environment.py +++ b/fuelweb_test/models/environment.py @@ -611,19 +611,20 @@ class EnvironmentModel(object): def wait_bootstrap(self): logger.info("Waiting while bootstrapping is in progress") log_path = "/var/log/puppet/bootstrap_admin_node.log" - logger.info("Puppet timeout set in {0}".format( - float(settings.PUPPET_TIMEOUT))) - with self.d_env.get_admin_remote() as admin_remote: + logger.info("Running bootstrap (timeout: {0})".format( + float(settings.ADMIN_NODE_BOOTSTRAP_TIMEOUT))) + with TimeStat("admin_node_bootsrap_time", is_uniq=True): wait( - lambda: not - admin_remote.execute( - "grep 'Fuel node deployment' '{:s}'".format(log_path) - )['exit_code'], - timeout=(float(settings.PUPPET_TIMEOUT)) + lambda: self.ssh_manager.execute( + ip=self.ssh_manager.admin_ip, + cmd="grep 'Fuel node deployment' '{:s}'".format(log_path) + )['exit_code'] == 0, + timeout=(float(settings.ADMIN_NODE_BOOTSTRAP_TIMEOUT)) ) - result = admin_remote.execute( - "grep 'Fuel node deployment " - "complete' '{:s}'".format(log_path))['exit_code'] + result = self.ssh_manager.execute( + ip=self.ssh_manager.admin_ip, + cmd="grep 'Fuel node deployment " + "complete' '{:s}'".format(log_path))['exit_code'] if result != 0: raise Exception('Fuel node deployment failed.') self.bootstrap_image_check() diff --git a/fuelweb_test/settings.py b/fuelweb_test/settings.py index e3747ea8c..b70ffda74 100644 --- a/fuelweb_test/settings.py +++ b/fuelweb_test/settings.py @@ -80,7 +80,9 @@ WAIT_FOR_PROVISIONING_TIMEOUT = int(os.environ.get( "WAIT_FOR_PROVISIONING_TIMEOUT", 1200)) ADMIN_NODE_SETUP_TIMEOUT = os.environ.get("ADMIN_NODE_SETUP_TIMEOUT", 30) -PUPPET_TIMEOUT = os.environ.get("PUPPET_TIMEOUT", 6000) +ADMIN_NODE_BOOTSTRAP_TIMEOUT = os.environ.get( + "ADMIN_NODE_BOOTSTRAP_TIMEOUT", 3600) + HARDWARE = { "admin_node_memory": os.environ.get("ADMIN_NODE_MEMORY", 3072),