From b4140094a6f8988c9dade3b4d4c378ac034f823b Mon Sep 17 00:00:00 2001 From: Peter Barabas Date: Tue, 16 Feb 2016 13:33:46 +0100 Subject: Add timeout option for deployment Change-Id: I6f3f35680c9f90f99148865edf8ba905ecbb6c30 Signed-off-by: Peter Barabas --- deploy/cloud/deploy.py | 12 +++++++++--- deploy/cloud/deployment.py | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'deploy/cloud') diff --git a/deploy/cloud/deploy.py b/deploy/cloud/deploy.py index 679b0ad6f..3d3017e42 100644 --- a/deploy/cloud/deploy.py +++ b/deploy/cloud/deploy.py @@ -29,9 +29,10 @@ YAML_CONF_DIR = '/var/lib/opnfv' class Deploy(object): - def __init__(self, dea_file, no_health_check): + def __init__(self, dea_file, no_health_check, deploy_timeout): self.dea = DeploymentEnvironmentAdapter(dea_file) self.no_health_check = no_health_check + self.deploy_timeout = deploy_timeout self.macs_per_blade = {} self.blades = self.dea.get_node_ids() self.blade_node_dict = self.dea.get_blade_node_map() @@ -59,7 +60,8 @@ class Deploy(object): def deploy_cloud(self): dep = Deployment(self.dea, YAML_CONF_DIR, self.env_id, - self.node_roles_dict, self.no_health_check) + self.node_roles_dict, self.no_health_check, + self.deploy_timeout) dep.deploy() def deploy(self): @@ -76,13 +78,17 @@ def parse_arguments(): parser.add_argument('-nh', dest='no_health_check', action='store_true', default=False, help='Don\'t run health check after deployment') + parser.add_argument('-dt', dest='deploy_timeout', action='store', + default=240, help='Deployment timeout (in minutes) ' + '[default: 240]') parser.add_argument('dea_file', action='store', help='Deployment Environment Adapter: dea.yaml') args = parser.parse_args() check_file_exists(args.dea_file) kwargs = {'dea_file': args.dea_file, - 'no_health_check': args.no_health_check} + 'no_health_check': args.no_health_check, + 'deploy_timeout': args.deploy_timeout} return kwargs diff --git a/deploy/cloud/deployment.py b/deploy/cloud/deployment.py index 42bab09bb..306abf006 100644 --- a/deploy/cloud/deployment.py +++ b/deploy/cloud/deployment.py @@ -31,12 +31,13 @@ LIST_OF_CHAR_TO_BE_ESCAPED = ['[', ']', '"'] class Deployment(object): def __init__(self, dea, yaml_config_dir, env_id, node_id_roles_dict, - no_health_check): + no_health_check, deploy_timeout): self.dea = dea self.yaml_config_dir = yaml_config_dir self.env_id = env_id self.node_id_roles_dict = node_id_roles_dict self.no_health_check = no_health_check + self.deploy_timeout = deploy_timeout self.pattern = re.compile( '\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d') @@ -96,7 +97,6 @@ class Deployment(object): print(log_msg + '\n') def run_deploy(self): - WAIT_LOOP = 240 SLEEP_TIME = 60 LOG_FILE = 'cloud.log' @@ -105,7 +105,7 @@ class Deployment(object): % (self.env_id, LOG_FILE)) ready = False - for i in range(WAIT_LOOP): + for i in range(int(self.deploy_timeout)): env = parse(exec_cmd('fuel env --env %s' % self.env_id)) log('Environment status: %s' % env[0][E['status']]) r, _ = exec_cmd('tail -2 %s | head -1' % LOG_FILE, False) -- cgit 1.2.3-korg