1 ###############################################################################
2 # Copyright (c) 2015 Ericsson AB and others.
3 # szilard.cserey@ericsson.com
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ###############################################################################
14 from dea import DeploymentEnvironmentAdapter
15 from configure_environment import ConfigureEnvironment
16 from deployment import Deployment
28 YAML_CONF_DIR = '/var/lib/opnfv'
33 def __init__(self, dea_file, no_health_check, deploy_timeout,
34 no_deploy_environment):
35 self.dea = DeploymentEnvironmentAdapter(dea_file)
36 self.no_health_check = no_health_check
37 self.deploy_timeout = deploy_timeout
38 self.no_deploy_environment = no_deploy_environment
39 self.macs_per_blade = {}
40 self.blades = self.dea.get_node_ids()
41 self.blade_node_dict = self.dea.get_blade_node_map()
42 self.node_roles_dict = {}
44 self.wanted_release = self.dea.get_property('wanted_release')
46 def assign_roles_to_cluster_node_ids(self):
47 self.node_roles_dict = {}
48 for blade, node in self.blade_node_dict.iteritems():
49 if self.dea.get_node_roles(blade):
50 roles = commafy(self.dea.get_node_roles(blade))
51 self.node_roles_dict[node] = (roles, blade)
53 def configure_environment(self):
54 release_list = parse(exec_cmd('fuel release -l'))
55 for release in release_list:
56 if release[R['name']] == self.wanted_release:
58 config_env = ConfigureEnvironment(self.dea, YAML_CONF_DIR,
61 config_env.configure_environment()
62 self.env_id = config_env.env_id
64 def deploy_cloud(self):
65 dep = Deployment(self.dea, YAML_CONF_DIR, self.env_id,
66 self.node_roles_dict, self.no_health_check,
68 if not self.no_deploy_environment:
71 log('Configuration is done. Deployment is not launched.')
75 self.assign_roles_to_cluster_node_ids()
77 self.configure_environment()
82 def parse_arguments():
83 parser = ArgParser(prog='python %s' % __file__)
84 parser.add_argument('-nh', dest='no_health_check', action='store_true',
86 help='Don\'t run health check after deployment')
87 parser.add_argument('-dt', dest='deploy_timeout', action='store',
88 default=240, help='Deployment timeout (in minutes) '
90 parser.add_argument('-nde', dest='no_deploy_environment',
91 action='store_true', default=False,
92 help=('Do not launch environment deployment'))
93 parser.add_argument('dea_file', action='store',
94 help='Deployment Environment Adapter: dea.yaml')
96 args = parser.parse_args()
97 check_file_exists(args.dea_file)
99 kwargs = {'dea_file': args.dea_file,
100 'no_health_check': args.no_health_check,
101 'deploy_timeout': args.deploy_timeout,
102 'no_deploy_environment': args.no_deploy_environment}
107 kwargs = parse_arguments()
108 deploy = Deploy(**kwargs)
111 if __name__ == '__main__':